Compare commits

...

18 Commits

Author SHA1 Message Date
GrayBot a2e3e7758b chore: release 8.0.0 (#263) 2026-05-14 13:52:22 -04:00
GrayBot e6bb7be524 chore: graduate 8.0.0-rc.2 to 8.0.0 (#262)
Release-As: 8.0.0
2026-05-14 13:51:09 -04:00
Damien Retzinger 3e9f95ee56 ci: add a graduation mode to release please 2026-05-14 13:49:47 -04:00
GrayBot 9c56da774b chore: restore internal action refs to @main (#260) 2026-05-13 19:58:46 -04:00
GrayBot 8c4fefd979 chore: release 8.0.0-rc.2 (#259) 2026-05-13 17:17:12 -04:00
Damien Retzinger d1a31d260d feat(supported-versions)!: forcibly bump all packages to the latest relevant release line of composer for LogLeak
This may break users who rely on older version of composer to work in their apps. Unfortunately, the risk is too high.
2026-05-13 08:13:34 -04:00
Damien Retzinger d37f001ab6 feat(supported-versions)!: updates for 2.4.9, 2.4.8-p5, 2.4.7-p19, 2.4.6-p15 (#258)
BREAKING CHANGE: This release brings support for the v2.4.9 version of Magento. This also brings backwards-incompatible infrastructure changes for the patch versions of Magento. See https://github.com/graycoreio/github-actions-magento2/pull/258 for more information.
2026-05-12 21:33:18 -04:00
Damien Retzinger c5221f0d68 feat(check-extension): pass along COMPOSER_AUTH where needed (#258) 2026-05-12 21:33:12 -04:00
Damien Retzinger 1fcb3618c0 ci: pass along COMPOSER_AUTH where needed (#258) 2026-05-12 21:33:09 -04:00
Damien Retzinger 4fc491bc1a fix(check-store): prevent error in phpunit 12 if no tests exists (#258) 2026-05-12 21:32:55 -04:00
Damien Retzinger 5df6c1a0bd docs: add new version skill 2026-05-12 11:51:26 -04:00
GrayBot ff5f76339b chore: restore internal action refs to @main (#257) 2026-05-10 18:40:04 -04:00
GrayBot 0df8ac6e57 chore: release 8.0.0-rc.1 (#256) 2026-05-10 18:38:05 -04:00
Damien Retzinger ef06f4566b fix(check-store): only run unit tests for unit tests 2026-05-10 17:55:28 -04:00
Damien Retzinger 4c9a28930b refactor(check-store): remove extraneous guard around running tests 2026-05-10 17:54:58 -04:00
Damien Retzinger 22627e1000 feat(setup-magento): prevent Magento dir from being mirrored into vendor 2026-05-10 13:30:54 -04:00
Damien Retzinger b0131f0fa0 fix(check-extension): prevent recursively mirroring _ghamagento into _ghamagento 2026-05-10 10:34:32 -04:00
GrayBot 23c77e10c8 chore: restore internal action refs to @main (#254) 2026-05-09 20:25:19 -04:00
39 changed files with 558 additions and 223 deletions
+112
View File
@@ -0,0 +1,112 @@
---
name: new-versions
description: Check magento/magento2 for newly published tags and add any missing entries to supported-version/src/versions/magento-open-source/{individual,composite}.json using Adobe's system requirements docs. Use when user wants to refresh Magento Open Source version data, mentions "new versions", or asks to check for new Magento releases.
---
Refresh the Magento Open Source version data in this repo by adding any tags that have shipped recently but are not yet recorded.
## 1. Find new tags
List tags from `magento/magento2` via the GitHub API:
```
gh api -X GET repos/magento/magento2/tags --paginate -q '.[].name' | head -50
```
Focus on tags from the last several weeks. Tags look like `2.4.8-p4`, `2.4.7-p9`, etc. Ignore preview/RC tags unless the user asks otherwise.
For each candidate tag, get its publish date (needed for the `release` field):
```
gh api repos/magento/magento2/git/refs/tags/<tag> -q '.object.url' | xargs -I{} gh api {} -q '.tagger.date // .author.date'
```
## 2. Diff against the JSON files
The two files to check:
- `supported-version/src/versions/magento-open-source/individual.json` — one entry per concrete tag, keyed `magento/project-community-edition:<tag>`
- `supported-version/src/versions/magento-open-source/composite.json` — range entries keyed `magento/project-community-edition:>=X.Y.Z <X.Y.(Z+1)`, plus the rolling entries `magento/project-community-edition` and `magento/project-community-edition:next`
A tag is "missing" if the `magento/project-community-edition:<tag>` key is absent from `individual.json`.
## 3. Fetch system requirements
For the minor version that the missing tag belongs to (e.g. `2.4.8` for `2.4.8-p4`), pull Adobe's system requirements page:
- https://experienceleague.adobe.com/en/docs/commerce-operations/installation-guide/system-requirements
Use `WebFetch` and extract: PHP, Composer, MySQL/MariaDB, Elasticsearch/OpenSearch, RabbitMQ, Redis/Valkey, Varnish, Nginx, supported OS. If a component (e.g. `elasticsearch`) is no longer listed for that minor version, omit the field from the new entry — do not carry it over from the previous patch. Compare the new entry against the most recent prior patch in `individual.json` to sanity-check which fields should be present.
For each service field, pin the **latest currently-published tag within the line Adobe lists**, derived from Docker Hub — not whatever the prior patch happened to carry.
- Adobe lists a major+minor (e.g. "Elasticsearch 8.19"): use the highest published `8.19.x` tag.
- Adobe lists only a major (e.g. "Elasticsearch 8"): use the highest published `8.y.z` across all `8.x` minors (today: `8.19.15`).
- Adobe lists multiple majors/lines (e.g. "OpenSearch 2.19, 3"): pick the newest line (`3`).
Query Docker Hub for the latest patch:
```
curl -s "https://hub.docker.com/v2/repositories/library/elasticsearch/tags?page_size=100&name=8.19" \
| python3 -c "import json,sys; d=json.load(sys.stdin); tags=[t['name'] for t in d['results'] if t['name'].startswith('8.19.') and t['name'].split('.')[2].isdigit()]; print(max(tags, key=lambda t:[int(x) for x in t.split('.')]))"
```
For OpenSearch swap `library/elasticsearch``opensearchproject/opensearch`. Services already using rolling minor tags (`redis:7.2`, `varnish:7.7`, `nginx:1.28`, `rabbitmq:4.1-management`) are already "latest of the line" and need no bump.
Also fetch Adobe's lifecycle policy page for the line's EOL date:
- https://experienceleague.adobe.com/en/docs/commerce-operations/release/planning/lifecycle-policy
## 4. Write the entries
### individual.json
Append the new patch entry preserving file ordering (group by minor version, ascending patch number). Schema:
```json
"magento/project-community-edition:<tag>": {
"magento": "magento/project-community-edition:<tag>",
"php": <number>,
"composer": "<string>",
"mysql": "mysql:<ver>" | "mariadb:<ver>",
"opensearch": "opensearchproject/opensearch:<ver>",
"elasticsearch": "elasticsearch:<ver>",
"rabbitmq": "rabbitmq:<ver>-management",
"redis": "redis:<ver>",
"valkey": "valkey/valkey:<ver>",
"varnish": "varnish:<ver>",
"nginx": "nginx:<ver>",
"os": "ubuntu-latest",
"release": "<ISO8601 from tag date>",
"eol": "<ISO8601 — see EOL rules below>"
}
```
### EOL rules
- The newest patch on a line gets `eol` set to the line's EOL date from Adobe's lifecycle policy page.
- When a newer patch on the same line releases, overwrite the previous patch's `eol` with the newer patch's `release` date. So when adding a new patch, also update the prior patch's `eol` accordingly.
- Net effect: at any moment only the latest patch on a line carries the line's lifecycle EOL; every older patch's `eol` equals the release date of its successor.
### composite.json
The composite range entry for the affected minor (e.g. `magento/project-community-edition:>=2.4.8 <2.4.9`) should reflect the highest patch's stack. Update its fields to match the new entry if the new tag is now the highest in that minor.
The rolling entries `magento/project-community-edition` and `magento/project-community-edition:next` must always mirror the system requirements of the highest tag across all minors (i.e. the absolute newest patch you just added, if it is the newest overall). Update PHP, Composer, MySQL, OpenSearch, RabbitMQ, Valkey, Varnish, Nginx, OS, release, eol on both. The `magento` field on `:next` stays `magento/project-community-edition:@alpha`.
## 5. Verify
After edits:
```
cd supported-version && npm test
```
All tests must pass before declaring done.
## Notes
- Do not remove existing entries — only add or update.
- Use the tag's actual publish timestamp from the GitHub API for `release`, not today's date.
- If Adobe's docs are ambiguous for a given component, ask the user before guessing.
- Preserve the file's existing key ordering and indentation (4 spaces).
+8 -1
View File
@@ -50,9 +50,12 @@ jobs:
tools: composer:v${{ matrix.composer }}
magento_version: ${{ matrix.magento }}
mode: extension
composer_auth: ${{ secrets.COMPOSER_AUTH }}
- run: composer update --no-install
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: ./cache-magento
with:
@@ -79,6 +82,8 @@ jobs:
- run: composer install
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: actions/upload-artifact@v7
with:
@@ -98,4 +103,6 @@ jobs:
store_artifact_name: store-fixture-${{ matrix.version }}
path: "_ghamagento/"
composer_cache_key: ${{ matrix.magento }}
stamp: true
stamp: true
secrets:
composer_auth: ${{ secrets.COMPOSER_AUTH }}
@@ -30,7 +30,9 @@ jobs:
- run: composer create-project --repository-url="https://mirror.mage-os.org" "magento/project-community-edition:2.4.5-p1" ../magento2 --no-install
shell: bash
name: Create Magento ${{ matrix.magento }} Project
name: Create Magento ${{ matrix.magento }} Project
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: ./get-magento-version
id: magento-version
@@ -58,6 +58,8 @@ jobs:
- run: composer update --no-install
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: ./cache-magento
with:
@@ -57,6 +57,8 @@ jobs:
- run: composer update --no-install
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: ./cache-magento
with:
@@ -78,6 +78,8 @@ jobs:
- run: composer update --no-install
working-directory: ${{ env.magento_folder }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: ./cache-magento
with:
@@ -218,13 +220,15 @@ jobs:
- run: composer update --no-install
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: ./cache-magento
with:
composer_cache_key: ${{ matrix.magento }}
working-directory: ${{ steps.setup-magento.outputs.path }}
stamp: true
- run: composer install
name: Composer install
shell: bash
@@ -40,3 +40,5 @@ jobs:
path: _test/demo-package
matrix: ${{ needs.compute_matrix.outputs.matrix }}
stamp: true
secrets:
composer_auth: ${{ secrets.COMPOSER_AUTH }}
+20 -12
View File
@@ -50,7 +50,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0
id: setup-magento
with:
php-version: ${{ matrix.php }}
@@ -71,11 +71,15 @@ jobs:
- name: Require extension
working-directory: ${{ steps.setup-magento.outputs.path }}
run: composer require "${{ steps.package.outputs.name }}:@dev" --no-install
env:
COMPOSER_AUTH: ${{ secrets.composer_auth }}
- run: composer update --no-install
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0
with:
composer_cache_key: ${{ inputs.composer_cache_key && format('{0} | {1}', inputs.composer_cache_key, matrix.magento) || matrix.magento }}
working-directory: ${{ steps.setup-magento.outputs.path }}
@@ -115,7 +119,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0
id: setup-magento
with:
php-version: ${{ matrix.php }}
@@ -141,8 +145,10 @@ jobs:
- run: composer update --no-install
working-directory: ${{ steps.setup-magento.outputs.path }}
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0-rc.0
env:
COMPOSER_AUTH: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0
with:
composer_cache_key: ${{ inputs.composer_cache_key && format('{0} | {1}', inputs.composer_cache_key, matrix.magento) || matrix.magento }}
working-directory: ${{ steps.setup-magento.outputs.path }}
@@ -155,7 +161,7 @@ jobs:
COMPOSER_AUTH: ${{ secrets.composer_auth }}
COMPOSER_MIRROR_PATH_REPOS: 1
- uses: graycoreio/github-actions-magento2/setup-di-compile@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/setup-di-compile@v8.0.0
with:
path: ${{ steps.setup-magento.outputs.path }}
@@ -173,11 +179,11 @@ jobs:
tools: composer:v${{ matrix.composer }}
coverage: none
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0
with:
composer_cache_key: ${{ inputs.composer_cache_key && format('{0} | {1}', inputs.composer_cache_key, matrix.magento) || matrix.magento }}
- uses: graycoreio/github-actions-magento2/coding-standard@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/coding-standard@v8.0.0
with:
path: ${{ inputs.path }}
composer_auth: ${{ secrets.composer_auth }}
@@ -191,7 +197,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0
id: setup-magento
with:
php-version: ${{ matrix.php }}
@@ -217,8 +223,10 @@ jobs:
- run: composer update --no-install
working-directory: ${{ steps.setup-magento.outputs.path }}
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0-rc.0
env:
COMPOSER_AUTH: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0
with:
composer_cache_key: ${{ inputs.composer_cache_key && format('{0} | {1}', inputs.composer_cache_key, matrix.magento) || matrix.magento }}
working-directory: ${{ steps.setup-magento.outputs.path }}
@@ -231,7 +239,7 @@ jobs:
COMPOSER_AUTH: ${{ secrets.composer_auth }}
COMPOSER_MIRROR_PATH_REPOS: 1
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0
id: magento-version
with:
working-directory: ${{ steps.setup-magento.outputs.path }}
+15 -14
View File
@@ -46,12 +46,12 @@ jobs:
name: ${{ inputs.store_artifact_name }}
path: ${{ inputs.path }}
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0
id: get-magento-version
with:
working-directory: ${{ inputs.path }}
- uses: graycoreio/github-actions-magento2/supported-version@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/supported-version@v8.0.0
id: supported-version
with:
kind: custom
@@ -73,7 +73,7 @@ jobs:
name: ${{ inputs.store_artifact_name }}
path: ${{ inputs.path }}
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0
id: setup-magento
with:
php-version: ${{ matrix.php }}
@@ -82,7 +82,7 @@ jobs:
working-directory: ${{ inputs.path }}
composer_auth: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0
with:
composer_cache_key: ${{ inputs.composer_cache_key }}
working-directory: ${{ steps.setup-magento.outputs.path }}
@@ -101,22 +101,23 @@ jobs:
cat > /tmp/testsuite.xml << 'EOF'
<testsuite name="Store_Unit_Tests">
<directory>../../../app/code</directory>
<directory>../../../app/code/*/*/Test/Unit</directory>
</testsuite>
EOF
sed -i '/<testsuites>/r /tmp/testsuite.xml' dev/tests/unit/phpunit.xml.dist
## PHPUnit 12 (Magento 2.4.9) implicitly enables failOnEmptyTestSuite when --testsuite is passed.
## Default it off only when the consumer hasn't set it themselves, so we don't clobber explicit configuration.
if ! grep -q 'failOnEmptyTestSuite=' dev/tests/unit/phpunit.xml.dist; then
sed -i 's|<phpunit |<phpunit failOnEmptyTestSuite="false" |' dev/tests/unit/phpunit.xml.dist
fi
## Disable allure (See https://github.com/magento/magento2/issues/36702 )
sed -i '/<extensions>/,/<\/extensions>/d' dev/tests/unit/phpunit.xml.dist
- name: Run unit tests
working-directory: ${{ steps.setup-magento.outputs.path }}
run: |
if find app/code -name "*Test.php" -print -quit | grep -q .; then
vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist --testsuite Store_Unit_Tests
else
echo "No unit tests found in app/code, skipping."
fi
run: vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist --testsuite Store_Unit_Tests
coding-standard:
runs-on: ${{ matrix.os }}
@@ -134,7 +135,7 @@ jobs:
name: ${{ inputs.store_artifact_name }}
path: ${{ inputs.path }}
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0
id: setup-magento
with:
php-version: ${{ matrix.php }}
@@ -143,7 +144,7 @@ jobs:
working-directory: ${{ inputs.path }}
composer_auth: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0
with:
composer_cache_key: ${{ inputs.composer_cache_key }}
working-directory: ${{ steps.setup-magento.outputs.path }}
@@ -168,7 +169,7 @@ jobs:
EOF
fi
- uses: graycoreio/github-actions-magento2/coding-standard@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/coding-standard@v8.0.0
with:
path: ${{ steps.setup-magento.outputs.path }}
composer_auth: ${{ secrets.composer_auth }}
+1 -1
View File
@@ -82,7 +82,7 @@ jobs:
COMPOSER_AUTH: ${{ secrets.composer_auth }}
name: Create Magento ${{ matrix.magento }} Project
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0
id: magento-version
with:
working-directory: ${{ inputs.magento_directory }}
+73 -5
View File
@@ -6,17 +6,22 @@ on:
- main
workflow_dispatch:
inputs:
release-candidate:
description: 'Cut a release-candidate (prerelease) instead of a normal release.'
type: boolean
release-mode:
description: 'auto = follow conventional commits; rc = bump the rc suffix; stable = open a PR that graduates the current rc to a stable release.'
type: choice
required: false
default: false
default: auto
options:
- auto
- rc
- stable
env:
RELEASE_BRANCH: release-please--branches--main--components--github-actions-magento2
jobs:
release-please:
if: github.event_name != 'workflow_dispatch' || inputs.release-mode != 'stable'
runs-on: ubuntu-latest
permissions:
contents: write
@@ -27,7 +32,7 @@ jobs:
uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.GRAYCORE_GITHUB_TOKEN }}
config-file: ${{ inputs.release-candidate && 'release-please-config.rc.json' || 'release-please-config.json' }}
config-file: ${{ inputs.release-mode == 'rc' && 'release-please-config.rc.json' || 'release-please-config.json' }}
- name: Check if release branch exists
id: branch-check
@@ -80,6 +85,69 @@ jobs:
git commit -m "chore: pin internal action refs to ${{ steps.pin-refs.outputs.VERSION }}"
git push origin ${{ env.RELEASE_BRANCH }}
graduate:
if: github.event_name == 'workflow_dispatch' && inputs.release-mode == 'stable'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v6
with:
ref: main
token: ${{ secrets.GRAYBOT_PIN_BACK_PAT }}
- name: Compute graduate version
id: graduate
run: |
CURRENT=$(jq -r '."."' .release-please-manifest.json)
STABLE="${CURRENT%%-*}"
if [ "$CURRENT" = "$STABLE" ]; then
echo "::error::Manifest version ${CURRENT} has no prerelease suffix; nothing to graduate."
exit 1
fi
echo "CURRENT=${CURRENT}" >> $GITHUB_OUTPUT
echo "STABLE=${STABLE}" >> $GITHUB_OUTPUT
- name: Open graduate PR
env:
GRAYBOT_GPG_KEY: ${{ secrets.GRAYBOT_GPG_KEY }}
GH_TOKEN: ${{ secrets.GRAYBOT_PIN_BACK_PAT }}
CURRENT: ${{ steps.graduate.outputs.CURRENT }}
STABLE: ${{ steps.graduate.outputs.STABLE }}
run: |
echo "$GRAYBOT_GPG_KEY" | gpg --batch --import
export GPG_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep sec | awk '{print $2}' | cut -d/ -f2)
git config --global user.signingkey $GPG_KEY_ID
git config --global commit.gpgSign true
git config --global user.email "automation@graycore.io"
git config --global user.name "Beep Boop"
BRANCH="chore/graduate-v${STABLE}"
git checkout -b "$BRANCH"
git commit --allow-empty \
-m "chore: graduate ${CURRENT} to ${STABLE}" \
-m "Release-As: ${STABLE}"
git push --force origin "$BRANCH"
EXISTING=$(gh pr list --head "$BRANCH" --json number --jq '.[0].number // empty')
PR_BODY=$(cat <<EOF
Graduates the release line from \`${CURRENT}\` to a stable \`${STABLE}\`.
When this PR is merged to \`main\`, release-please will pick up the \`Release-As\` footer below and open a release PR for \`v${STABLE}\`.
Release-As: ${STABLE}
EOF
)
if [ -z "$EXISTING" ]; then
gh pr create \
--base main \
--head "$BRANCH" \
--title "chore: graduate ${CURRENT} → ${STABLE}" \
--body "$PR_BODY"
else
gh pr edit "$EXISTING" --body "$PR_BODY"
echo "PR #$EXISTING already exists for $BRANCH — updated body"
fi
pinback:
needs: release-please
if: needs.release-please.outputs.releases_created == 'true'
+1 -1
View File
@@ -1 +1 @@
{".":"8.0.0-rc.0"}
{".":"8.0.0"}
+39
View File
@@ -2,6 +2,45 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [8.0.0](https://github.com/graycoreio/github-actions-magento2/compare/v8.0.0-rc.2...v8.0.0) (2026-05-14)
### Miscellaneous Chores
* graduate 8.0.0-rc.2 to 8.0.0 ([#262](https://github.com/graycoreio/github-actions-magento2/issues/262)) ([e6bb7be](https://github.com/graycoreio/github-actions-magento2/commit/e6bb7be5248a1431f06c07986066ab154c9d8531))
## [8.0.0-rc.2](https://github.com/graycoreio/github-actions-magento2/compare/v8.0.0-rc.1...v8.0.0-rc.2) (2026-05-13)
### ⚠ BREAKING CHANGES
* **supported-versions:** forcibly bump all packages to the latest relevant release line of composer for LogLeak
* **supported-versions:** This release brings support for the v2.4.9 version of Magento. This also brings backwards-incompatible infrastructure changes for the patch versions of Magento. See https://github.com/graycoreio/github-actions-magento2/pull/258 for more information.
### Features
* **check-extension:** pass along COMPOSER_AUTH where needed ([#258](https://github.com/graycoreio/github-actions-magento2/issues/258)) ([c5221f0](https://github.com/graycoreio/github-actions-magento2/commit/c5221f0d68b7ecc892b7718326eabc6f093c108f))
* **supported-versions:** forcibly bump all packages to the latest relevant release line of composer for LogLeak ([d1a31d2](https://github.com/graycoreio/github-actions-magento2/commit/d1a31d260dc54556ebd1ea4fb2e1764ad637694a))
* **supported-versions:** updates for 2.4.9, 2.4.8-p5, 2.4.7-p19, 2.4.6-p15 ([#258](https://github.com/graycoreio/github-actions-magento2/issues/258)) ([d37f001](https://github.com/graycoreio/github-actions-magento2/commit/d37f001ab6607d2c23751db12d21a7a9e69543f3))
### Bug Fixes
* **check-store:** prevent error in phpunit 12 if no tests exists ([#258](https://github.com/graycoreio/github-actions-magento2/issues/258)) ([4fc491b](https://github.com/graycoreio/github-actions-magento2/commit/4fc491bc1a26b7b7089b562db5d4e4a89b6d0744))
## [8.0.0-rc.1](https://github.com/graycoreio/github-actions-magento2/compare/v8.0.0-rc.0...v8.0.0-rc.1) (2026-05-10)
### Features
* **setup-magento:** prevent Magento dir from being mirrored into vendor ([22627e1](https://github.com/graycoreio/github-actions-magento2/commit/22627e100059b090adaf2484a09db2d5568492ce))
### Bug Fixes
* **check-extension:** prevent recursively mirroring _ghamagento into _ghamagento ([b0131f0](https://github.com/graycoreio/github-actions-magento2/commit/b0131f0fa08dae3b41c6ae476ae5f81ac654c68b))
* **check-store:** only run unit tests for unit tests ([ef06f45](https://github.com/graycoreio/github-actions-magento2/commit/ef06f4566ba2bd9e132d0fe85becb5a96b58aa38))
## [8.0.0-rc.0](https://github.com/graycoreio/github-actions-magento2/compare/v7.0.0...v8.0.0-rc.0) (2026-05-10)
+4 -4
View File
@@ -33,7 +33,7 @@ The `composer.lock` hash is derived from `working-directory/composer.lock` using
### Extension (download cache only)
```yml
- uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0 # x-release-please-version
with:
composer_cache_key: ${{ inputs.composer_cache_key }}
```
@@ -41,13 +41,13 @@ The `composer.lock` hash is derived from `working-directory/composer.lock` using
### Extension or store (download + vendor stamp cache)
```yml
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0 # x-release-please-version
id: setup-magento
with:
mode: extension # or store
# ...
- uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0 # x-release-please-version
with:
composer_cache_key: ${{ inputs.composer_cache_key }}
working-directory: ${{ steps.setup-magento.outputs.path }}
@@ -69,7 +69,7 @@ As such, use `stamp: true` when `composer.lock` is stable across most runs — a
> **Dependabot / Renovate:** Each time a Dependabot or Renovate PR is merged, the remaining open PRs rebase and each produces a new `composer.lock`. This cascades into a large number of unique cache entries, inflating storage costs without delivering proportional compute savings — because automated PRs are not waiting on fast feedback. The fix is to disable stamp caching for automated dependency PRs entirely:
>
> ```yml
> - uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0 # x-release-please-version
> - uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0 # x-release-please-version
> with:
> stamp: ${{ github.actor != 'dependabot[bot]' }}
> ```
+1 -1
View File
@@ -62,7 +62,7 @@ runs:
exit 1
fi
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0
id: cache-magento-get-magento-version
with:
working-directory: ${{ inputs.working-directory }}
+1 -1
View File
@@ -36,7 +36,7 @@ jobs:
tools: composer:v2
coverage: none
- uses: graycoreio/github-actions-magento2/coding-standard@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/coding-standard@v8.0.0 # x-release-please-version
with:
path: app/code # Optional, defaults to .
version: 25 # Optional, will use the latest if omitted.
+2 -2
View File
@@ -52,12 +52,12 @@ runs:
fi
- name: Get Composer Version
uses: graycoreio/github-actions-magento2/get-composer-version@v8.0.0-rc.0
uses: graycoreio/github-actions-magento2/get-composer-version@v8.0.0
id: get-composer-version
if: steps.check-installed.outputs.installed != 'true'
- name: Check if allow-plugins option is available for this version of composer
uses: graycoreio/github-actions-magento2/semver-compare@v8.0.0-rc.0
uses: graycoreio/github-actions-magento2/semver-compare@v8.0.0
id: is-allow-plugins-available
if: steps.check-installed.outputs.installed != 'true'
with:
+2 -2
View File
@@ -38,12 +38,12 @@ jobs:
matrix: ${{ steps.supported-version.outputs.matrix }}
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/supported-version@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/supported-version@v8.0.0 # x-release-please-version
id: supported-version
- run: echo ${{ steps.supported-version.outputs.matrix }}
check-extension:
needs: compute_matrix
uses: graycoreio/github-actions-magento2/.github/workflows/check-extension.yaml@v7.0.0 # x-release-please-version
uses: graycoreio/github-actions-magento2/.github/workflows/check-extension.yaml@v8.0.0 # x-release-please-version
with:
matrix: ${{ needs.compute_matrix.outputs.matrix }}
```
+2 -2
View File
@@ -40,7 +40,7 @@ on:
jobs:
check-store:
uses: graycoreio/github-actions-magento2/.github/workflows/check-store.yaml@v7.0.0 # x-release-please-version
uses: graycoreio/github-actions-magento2/.github/workflows/check-store.yaml@v8.0.0 # x-release-please-version
secrets:
composer_auth: ${{ secrets.COMPOSER_AUTH }}
```
@@ -52,7 +52,7 @@ If your pipeline builds or prepares the store in a prior job and uploads it as a
```yml
jobs:
check-store:
uses: graycoreio/github-actions-magento2/.github/workflows/check-store.yaml@v7.0.0 # x-release-please-version
uses: graycoreio/github-actions-magento2/.github/workflows/check-store.yaml@v8.0.0 # x-release-please-version
secrets:
composer_auth: ${{ secrets.COMPOSER_AUTH }}
```
+2 -2
View File
@@ -50,13 +50,13 @@ jobs:
matrix: ${{ steps.supported-version.outputs.matrix }}
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/supported-version@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/supported-version@v8.0.0 # x-release-please-version
with:
include_services: true
id: supported-version
integration-workflow:
needs: compute_matrix
uses: graycoreio/github-actions-magento2/.github/workflows/integration.yaml@v7.0.0 # x-release-please-version
uses: graycoreio/github-actions-magento2/.github/workflows/integration.yaml@v8.0.0 # x-release-please-version
with:
package_name: my-vendor/package
matrix: ${{ needs.compute_matrix.outputs.matrix }}
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/fix-magento-install@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/fix-magento-install@v8.0.0 # x-release-please-version
with:
magento_directory: path/to/magento
```
+1 -1
View File
@@ -9,7 +9,7 @@ inputs:
runs:
using: "composite"
steps:
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0-rc.0
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0
id: init-magento-get-magento-version
with:
working-directory: ${{ inputs.magento_directory }}
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
name: A job to compute an installed Composer version.
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/get-composer-version@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/get-composer-version@v8.0.0 # x-release-please-version
id: get-composer-version
- run: echo version ${{ steps.get-composer-version.outputs.version }}
shell: bash
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
name: A job to compute an installed Magento version.
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/get-magento-version@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/get-magento-version@v8.0.0 # x-release-please-version
id: get-magento-version
- run: echo version ${{ steps.get-magento-version.outputs.version }}
shell: bash
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@graycoreio/github-actions-magento2",
"version": "8.0.0-rc.0",
"version": "8.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@graycoreio/github-actions-magento2",
"version": "8.0.0-rc.0",
"version": "8.0.0",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.11.1",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@graycoreio/github-actions-magento2",
"version": "8.0.0-rc.0",
"version": "8.0.0",
"description": "Github Actions for Magento 2",
"scripts": {
"test": "cd supported-version && npm run test && cd - && cd setup-install && npm run test && cd -",
+1 -1
View File
@@ -28,7 +28,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/sansec-ecomscan@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/sansec-ecomscan@v8.0.0 # x-release-please-version
with:
license: ${{ secrets.SANSEC_LICENSE_KEY }}
```
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
name: A job to semantically compare two versions
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/semver-compare@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/semver-compare@v8.0.0 # x-release-please-version
with:
version: 2.1.0
compare_against: 2.2.3
+4 -4
View File
@@ -28,7 +28,7 @@ jobs:
matrix: ${{ steps.supported-version.outputs.matrix }}
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/supported-version@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/supported-version@v8.0.0 # x-release-please-version
id: supported-version
compile:
@@ -40,19 +40,19 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0 # x-release-please-version
id: setup-magento
with:
php-version: ${{ matrix.php }}
tools: composer:v${{ matrix.composer }}
- uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/cache-magento@v8.0.0 # x-release-please-version
- run: composer install
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: graycoreio/github-actions-magento2/setup-di-compile@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/setup-di-compile@v8.0.0 # x-release-please-version
with:
path: ${{ steps.setup-magento.outputs.path }}
```
+3 -3
View File
@@ -36,7 +36,7 @@ jobs:
matrix: ${{ steps.supported-version.outputs.matrix }}
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/supported-version@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/supported-version@v8.0.0 # x-release-please-version
id: supported-version
with:
include_services: "true"
@@ -51,7 +51,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0 # x-release-please-version
id: setup-magento
with:
php-version: ${{ matrix.php }}
@@ -64,7 +64,7 @@ jobs:
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: graycoreio/github-actions-magento2/setup-install@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/setup-install@v8.0.0 # x-release-please-version
with:
services: ${{ toJSON(matrix.services) }}
path: ${{ steps.setup-magento.outputs.path }}
+2 -2
View File
@@ -51,7 +51,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0 # x-release-please-version
id: setup-magento
with:
php-version: "8.3"
@@ -89,7 +89,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/setup-magento@v8.0.0 # x-release-please-version
id: setup-magento
with:
php-version: "8.3"
+17 -1
View File
@@ -95,7 +95,23 @@ runs:
name: Ensure app/etc exists for magento composer plugin
if: inputs.mode == 'extension'
- uses: graycoreio/github-actions-magento2/fix-magento-install@v8.0.0-rc.0
- name: Prevent Magento install from being mirrored into consumer vendor
if: inputs.mode == 'extension'
shell: bash
working-directory: ${{ inputs.working-directory }}
env:
MAGENTO_DIRECTORY: ${{ steps.setup-magento-compute-directory.outputs.MAGENTO_DIRECTORY }}
run: |
line="/$MAGENTO_DIRECTORY export-ignore"
if [[ -f .gitattributes ]] && grep -qxF "$line" .gitattributes; then
exit 0
fi
if [[ -s .gitattributes && -n "$(tail -c1 .gitattributes)" ]]; then
printf '\n' >> .gitattributes
fi
printf '%s\n' "$line" >> .gitattributes
- uses: graycoreio/github-actions-magento2/fix-magento-install@v8.0.0
name: Fix Magento Out of Box Install Issues
with:
magento_directory: ${{ steps.setup-magento-compute-directory.outputs.MAGENTO_DIRECTORY }}
+1 -1
View File
@@ -51,7 +51,7 @@ jobs:
outputs:
matrix: ${{ steps.supported-version.outputs.matrix }}
steps:
- uses: graycoreio/github-actions-magento2/supported-version@v7.0.0 # x-release-please-version
- uses: graycoreio/github-actions-magento2/supported-version@v8.0.0 # x-release-please-version
id: supported-version
- run: echo ${{ steps.supported-version.outputs.matrix }}
```
+18 -18
View File
File diff suppressed because one or more lines are too long
@@ -88,12 +88,14 @@ describe('getCurrentlySupportedVersions for magento-open-source', () => {
'magento/project-community-edition:2.4.7-p9',
'magento/project-community-edition:2.4.8-p4',
]],
['2027-04-09T00:00:00Z', 'Day of v2.4.7 EoL', [
'magento/project-community-edition:2.4.7-p9',
'magento/project-community-edition:2.4.8-p4',
['2027-05-31T00:00:00Z', 'Day of v2.4.7 EoL', [
'magento/project-community-edition:2.4.7-p10',
'magento/project-community-edition:2.4.8-p5',
'magento/project-community-edition:2.4.9',
]],
['2027-04-10T00:00:00Z', 'Day after v2.4.7 EoL', [
'magento/project-community-edition:2.4.8-p4',
['2027-06-01T00:00:00Z', 'Day after v2.4.7 EoL', [
'magento/project-community-edition:2.4.8-p5',
'magento/project-community-edition:2.4.9',
]],
])(
'supportedVersions for %s',
@@ -2,7 +2,7 @@
"mage-os/project-community-edition": {
"magento": "mage-os/project-community-edition",
"php": 8.4,
"composer": "2.9.7",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
@@ -17,7 +17,7 @@
"mage-os/project-community-edition:next": {
"magento": "mage-os/project-community-edition:next",
"php": 8.4,
"composer": "2.9.7",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
@@ -32,7 +32,7 @@
"mage-os/project-community-edition:>=1.0 <1.1": {
"magento": "mage-os/project-community-edition:>=1.0 <1.1",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -46,7 +46,7 @@
"mage-os/project-community-edition:>=1.1 <1.2": {
"magento": "mage-os/project-community-edition:>=1.1 <1.2",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -60,7 +60,7 @@
"mage-os/project-community-edition:>=1.2 <1.3": {
"magento": "mage-os/project-community-edition:>=1.2 <1.3",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -74,7 +74,7 @@
"mage-os/project-community-edition:>=1.3 <1.4": {
"magento": "mage-os/project-community-edition:>=1.2 <1.3",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -88,7 +88,7 @@
"mage-os/project-community-edition:>=2.0 <2.1": {
"magento": "mage-os/project-community-edition:>=2.0 <2.1",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -102,7 +102,7 @@
"mage-os/project-community-edition:>=2.1 <2.2": {
"magento": "mage-os/project-community-edition:>=2.1 <2.2",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -116,7 +116,7 @@
"mage-os/project-community-edition:>=2.2 <2.3": {
"magento": "mage-os/project-community-edition:>=2.2 <2.3",
"php": 8.4,
"composer": "2.9.3",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
@@ -3,7 +3,7 @@
"magento": "mage-os/project-community-edition:1.0.0",
"upstream": "2.4.6-p3",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -18,7 +18,7 @@
"magento": "mage-os/project-community-edition:1.0.1",
"upstream": "2.4.6-p3",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -33,7 +33,7 @@
"magento": "mage-os/project-community-edition:1.0.2",
"upstream": "2.4.7-p1",
"php": 8.3,
"composer": "2.7.4",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -48,7 +48,7 @@
"magento": "mage-os/project-community-edition:1.0.3",
"upstream": "2.4.7-p1",
"php": 8.3,
"composer": "2.7.4",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -63,7 +63,7 @@
"magento": "mage-os/project-community-edition:1.0.4",
"upstream": "2.4.7-p2",
"php": 8.3,
"composer": "2.7.4",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -78,7 +78,7 @@
"magento": "mage-os/project-community-edition:1.0.5",
"upstream": "2.4.7-p3",
"php": 8.3,
"composer": "2.7.4",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -93,7 +93,7 @@
"magento": "mage-os/project-community-edition:1.0.6",
"upstream": "2.4.7-p4",
"php": 8.3,
"composer": "2.7.4",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -108,7 +108,7 @@
"magento": "mage-os/project-community-edition:1.1.0",
"upstream": "2.4.8",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -123,7 +123,7 @@
"magento": "mage-os/project-community-edition:1.1.1",
"upstream": "2.4.8",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -138,7 +138,7 @@
"magento": "mage-os/project-community-edition:1.2.0",
"upstream": "2.4.8-p1",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -153,7 +153,7 @@
"magento": "mage-os/project-community-edition:1.3.0",
"upstream": "2.4.8-p2",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -168,7 +168,7 @@
"magento": "mage-os/project-community-edition:1.3.1",
"upstream": "2.4.8-p2",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -183,7 +183,7 @@
"magento": "mage-os/project-community-edition:2.0.0",
"upstream": "2.4.8-p3",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -198,7 +198,7 @@
"magento": "mage-os/project-community-edition:2.1.0",
"upstream": "2.4.8-p3",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.1",
"rabbitmq": "rabbitmq:4.0-management",
@@ -213,7 +213,7 @@
"magento": "mage-os/project-community-edition:2.2.0",
"upstream": "2.4.8-p4",
"php": 8.4,
"composer": "2.9.3",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
@@ -228,7 +228,7 @@
"magento": "mage-os/project-community-edition:2.2.1",
"upstream": "2.4.8-p4",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
@@ -243,7 +243,7 @@
"magento": "mage-os/project-community-edition:2.2.2",
"upstream": "2.4.8-p4",
"php": 8.4,
"composer": "2.9.7",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
@@ -44,7 +44,7 @@
"magento/project-community-edition:>=2.4.2 <2.4.3": {
"magento": "magento/project-community-edition:>=2.4.2 <2.4.3",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.9.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -58,7 +58,7 @@
"magento/project-community-edition:>=2.4.3 <2.4.4": {
"magento": "magento/project-community-edition:>=2.4.3 <2.4.4",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -72,7 +72,7 @@
"magento/project-community-edition:>=2.4.4 <2.4.5": {
"magento": "magento/project-community-edition:>=2.4.4 <2.4.5",
"php": 8.1,
"composer": "2.2.25",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -86,7 +86,7 @@
"magento/project-community-edition:>=2.4.5 <2.4.6": {
"magento": "magento/project-community-edition:>=2.4.5 <2.4.6",
"php": 8.1,
"composer": "2.2.25",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.28",
"rabbitmq": "rabbitmq:3.13-management",
@@ -100,12 +100,12 @@
"magento/project-community-edition:>=2.4.6 <2.4.7": {
"magento": "magento/project-community-edition:>=2.4.6 <2.4.7",
"php": 8.2,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.19.2",
"rabbitmq": "rabbitmq:4.1-management",
"redis": "redis:7.2",
"varnish": "varnish:7.7",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:8.1",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
@@ -114,59 +114,72 @@
"magento/project-community-edition:>=2.4.7 <2.4.8": {
"magento": "magento/project-community-edition:>=2.4.7 <2.4.8",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.17.4",
"opensearch": "opensearchproject/opensearch:2.19.5",
"rabbitmq": "rabbitmq:4.1-management",
"redis": "redis:7.2",
"valkey": "valkey/valkey:8.0",
"varnish": "varnish:7.7",
"elasticsearch": "elasticsearch:8.19.15",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:8.1",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2027-04-09T00:00:00+0000"
"eol": "2027-05-31T00:00:00+0000"
},
"magento/project-community-edition:>=2.4.8 <2.4.9": {
"magento": "magento/project-community-edition:>=2.4.8 <2.4.9",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
"valkey": "valkey/valkey:8.0",
"varnish": "varnish:7.7",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:8.1",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
"eol": "2028-05-31T00:00:00+0000"
},
"magento/project-community-edition:>=2.4.9 <2.4.10": {
"magento": "magento/project-community-edition:>=2.4.9 <2.4.10",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:9",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-07T00:00:00+0000",
"eol": "2029-05-31T00:00:00+0000"
},
"magento/project-community-edition": {
"magento": "magento/project-community-edition",
"php": 8.4,
"composer": "2.9.5",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
"valkey": "valkey/valkey:8.0",
"varnish": "varnish:7.7",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:9",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
"release": "2026-05-07T00:00:00+0000",
"eol": "2029-05-31T00:00:00+0000"
},
"magento/project-community-edition:next": {
"magento": "magento/project-community-edition:@alpha",
"php": 8.4,
"composer": "2.9.5",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"valkey": "valkey/valkey:8.0",
"valkey": "valkey/valkey:9",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
"varnish": "varnish:7.7",
"rabbitmq": "rabbitmq:4.2-management",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
"release": "2026-05-07T00:00:00+0000",
"eol": "2029-05-31T00:00:00+0000"
}
}
@@ -86,7 +86,7 @@
"magento/project-community-edition:2.4.2": {
"magento": "magento/project-community-edition:2.4.2",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.9.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -100,7 +100,7 @@
"magento/project-community-edition:2.4.2-p1": {
"magento": "magento/project-community-edition:2.4.2-p1",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.9.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -114,7 +114,7 @@
"magento/project-community-edition:2.4.2-p2": {
"magento": "magento/project-community-edition:2.4.2-p2",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.9.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -128,7 +128,7 @@
"magento/project-community-edition:2.4.3": {
"magento": "magento/project-community-edition:2.4.3",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -142,7 +142,7 @@
"magento/project-community-edition:2.4.3-p1": {
"magento": "magento/project-community-edition:2.4.3-p1",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -156,7 +156,7 @@
"magento/project-community-edition:2.4.3-p2": {
"magento": "magento/project-community-edition:2.4.3-p2",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -170,7 +170,7 @@
"magento/project-community-edition:2.4.3-p3": {
"magento": "magento/project-community-edition:2.4.3-p3",
"php": 7.4,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.8-management",
@@ -184,7 +184,7 @@
"magento/project-community-edition:2.4.4": {
"magento": "magento/project-community-edition:2.4.4",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -198,7 +198,7 @@
"magento/project-community-edition:2.4.4-p1": {
"magento": "magento/project-community-edition:2.4.4-p1",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -212,7 +212,7 @@
"magento/project-community-edition:2.4.4-p2": {
"magento": "magento/project-community-edition:2.4.4-p2",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.16.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -226,7 +226,7 @@
"magento/project-community-edition:2.4.4-p3": {
"magento": "magento/project-community-edition:2.4.4-p3",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -240,7 +240,7 @@
"magento/project-community-edition:2.4.4-p4": {
"magento": "magento/project-community-edition:2.4.4-p4",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -254,7 +254,7 @@
"magento/project-community-edition:2.4.4-p5": {
"magento": "magento/project-community-edition:2.4.4-p5",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -268,7 +268,7 @@
"magento/project-community-edition:2.4.4-p6": {
"magento": "magento/project-community-edition:2.4.4-p6",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -282,7 +282,7 @@
"magento/project-community-edition:2.4.4-p7": {
"magento": "magento/project-community-edition:2.4.4-p7",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -296,7 +296,7 @@
"magento/project-community-edition:2.4.4-p8": {
"magento": "magento/project-community-edition:2.4.4-p8",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -310,7 +310,7 @@
"magento/project-community-edition:2.4.4-p9": {
"magento": "magento/project-community-edition:2.4.4-p9",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -324,7 +324,7 @@
"magento/project-community-edition:2.4.4-p10": {
"magento": "magento/project-community-edition:2.4.4-p10",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -338,7 +338,7 @@
"magento/project-community-edition:2.4.4-p11": {
"magento": "magento/project-community-edition:2.4.4-p11",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -352,7 +352,7 @@
"magento/project-community-edition:2.4.4-p12": {
"magento": "magento/project-community-edition:2.4.4-p12",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -366,7 +366,7 @@
"magento/project-community-edition:2.4.4-p13": {
"magento": "magento/project-community-edition:2.4.4-p13",
"php": 8.1,
"composer": "2.2.25",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -380,7 +380,7 @@
"magento/project-community-edition:2.4.5": {
"magento": "magento/project-community-edition:2.4.5",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -394,7 +394,7 @@
"magento/project-community-edition:2.4.5-p1": {
"magento": "magento/project-community-edition:2.4.5-p1",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -408,7 +408,7 @@
"magento/project-community-edition:2.4.5-p2": {
"magento": "magento/project-community-edition:2.4.5-p2",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -422,7 +422,7 @@
"magento/project-community-edition:2.4.5-p3": {
"magento": "magento/project-community-edition:2.4.5-p3",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -436,7 +436,7 @@
"magento/project-community-edition:2.4.5-p4": {
"magento": "magento/project-community-edition:2.4.5-p4",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -450,7 +450,7 @@
"magento/project-community-edition:2.4.5-p5": {
"magento": "magento/project-community-edition:2.4.5-p5",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -464,7 +464,7 @@
"magento/project-community-edition:2.4.5-p6": {
"magento": "magento/project-community-edition:2.4.5-p6",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -478,7 +478,7 @@
"magento/project-community-edition:2.4.5-p7": {
"magento": "magento/project-community-edition:2.4.5-p7",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -492,7 +492,7 @@
"magento/project-community-edition:2.4.5-p8": {
"magento": "magento/project-community-edition:2.4.5-p8",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -506,7 +506,7 @@
"magento/project-community-edition:2.4.5-p9": {
"magento": "magento/project-community-edition:2.4.5-p9",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -520,7 +520,7 @@
"magento/project-community-edition:2.4.5-p10": {
"magento": "magento/project-community-edition:2.4.5-p10",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -534,7 +534,7 @@
"magento/project-community-edition:2.4.5-p11": {
"magento": "magento/project-community-edition:2.4.5-p11",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -548,7 +548,7 @@
"magento/project-community-edition:2.4.5-p12": {
"magento": "magento/project-community-edition:2.4.5-p12",
"php": 8.1,
"composer": "2.2.25",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.28",
"rabbitmq": "rabbitmq:3.13-management",
@@ -562,7 +562,7 @@
"magento/project-community-edition:2.4.5-p13": {
"magento": "magento/project-community-edition:2.4.5-p13",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -576,7 +576,7 @@
"magento/project-community-edition:2.4.5-p14": {
"magento": "magento/project-community-edition:2.4.5-p14",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
@@ -590,7 +590,7 @@
"magento/project-community-edition:2.4.6": {
"magento": "magento/project-community-edition:2.4.6",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
@@ -604,7 +604,7 @@
"magento/project-community-edition:2.4.6-p1": {
"magento": "magento/project-community-edition:2.4.6-p1",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -618,7 +618,7 @@
"magento/project-community-edition:2.4.6-p2": {
"magento": "magento/project-community-edition:2.4.6-p2",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -632,7 +632,7 @@
"magento/project-community-edition:2.4.6-p3": {
"magento": "magento/project-community-edition:2.4.6-p3",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -646,7 +646,7 @@
"magento/project-community-edition:2.4.6-p4": {
"magento": "magento/project-community-edition:2.4.6-p4",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -660,7 +660,7 @@
"magento/project-community-edition:2.4.6-p5": {
"magento": "magento/project-community-edition:2.4.6-p5",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -674,7 +674,7 @@
"magento/project-community-edition:2.4.6-p6": {
"magento": "magento/project-community-edition:2.4.6-p6",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -688,7 +688,7 @@
"magento/project-community-edition:2.4.6-p7": {
"magento": "magento/project-community-edition:2.4.6-p7",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -702,7 +702,7 @@
"magento/project-community-edition:2.4.6-p8": {
"magento": "magento/project-community-edition:2.4.6-p8",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -716,7 +716,7 @@
"magento/project-community-edition:2.4.6-p9": {
"magento": "magento/project-community-edition:2.4.6-p9",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
@@ -730,7 +730,7 @@
"magento/project-community-edition:2.4.6-p10": {
"magento": "magento/project-community-edition:2.4.6-p10",
"php": 8.2,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -744,7 +744,7 @@
"magento/project-community-edition:2.4.6-p11": {
"magento": "magento/project-community-edition:2.4.6-p11",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.13-management",
@@ -758,7 +758,7 @@
"magento/project-community-edition:2.4.6-p12": {
"magento": "magento/project-community-edition:2.4.6-p12",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.13-management",
@@ -772,7 +772,7 @@
"magento/project-community-edition:2.4.6-p13": {
"magento": "magento/project-community-edition:2.4.6-p13",
"php": 8.1,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.13-management",
@@ -786,7 +786,7 @@
"magento/project-community-edition:2.4.6-p14": {
"magento": "magento/project-community-edition:2.4.6-p14",
"php": 8.2,
"composer": "2.2.26",
"composer": "2.2.28",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.19.2",
"opensearch": "opensearchproject/opensearch:2.19.5",
@@ -797,12 +797,26 @@
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-03-10T00:00:00+0000",
"eol": "2026-05-07T00:00:00+0000"
},
"magento/project-community-edition:2.4.6-p15": {
"magento": "magento/project-community-edition:2.4.6-p15",
"php": 8.2,
"composer": "2.2.28",
"mysql": "mysql:8.0",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:8.1",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-07T00:00:00+0000",
"eol": "2026-08-11T00:00:00+0000"
},
"magento/project-community-edition:2.4.7": {
"magento": "magento/project-community-edition:2.4.7",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -816,7 +830,7 @@
"magento/project-community-edition:2.4.7-p1": {
"magento": "magento/project-community-edition:2.4.7-p1",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -830,7 +844,7 @@
"magento/project-community-edition:2.4.7-p2": {
"magento": "magento/project-community-edition:2.4.7-p2",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -844,7 +858,7 @@
"magento/project-community-edition:2.4.7-p3": {
"magento": "magento/project-community-edition:2.4.7-p3",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -858,7 +872,7 @@
"magento/project-community-edition:2.4.7-p4": {
"magento": "magento/project-community-edition:2.4.7-p4",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -872,7 +886,7 @@
"magento/project-community-edition:2.4.7-p5": {
"magento": "magento/project-community-edition:2.4.7-p5",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -886,7 +900,7 @@
"magento/project-community-edition:2.4.7-p6": {
"magento": "magento/project-community-edition:2.4.7-p6",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -900,7 +914,7 @@
"magento/project-community-edition:2.4.7-p7": {
"magento": "magento/project-community-edition:2.4.7-p7",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -914,7 +928,7 @@
"magento/project-community-edition:2.4.7-p8": {
"magento": "magento/project-community-edition:2.4.7-p8",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
@@ -928,7 +942,7 @@
"magento/project-community-edition:2.4.7-p9": {
"magento": "magento/project-community-edition:2.4.7-p9",
"php": 8.3,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mariadb:10.11",
"elasticsearch": "elasticsearch:8.17.4",
"opensearch": "opensearchproject/opensearch:2.19.5",
@@ -939,12 +953,27 @@
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-03-10T00:00:00+0000",
"eol": "2027-04-09T00:00:00+0000"
"eol": "2026-05-07T00:00:00+0000"
},
"magento/project-community-edition:2.4.7-p10": {
"magento": "magento/project-community-edition:2.4.7-p10",
"php": 8.3,
"composer": "2.9.8",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.19.15",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:8.1",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-07T00:00:00+0000",
"eol": "2027-05-31T00:00:00+0000"
},
"magento/project-community-edition:2.4.8": {
"magento": "magento/project-community-edition:2.4.8",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"elasticsearch": "elasticsearch:8.17.4",
"opensearch": "opensearchproject/opensearch:2.19.5",
@@ -960,7 +989,7 @@
"magento/project-community-edition:2.4.8-p1": {
"magento": "magento/project-community-edition:2.4.8-p1",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:2.19.5",
"rabbitmq": "rabbitmq:4.0-management",
@@ -974,7 +1003,7 @@
"magento/project-community-edition:2.4.8-p2": {
"magento": "magento/project-community-edition:2.4.8-p2",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.0-management",
@@ -988,7 +1017,7 @@
"magento/project-community-edition:2.4.8-p3": {
"magento": "magento/project-community-edition:2.4.8-p3",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.0-management",
@@ -1002,7 +1031,7 @@
"magento/project-community-edition:2.4.8-p4": {
"magento": "magento/project-community-edition:2.4.8-p4",
"php": 8.4,
"composer": "2.9.5",
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
@@ -1011,6 +1040,34 @@
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-03-10T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
"eol": "2026-05-07T00:00:00+0000"
},
"magento/project-community-edition:2.4.8-p5": {
"magento": "magento/project-community-edition:2.4.8-p5",
"php": 8.4,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:8.1",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-07T00:00:00+0000",
"eol": "2028-05-31T00:00:00+0000"
},
"magento/project-community-edition:2.4.9": {
"magento": "magento/project-community-edition:2.4.9",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:9",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-07T00:00:00+0000",
"eol": "2029-05-31T00:00:00+0000"
}
}