diff --git a/content/asciidoc-pages/docs/aqavit-verification/index.adoc b/content/asciidoc-pages/docs/aqavit-verification/index.adoc index ef3c224d1..6246e68b2 100644 --- a/content/asciidoc-pages/docs/aqavit-verification/index.adoc +++ b/content/asciidoc-pages/docs/aqavit-verification/index.adoc @@ -1,5 +1,5 @@ = AQAvit(TM) Verification -:page-authors: gdams, smlambert, llxia, tellison +:page-authors: gdams, smlambert, llxia, tellison, xavierfacq :aqavit-branch: v0.9.6-release Version 0.2, 02.03.2022 @@ -92,7 +92,7 @@ jobs: build_list: ${{ matrix.suite }} target: _${{ matrix.target }}.${{ matrix.suite }} - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 if: always() # Always run this step (even if the tests failed) with: name: test_output diff --git a/content/asciidoc-pages/support/_partials/support-table.adoc b/content/asciidoc-pages/support/_partials/support-table.adoc index cc2dc9959..6d540fe7e 100644 --- a/content/asciidoc-pages/support/_partials/support-table.adoc +++ b/content/asciidoc-pages/support/_partials/support-table.adoc @@ -13,10 +13,10 @@ Sep 2024 | Java 22 | Mar 2024 -| 19 Mar 2024 + -[.small]#jdk-22+36# -| 16 Apr 2024 + -[.small]#jdk-22.0.1# +| 19 Apr 2024 + +[.small]#jdk-22+0.1+9# +| 16 Jul 2024 + +[.small]#jdk-22.0.2# | Sep 2023 | Java 21 (LTS) @@ -50,26 +50,26 @@ Sep 2024 | Java 17 (LTS) | Sep 2021 -| 23 Jan 2024 + -[.small]#jdk-17.0.10+7# -| 16 Apr 2024 + -[.small]#jdk-17.0.11# +| 18 Apr 2024 + +[.small]#jdk-17.0.11+9# +| 16 Jul 2024 + +[.small]#jdk-17.0.12# | At least Oct 2027 | Java 11 (LTS) | Sep 2018 -| 22 Jan 2024 + -[.small]#jdk-11.0.22+7# -| 16 Apr 2024 + -[.small]#jdk-11.0.23# +| 18 Apr 2024 + +[.small]#jdk-11.0.23+9# +| 16 Jul 2024 + +[.small]#jdk-11.0.24# | At least Oct 2027 | Java 8 (LTS) | Mar 2014 -| 19 Jan 2024 + -[.small]#jdk8u402b06# -| 16 Apr 2024 + -[.small]#jdk8u412# +| 18 Apr 2024 + +[.small]#jdk8u412-b08# +| 16 Jul 2024 + +[.small]#jdk8u422# | At least Nov 2026 |=== diff --git a/content/asciidoc-pages/supported-platforms/index.adoc b/content/asciidoc-pages/supported-platforms/index.adoc index 4cda68b27..d57019119 100644 --- a/content/asciidoc-pages/supported-platforms/index.adoc +++ b/content/asciidoc-pages/supported-platforms/index.adoc @@ -67,14 +67,14 @@ icon:check[] - Supported, icon:docker[] - Docker image available, icon:times[] - | Ubuntu 18.04 | icon:check[] | icon:check[] | icon:check[] | icon:check[] | icon:check[] 6+h| Linux (s390x) footnote:glibc217[] -| RHEL / UBI 9.x | icon:times[] footnote:nojit[JDK8 on s390x has no JIT so is unsupported.] | icon:check[] | icon:check[] | icon:times[] | icon:times[] -| RHEL / UBI 8.x | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:times[] -| RHEL 7.x | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:times[] +| RHEL / UBI 9.x | icon:times[] footnote:nojit[JDK8 on s390x has no JIT so is unsupported.] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] +| RHEL / UBI 8.x | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:check[] +| RHEL 7.x | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:check[] | SUSE Linux Enterprise Server (SLES) 12 | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:check[] | SUSE Linux Enterprise Server (SLES) 15 | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:check[] -| Ubuntu 22.04 | icon:times[] footnote:nojit[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] | icon:times[] -| Ubuntu 20.04 | icon:times[] footnote:nojit[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] | icon:times[] -| Ubuntu 18.04 | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:times[] +| Ubuntu 22.04 | icon:times[] footnote:nojit[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] +| Ubuntu 20.04 | icon:times[] footnote:nojit[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] | icon:check[] icon:docker[] +| Ubuntu 18.04 | icon:times[] footnote:nojit[] | icon:check[] | icon:check[] | icon:check[] | icon:check[] 6+h| Linux (riscv64) footnote:glibc231[These builds should work on any distribution with glibc version 2.31 or higher.] | Ubuntu 22.04 | icon:times[] | icon:times[] | icon:times[] | icon:check[] | icon:check[] diff --git a/content/blog/eclipse-temurin-8u412-11023-1711-2102-2201-available/index.md b/content/blog/eclipse-temurin-8u412-11023-1711-2102-2201-available/index.md new file mode 100644 index 000000000..af0b379d9 --- /dev/null +++ b/content/blog/eclipse-temurin-8u412-11023-1711-2102-2201-available/index.md @@ -0,0 +1,81 @@ +--- +title: Eclipse Temurin 8u412, 11.0.23, 17.0.11, 21.0.3 and 22.0.1 Available +date: "2024-04-25" +author: pmc +description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u412, 11.0.23, 17.0.11 21.0.3 and 22.0.1 - our biggest release set so far. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms. +tags: + - temurin + - announcement + - release-notes +--- + +Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u412-b08, 11.0.23+9, 17.0.11+9, 21.0.3+9 and 22.0.1+8. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms. Binaries, installers, and source code are available from the [Temurin download page](https://adoptium.net/temurin/releases), [official container images](https://hub.docker.com/_/eclipse-temurin) are available at DockerHub, and [installable packages](https://adoptium.net/installation/) are available for various operating systems. + +This is by far our biggest release to date with 54 version/platform combinations with five major versions of OpenJDK currently being supported for the first time. By comparison, the January release had 41 combinations. Despite this, we still managed to complete the releases more quickly than in the previous cycles. + +## Security Vulnerabilities Resolved + +The following table summarizes security vulnerabilities fixed in this release cycle. The affected Temurin version streams are noted by an 'X' in the table. Each line shows the [Common Vulnerabilities and Exposures (CVE) vulnerability database](https://nvd.nist.gov/vuln) reference and [Common Vulnerability Scoring System (CVSS) v3.1 base score](https://www.first.org/cvss/v3.1/specification-document) provided by the [OpenJDK Vulnerability Group](https://openjdk.org/groups/vulnerability/). Note that defense-in-depth issues are not assigned CVEs. + +| CVE Identifier | Component | CVSS Score | v8 | v11 | v17 | v21 | v22 | +| :--- | :--- | :----: | :----: | :----: | :----: | :----: | :----: | +| [CVE-2024-21094](https://nvd.nist.gov/vuln/detail/CVE-2024-21094) | hotspot/compiler | Low ([3.7](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2024-21094&vector=AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N&version=3.1&source=Oracle)) | X | X | X | X | | +| [CVE-2024-21085](https://nvd.nist.gov/vuln/detail/CVE-2024-21085) | core-libs/java.util | Low ([3.7](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2024-21085&vector=AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L&version=3.1&source=Oracle)) | X | X | | | | +| [CVE-2024-21011](https://nvd.nist.gov/vuln/detail/CVE-2024-21011) | hotspot/runtime | Low ([3.7](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2024-21011&vector=AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L&version=3.1&source=Oracle)) | X | X | X | X | X | +| [CVE-2024-21068](https://nvd.nist.gov/vuln/detail/CVE-2024-21068) | hotspot/compiler | Low ([3.7](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2024-21068&vector=AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N&version=3.1&source=Oracle)) | X | X | X | X | X | +| [CVE-2024-21012](https://nvd.nist.gov/vuln/detail/CVE-2024-21012) | core-libs/java.net | Low ([3.7](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2024-21012&vector=AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N&version=3.1&source=Oracle)) | | X | X | X | X | + +Users should follow the [Adoptium policy for reporting vulnerability concerns](https://github.com/adoptium/adoptium/security/policy#security-policies-and-procedures) with this release. + +## Fixes and Updates + +This release contains the following fixes and updates. + +* [Temurin 8u412 release notes](https://adoptium.net/temurin/release-notes/?version=jdk8u412-b08), including [fixes in OpenJDK 8u412](https://bugs.openjdk.org/issues/?jql=project+%3D+JDK+AND+fixVersion+%3D+openjdk8u412) + +* [Temurin 11.0.23 release notes](https://adoptium.net/temurin/release-notes/?version=jdk-11.0.23+9), including [fixes in OpenJDK 11.0.22](https://bugs.openjdk.org/issues/?jql=project+%3D+JDK+AND+fixVersion+%3D+11.0.23) + +* [Temurin 17.0.11 release notes](https://adoptium.net/temurin/release-notes/?version=jdk-17.0.11+9), including [fixes in OpenJDK 17.0.10](https://bugs.openjdk.org/issues/?jql=project+%3D+JDK+AND+fixVersion+%3D+17.0.11) + +* [Temurin 21.0.3 release notes](https://adoptium.net/temurin/release-notes/?version=jdk-21.0.3+9), including [fixes in OpenJDK 21.0.3](https://bugs.openjdk.org/issues/?jql=project+%3D+JDK+AND+fixVersion+%3D+21.0.3) + +* [Temurin 22.0.1 release notes](https://adoptium.net/temurin/release-notes/?version=jdk-22.0.1+8), including [fixes in OpenJDK 22.0.1](https://bugs.openjdk.org/issues/?jql=project+%3D+JDK+AND+fixVersion+%3D+22.0.1) + +## New and Noteworthy + +### JDK21 and above are built using a Devkit + +For the first time, Temurin builds of JDK 21 and 22 for Linux (currently excluding riscv64) are built using a devkit. For those not familiar with it, the devkit is a build environment with a fixed compiler, toolchain, and sysroot which contains enough to build OpenJDK. We publish the CentOS-based devkits for Linux on x64, aarch64, and ppc64le for users to download, which makes it even easier to verify our reproducible builds by rebuilding from source if you wish to do so, providing trusted validation of our binaries. This is a great step forward in Temurin's secure development story. + +### Availability of s390x Linux in jdk-22.0.1 + +For Linux/s390x there was an extra patch that we needed on top of 22.0.1+8 to pass our rigourous testing process. For this reason, the Linux/s390x version of Temurin is 22.0.3.1+1 instead of 22.0.3+8. The fix is [JDK22u PR 137](https://github.com/openjdk/jdk22u/pull/137) from [JBS bug JDK-8329545](https://bugs.openjdk.org/browse/JDK-8329545). + +### ppc64 AIX JDK11 and JDK17 now available + +Great news for AIX users! After a bit of a gap (11.0.19+7 from April 2023, and 17.0.8.1 from August 2023) the current release includes versions for AIX. The [issue with Harfbuzz](https://bugs.openjdk.org/browse/JDK-8313643) has now been resolved. + +Note that JDK22 is not yet available for AIX. This is awaiting a compiler update in our infrastructure so we can build on OpenXL 17 and is being tracked under [Infrastructure issue 3208](https://github.com/adoptium/infrastructure/issues/3208). + +### CA Certifcates updated + +This release contains SSL CA certificates changes from March 13th which were updated under [this PR](https://github.com/adoptium/temurin-build/pull/3697#issuecomment-1994007189). + +Summary of changes: + +Additions: + +* Add D-Trust S/MIME Roots - TBD (CA Program [Bug # 1781510](https://bugzilla.mozilla.org/show_bug.cgi?id=1781510)) +* Add Deutsche Telekom Roots - TBD (CA Program [Bug # 1820592](https://bugzilla.mozilla.org/show_bug.cgi?id=1820592)) + +Removals: + +* Remove Expired SECOM Root - [Bug #1865450](https://bugzilla.mozilla.org/show_bug.cgi?id=1865450) + +### Refinements to SBOM Contents + +We have added a new `components` section to the SBOM which lists more details on the specific versions of packages which were on the build machine at the time of building, in order to assist with enabling build reproducibility. + +### dnf/apt installer support for Fedora 40, Ubuntu 24.04 (Noble Numbat) and Debian 13 (Trixie) + +We have added support for these three distributions to our apt/yum repositories so they can be installed as per [our instructions](https://adoptium.net/en-GB/installation/linux/) without any adjustments. diff --git a/package-lock.json b/package-lock.json index d355afadb..b967fe5e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,8 +17,8 @@ "@mdx-js/react": "^2.3.0", "@mui/lab": "^5.0.0-alpha.97", "@mui/material": "^5.15.15", - "@mui/x-data-grid": "^7.2.0", - "@mui/x-date-pickers": "^7.2.0", + "@mui/x-data-grid": "^7.3.1", + "@mui/x-date-pickers": "^7.3.1", "@popperjs/core": "^2.11.8", "@react-icons/all-files": "^4.1.0", "axios": "^1.6.8", @@ -57,9 +57,9 @@ "prismjs": "^1.29.0", "prop-types": "^15.8.1", "query-string": "^9.0.0", - "react": "^18.2.0", + "react": "^18.3.0", "react-bootstrap": "^2.10.2", - "react-dom": "^18.2.0", + "react-dom": "^18.3.0", "react-hubspot-form": "^1.3.7", "react-i18next": "^14.1.1", "react-icons": "^5.1.0", @@ -74,15 +74,15 @@ }, "devDependencies": { "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^15.0.2", + "@testing-library/react": "^15.0.4", "@testing-library/user-event": "^14.5.1", "@types/gatsbyjs__reach-router": "^2.0.4", "@types/prismjs": "^1.26.3", - "@types/react": "^18.2.79", - "@types/react-dom": "^18.2.25", + "@types/react": "^18.3.0", + "@types/react-dom": "^18.3.0", "@types/react-world-flags": "^1.4.5", "@vitejs/plugin-react": "^4.2.1", - "@vitest/coverage-v8": "^1.5.0", + "@vitest/coverage-v8": "^1.5.2", "ajv": "^8.12.0", "axios-mock-adapter": "^1.22.0", "babel-preset-gatsby": "^3.13.2", @@ -3887,9 +3887,9 @@ } }, "node_modules/@mui/x-data-grid": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.2.0.tgz", - "integrity": "sha512-WKmFo0eKhj3W7Fv8u5n2XP4UcdzuJ+mEYALiMUDAYsah/hPBH9mA1miXn9DjXF3i3dxgzrTjdJemTgTJxAQZKg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.3.1.tgz", + "integrity": "sha512-Z+KlDnk2oZ5uthP4q7koRkD7D3vZ0aiqX+51EmnzUXQljjeQ57GbLm/VHcY+XEg7vvtMsGpycLXFdwwjqINk0A==", "dependencies": { "@babel/runtime": "^7.24.0", "@mui/system": "^5.15.14", @@ -3912,9 +3912,9 @@ } }, "node_modules/@mui/x-date-pickers": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.2.0.tgz", - "integrity": "sha512-hsXugZ+n1ZnHRYzf7+PFrjZ44T+FyGZmTreBmH0M2RUaAblgK+A1V3KNLT+r4Y9gJLH+92LwePxQ9xyfR+E51A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.3.1.tgz", + "integrity": "sha512-ZIZC+/L5ch3+J6EWRWd/rzz1z/9KPZli8sO1g7t30uFgyjpRuMK4GuazRMqDDFq1KIUtk31qJV0sKKvUsVrKRw==", "dependencies": { "@babel/runtime": "^7.24.0", "@mui/base": "^5.0.0-beta.40", @@ -6285,9 +6285,9 @@ } }, "node_modules/@testing-library/react": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-15.0.2.tgz", - "integrity": "sha512-5mzIpuytB1ctpyywvyaY2TAAUQVCZIGqwiqFQf6u9lvj/SJQepGUzNV18Xpk+NLCaCE2j7CWrZE0tEf9xLZYiQ==", + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-15.0.4.tgz", + "integrity": "sha512-Fw/LM1emOHKfCxv5R0tz+25TOtiMt0o5Np1zJmb4LbSacOagXQX4ooAaHiJfGUMe+OjUk504BX11W+9Z8CvyZA==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", @@ -6636,18 +6636,18 @@ } }, "node_modules/@types/react": { - "version": "18.2.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", - "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.0.tgz", + "integrity": "sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", - "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "dev": true, "dependencies": { "@types/react": "*" @@ -6989,9 +6989,9 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.5.0.tgz", - "integrity": "sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.5.2.tgz", + "integrity": "sha512-QJqxRnbCwNtbbegK9E93rBmhN3dbfG1bC/o52Bqr0zGCYhQzwgwvrJBG7Q8vw3zilX6Ryy6oa/mkZku2lLJx1Q==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", @@ -7012,17 +7012,17 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "1.5.0" + "vitest": "1.5.2" } }, "node_modules/@vitest/expect": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.5.0.tgz", - "integrity": "sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.5.2.tgz", + "integrity": "sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==", "dev": true, "dependencies": { - "@vitest/spy": "1.5.0", - "@vitest/utils": "1.5.0", + "@vitest/spy": "1.5.2", + "@vitest/utils": "1.5.2", "chai": "^4.3.10" }, "funding": { @@ -7030,12 +7030,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.5.0.tgz", - "integrity": "sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.5.2.tgz", + "integrity": "sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==", "dev": true, "dependencies": { - "@vitest/utils": "1.5.0", + "@vitest/utils": "1.5.2", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -7071,9 +7071,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.5.0.tgz", - "integrity": "sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.5.2.tgz", + "integrity": "sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -7111,9 +7111,9 @@ } }, "node_modules/@vitest/spy": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.5.0.tgz", - "integrity": "sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.5.2.tgz", + "integrity": "sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -7123,9 +7123,9 @@ } }, "node_modules/@vitest/utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.5.0.tgz", - "integrity": "sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.5.2.tgz", + "integrity": "sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -23387,9 +23387,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.0.tgz", + "integrity": "sha512-RPutkJftSAldDibyrjuku7q11d3oy6wKOyPe5K1HA/HwwrXcEqBdHsLypkC2FFYjP7bPUa6gbzSBhw4sY2JcDg==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -23560,15 +23560,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-zaKdLBftQJnvb7FtDIpZtsAIb2MZU087RM8bRDZU8LVCCFYjPTsDZJNFUWPcVz3HFSN1n/caxi0ca4B/aaVQGQ==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.1" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.0" } }, "node_modules/react-error-overlay": { @@ -25537,9 +25537,9 @@ } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.1.tgz", + "integrity": "sha512-5GKS5JGfiah1O38Vfa9srZE4s3wdHbwjlCrvIookrg2FO9aIwKLOJXuJQFlEfNcVSOXuaL2hzDeY20uVXcUtrw==", "dependencies": { "loose-envify": "^1.1.0" } @@ -28226,9 +28226,9 @@ } }, "node_modules/vite-node": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.5.0.tgz", - "integrity": "sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.5.2.tgz", + "integrity": "sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -28248,16 +28248,16 @@ } }, "node_modules/vitest": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.5.0.tgz", - "integrity": "sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.5.2.tgz", + "integrity": "sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==", "dev": true, "dependencies": { - "@vitest/expect": "1.5.0", - "@vitest/runner": "1.5.0", - "@vitest/snapshot": "1.5.0", - "@vitest/spy": "1.5.0", - "@vitest/utils": "1.5.0", + "@vitest/expect": "1.5.2", + "@vitest/runner": "1.5.2", + "@vitest/snapshot": "1.5.2", + "@vitest/spy": "1.5.2", + "@vitest/utils": "1.5.2", "acorn-walk": "^8.3.2", "chai": "^4.3.10", "debug": "^4.3.4", @@ -28271,7 +28271,7 @@ "tinybench": "^2.5.1", "tinypool": "^0.8.3", "vite": "^5.0.0", - "vite-node": "1.5.0", + "vite-node": "1.5.2", "why-is-node-running": "^2.2.2" }, "bin": { @@ -28286,8 +28286,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "1.5.0", - "@vitest/ui": "1.5.0", + "@vitest/browser": "1.5.2", + "@vitest/ui": "1.5.2", "happy-dom": "*", "jsdom": "*" }, diff --git a/package.json b/package.json index a7af0f8cf..2f619deaa 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "@mdx-js/react": "^2.3.0", "@mui/lab": "^5.0.0-alpha.97", "@mui/material": "^5.15.15", - "@mui/x-data-grid": "^7.2.0", - "@mui/x-date-pickers": "^7.2.0", + "@mui/x-data-grid": "^7.3.1", + "@mui/x-date-pickers": "^7.3.1", "@popperjs/core": "^2.11.8", "@react-icons/all-files": "^4.1.0", "axios": "^1.6.8", @@ -53,9 +53,9 @@ "prismjs": "^1.29.0", "prop-types": "^15.8.1", "query-string": "^9.0.0", - "react": "^18.2.0", + "react": "^18.3.0", "react-bootstrap": "^2.10.2", - "react-dom": "^18.2.0", + "react-dom": "^18.3.0", "react-hubspot-form": "^1.3.7", "react-i18next": "^14.1.1", "react-icons": "^5.1.0", @@ -70,15 +70,15 @@ }, "devDependencies": { "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^15.0.2", + "@testing-library/react": "^15.0.4", "@testing-library/user-event": "^14.5.1", "@types/gatsbyjs__reach-router": "^2.0.4", "@types/prismjs": "^1.26.3", - "@types/react": "^18.2.79", - "@types/react-dom": "^18.2.25", + "@types/react": "^18.3.0", + "@types/react-dom": "^18.3.0", "@types/react-world-flags": "^1.4.5", "@vitejs/plugin-react": "^4.2.1", - "@vitest/coverage-v8": "^1.5.0", + "@vitest/coverage-v8": "^1.5.2", "ajv": "^8.12.0", "axios-mock-adapter": "^1.22.0", "babel-preset-gatsby": "^3.13.2", diff --git a/src/components/Banner/index.tsx b/src/components/Banner/index.tsx index c28113475..d27e7172c 100644 --- a/src/components/Banner/index.tsx +++ b/src/components/Banner/index.tsx @@ -1,17 +1,19 @@ import React from 'react'; const Banner = () => { + // return null; + // The following is an example that can be used for future banner alert // Comment Out The Above Line ( return null ; ) and uncomment the below - return ( -
- 16th April 2024: - We are creating the April 2024 PSU binaries for Eclipse Temurin 8u412, 11.0.23, 17.0.11, 21.0.3 and 22.0.1
- You can track progress by platform. - -
- ); + return ( +
+ Case Study: Building the World's Most Secure OpenJDK Distribution
+ Find out how the Eclipse Foundation and Adoptium Working Group are pioneering software supply chain security with Eclipse Temurin: + Download now + +
+ ); }; export default Banner; diff --git a/src/components/ReleaseNotesRender/__tests__/ReleaseNotesRender.test.tsx b/src/components/ReleaseNotesRender/__tests__/ReleaseNotesRender.test.tsx index f60c6e9c9..3e023b49b 100644 --- a/src/components/ReleaseNotesRender/__tests__/ReleaseNotesRender.test.tsx +++ b/src/components/ReleaseNotesRender/__tests__/ReleaseNotesRender.test.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { render } from '@testing-library/react'; import { describe, expect, it, vi } from 'vitest' import ReleaseNotesRender, { fetchTitle, sortReleaseNotesBy } from '../index'; -import { fetchReleaseNotesForVersion, ReleaseNoteAPIResponse } from '../../../hooks/fetchReleaseNotes'; +import { fetchReleaseNotesForVersion } from '../../../hooks/fetchReleaseNotes'; import { createMockReleaseNotesAPI } from '../../../__fixtures__/hooks'; import { DataGridProps } from "@mui/x-data-grid" import queryString from 'query-string'; @@ -32,7 +32,7 @@ describe('ReleaseNotesRender component', () => { queryString.parse = vi.fn().mockReturnValue({'version': 'jdk-17.0.1+12'}); // @ts-ignore - fetchReleaseNotesForVersion.mockReturnValue(createMockReleaseNotesAPI(2)); + fetchReleaseNotesForVersion.mockReturnValue({ releaseNoteAPIResponse :createMockReleaseNotesAPI(2), isValid: true }); const { container } = render( @@ -72,9 +72,9 @@ describe('ReleaseNotesRender component', () => { queryString.parse = vi.fn().mockReturnValue({'version': 'jdk-20+36'}); function mockReleaseNotes(num: number) { - let mockReleaseNotesAPI = createMockReleaseNotesAPI(num); - mockReleaseNotesAPI.release_notes[0].type = 'Enhancement'; - return mockReleaseNotesAPI; + let releaseNoteDataBag = { releaseNoteAPIResponse :createMockReleaseNotesAPI(num), isValid: true }; + releaseNoteDataBag.releaseNoteAPIResponse.release_notes[0].type = 'Enhancement'; + return releaseNoteDataBag; } // @ts-ignore @@ -91,9 +91,9 @@ describe('ReleaseNotesRender component', () => { it('should render correctly - priority not defined', () => { queryString.parse = vi.fn().mockReturnValue({'version': 'version'}); function mockReleaseNotes() { - let mockReleaseNotesAPI = createMockReleaseNotesAPI(1); - mockReleaseNotesAPI.release_notes[0].priority = undefined; - return mockReleaseNotesAPI; + let releaseNoteDataBag = { releaseNoteAPIResponse :createMockReleaseNotesAPI(1), isValid: true }; + releaseNoteDataBag.releaseNoteAPIResponse.release_notes[0].priority = undefined; + return releaseNoteDataBag; } // @ts-ignore @@ -110,7 +110,7 @@ describe('ReleaseNotesRender component', () => { queryString.parse = vi.fn().mockReturnValue({'version': 'version'}); // @ts-ignore - fetchReleaseNotesForVersion.mockReturnValue({ release_notes: null}); + fetchReleaseNotesForVersion.mockReturnValue({ releaseNoteAPIResponse :createMockReleaseNotesAPI(0), isValid: false }); const { container } = render( ); diff --git a/src/components/ReleaseNotesRender/__tests__/__snapshots__/ReleaseNotesRender.test.tsx.snap b/src/components/ReleaseNotesRender/__tests__/__snapshots__/ReleaseNotesRender.test.tsx.snap index 0c95fae95..40f5759e3 100644 --- a/src/components/ReleaseNotesRender/__tests__/__snapshots__/ReleaseNotesRender.test.tsx.snap +++ b/src/components/ReleaseNotesRender/__tests__/__snapshots__/ReleaseNotesRender.test.tsx.snap @@ -83,7 +83,7 @@ exports[`ReleaseNotesRender component > should render correctly 1`] = `

should render correctly 1`] = ` >
should render correctly 1`] = `

{version}

-
- {!version || releaseNotes?.release_notes === null ? ( + {!releaseNoteDataBag ?
: + (
+ {!version || releaseNoteDataBag?.isValid === false ? ( <>

Oops... We couldn't find those release notes

Please ensure that you have a specified a version using the version URL parameter: ?version=x.x.x @@ -175,7 +177,7 @@ const ReleaseNotesRender = (): null | JSX.Element => { { /> )} -
+
)}
); diff --git a/src/hooks/__tests__/__snapshots__/fetchReleaseNotes.test.tsx.snap b/src/hooks/__tests__/__snapshots__/fetchReleaseNotes.test.tsx.snap index d7522bb08..db2516090 100644 --- a/src/hooks/__tests__/__snapshots__/fetchReleaseNotes.test.tsx.snap +++ b/src/hooks/__tests__/__snapshots__/fetchReleaseNotes.test.tsx.snap @@ -2,26 +2,29 @@ exports[`fetchReleaseNotesForVersion > returns valid JSON 1`] = ` { - "id": "id_mock", - "release_name": "release_name_mock", - "release_notes": [ - { - "component": "component_mock", - "id": "0", - "link": "https://link_mock/", - "priority": "1", - "title": "title_mock", - "type": "Bug", + "isValid": true, + "releaseNoteAPIResponse": { + "id": "id_mock", + "release_name": "release_name_mock", + "release_notes": [ + { + "component": "component_mock", + "id": "0", + "link": "https://link_mock/", + "priority": "1", + "title": "title_mock", + "type": "Bug", + }, + ], + "vendor": "vendor_mock", + "version_data": { + "build": 0, + "major": 0, + "minor": 0, + "openjdk_version": "openjdk_version_mock", + "patch": 0, + "security": 0, }, - ], - "vendor": "vendor_mock", - "version_data": { - "build": 0, - "major": 0, - "minor": 0, - "openjdk_version": "openjdk_version_mock", - "patch": 0, - "security": 0, }, } `; diff --git a/src/hooks/__tests__/fetchReleaseNotes.test.tsx b/src/hooks/__tests__/fetchReleaseNotes.test.tsx index db1d40920..b3eec1414 100644 --- a/src/hooks/__tests__/fetchReleaseNotes.test.tsx +++ b/src/hooks/__tests__/fetchReleaseNotes.test.tsx @@ -25,8 +25,9 @@ describe('fetchReleaseNotesForVersion', () => { let spy = vi.spyOn(axios, "get"); const { result } = renderHook(() => fetchReleaseNotesForVersion(true, 'sample_version', sortReleaseNotesByCallback)); + await waitFor(() => { - expect(result.current?.release_name).toBe('release_name_mock') + expect(result.current?.releaseNoteAPIResponse?.release_name).toBe('release_name_mock') }, { interval: 1 }); expect(spy).toHaveBeenCalledTimes(1) expect(spy).toHaveBeenCalledWith( diff --git a/src/hooks/fetchReleaseNotes.tsx b/src/hooks/fetchReleaseNotes.tsx index 79bf79e7f..833dc37d4 100644 --- a/src/hooks/fetchReleaseNotes.tsx +++ b/src/hooks/fetchReleaseNotes.tsx @@ -8,12 +8,12 @@ export function fetchReleaseNotesForVersion( isVisible: boolean, version: any, sortReleaseNotesByCallback?: Function, -): ReleaseNoteAPIResponse | null { +): ReleaseNoteDataBag | null { if (!version) { return null } - const [releaseNotes, setReleaseNotes] = useState(null); + const [releaseNotes, setReleaseNotes] = useState(null); useEffect(() => { if (isVisible) { @@ -22,12 +22,19 @@ export function fetchReleaseNotesForVersion( await axios.get(url.toString()) .then(function (response) { - let result = response.data + let result = response.data; if(sortReleaseNotesByCallback) sortReleaseNotesByCallback(result); - setReleaseNotes(result) + let releaseNoteDataBag: ReleaseNoteDataBag = { + releaseNoteAPIResponse: result, + isValid: (result.release_notes !== null) + }; + setReleaseNotes(releaseNoteDataBag); }) .catch(function (error) { - setReleaseNotes(null) + let releaseNoteDataBag: ReleaseNoteDataBag = { + isValid: false + }; + setReleaseNotes(releaseNoteDataBag); }); })(); } @@ -36,6 +43,11 @@ export function fetchReleaseNotesForVersion( return releaseNotes; } +export interface ReleaseNoteDataBag { + releaseNoteAPIResponse?: ReleaseNoteAPIResponse + isValid: boolean +} + export interface ReleaseNoteAPIResponse { id: string; release_name: string; diff --git a/src/pages/__tests__/__snapshots__/docs.test.tsx.snap b/src/pages/__tests__/__snapshots__/docs.test.tsx.snap index e9184c860..232d2b883 100644 --- a/src/pages/__tests__/__snapshots__/docs.test.tsx.snap +++ b/src/pages/__tests__/__snapshots__/docs.test.tsx.snap @@ -565,6 +565,28 @@ exports[`Docs page > renders correctly 1`] = ` > docs.vulnerability.reporting + + + + + + docs.temurin.security.case.study + { links={[ { name: t('docs.secure.software.pratices', 'Secure Software Practices'), link: '/docs/secure-software' }, { name: t('docs.slsa.secure.supply.chain', 'SLSA Secure Supply Chain'), link: '/docs/slsa' }, - { name: t('docs.vulnerability.reporting', 'Vulnerability Reporting'), link: 'https://github.com/adoptium/adoptium/security/policy' } + { name: t('docs.vulnerability.reporting', 'Vulnerability Reporting'), link: 'https://github.com/adoptium/adoptium/security/policy' }, + { name: t('docs.temurin.security.case.study', 'Temurin Security Case Study'), link: 'https://outreach.eclipse.foundation/adoptium-temurin-supply-chain-security?utm_campaign=Temurin%20Case%20Study&utm_source=website&utm_medium=adoptium%20docs' } ]} /> renders correctly 1`] = `

renders correctly 1`] = ` >
renders correctly 1`] = `