From fac8a1bbaab29a1f268ddb49b4ea1311813a85ab Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Thu, 27 Aug 2026 10:04:52 +0200 Subject: [PATCH 1/2] Pinned matching edition branches in package-exclusion logic The edition-exclusion logic (introduced in #55/#56 for IBX-3786) fetches higher editions' composer.json to build the updates.ibexa.co exclude list. The maintained scripts (4.6, 5.0, 6.0) fetched the "master" branch, which was correct in 2022 but the editions' dev branches have since been renamed to version numbers. The URLs kept working only through GitHub's branch-rename redirect, now serving 6.0 content to every version line. This already skews older lines (e.g. commerce 6.0 lists discounts/discounts-codes in the metapackage while 4.6 does not) and breaks entirely if a "master" branch is ever recreated. Pinned each maintained script to its matching edition branch, consistent with the ^3.3 and 4.2 scripts. All pinned URLs verified to return 200 for commerce and experience (the only fetch targets). Scripts for unmaintained lines (4.3-4.5) are left untouched. Co-Authored-By: Claude Fable 5 --- bin/4.6.x-dev/prepare_project_edition.sh | 2 +- bin/5.0.x-dev/prepare_project_edition.sh | 2 +- bin/6.0.x-dev/prepare_project_edition.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/4.6.x-dev/prepare_project_edition.sh b/bin/4.6.x-dev/prepare_project_edition.sh index fcce710..a409905 100755 --- a/bin/4.6.x-dev/prepare_project_edition.sh +++ b/bin/4.6.x-dev/prepare_project_edition.sh @@ -89,7 +89,7 @@ if [[ "$PROJECT_EDITION" != "oss" ]]; then if [[ "$PROJECT_EDITION" == "$EDITION" ]]; then break fi - COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/master/composer.json") + COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/4.6/composer.json") EDITION_PACKAGES=$(echo "$COMPOSER_JSON_CONTENT" | \ jq -r --arg projectEdition "ibexa/$PROJECT_EDITION" \ '.require | with_entries(select(.key | contains("ibexa/"))) | with_entries(select(.key == $projectEdition | not )) | keys') diff --git a/bin/5.0.x-dev/prepare_project_edition.sh b/bin/5.0.x-dev/prepare_project_edition.sh index db61faa..7e111b9 100755 --- a/bin/5.0.x-dev/prepare_project_edition.sh +++ b/bin/5.0.x-dev/prepare_project_edition.sh @@ -79,7 +79,7 @@ if [[ "$PROJECT_EDITION" != "oss" ]]; then if [[ "$PROJECT_EDITION" == "$EDITION" ]]; then break fi - COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/master/composer.json") + COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/5.0/composer.json") EDITION_PACKAGES=$(echo "$COMPOSER_JSON_CONTENT" | \ jq -r --arg projectEdition "ibexa/$PROJECT_EDITION" \ '.require | with_entries(select(.key | contains("ibexa/"))) | with_entries(select(.key == $projectEdition | not )) | keys') diff --git a/bin/6.0.x-dev/prepare_project_edition.sh b/bin/6.0.x-dev/prepare_project_edition.sh index 9fbf260..b8093a9 100755 --- a/bin/6.0.x-dev/prepare_project_edition.sh +++ b/bin/6.0.x-dev/prepare_project_edition.sh @@ -79,7 +79,7 @@ if [[ "$PROJECT_EDITION" != "oss" ]]; then if [[ "$PROJECT_EDITION" == "$EDITION" ]]; then break fi - COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/master/composer.json") + COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/6.0/composer.json") EDITION_PACKAGES=$(echo "$COMPOSER_JSON_CONTENT" | \ jq -r --arg projectEdition "ibexa/$PROJECT_EDITION" \ '.require | with_entries(select(.key | contains("ibexa/"))) | with_entries(select(.key == $projectEdition | not )) | keys') From 769d2834df6464cfb0807f5af91d8f736c583d0e Mon Sep 17 00:00:00 2001 From: Andrew Longosz Date: Thu, 27 Aug 2026 12:31:55 +0200 Subject: [PATCH 2/2] Derived edition branch from PROJECT_VERSION instead of hardcoding Addresses review feedback: with unified branching, the edition branch always equals the script's version line, and PROJECT_VERSION is guaranteed to match the script's directory name (the same value selects the script path in every caller). Stable releases (vX.Y.Z) are routed to bin/stable, which has no exclusion logic, and regression tmp branches never modify composer.json or workflows, so the branch-alias fallback stays clean. Co-Authored-By: Claude Fable 5 --- bin/4.6.x-dev/prepare_project_edition.sh | 2 +- bin/5.0.x-dev/prepare_project_edition.sh | 2 +- bin/6.0.x-dev/prepare_project_edition.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/4.6.x-dev/prepare_project_edition.sh b/bin/4.6.x-dev/prepare_project_edition.sh index a409905..97fa5b4 100755 --- a/bin/4.6.x-dev/prepare_project_edition.sh +++ b/bin/4.6.x-dev/prepare_project_edition.sh @@ -89,7 +89,7 @@ if [[ "$PROJECT_EDITION" != "oss" ]]; then if [[ "$PROJECT_EDITION" == "$EDITION" ]]; then break fi - COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/4.6/composer.json") + COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/${PROJECT_VERSION%.x-dev}/composer.json") EDITION_PACKAGES=$(echo "$COMPOSER_JSON_CONTENT" | \ jq -r --arg projectEdition "ibexa/$PROJECT_EDITION" \ '.require | with_entries(select(.key | contains("ibexa/"))) | with_entries(select(.key == $projectEdition | not )) | keys') diff --git a/bin/5.0.x-dev/prepare_project_edition.sh b/bin/5.0.x-dev/prepare_project_edition.sh index 7e111b9..e1ff9e8 100755 --- a/bin/5.0.x-dev/prepare_project_edition.sh +++ b/bin/5.0.x-dev/prepare_project_edition.sh @@ -79,7 +79,7 @@ if [[ "$PROJECT_EDITION" != "oss" ]]; then if [[ "$PROJECT_EDITION" == "$EDITION" ]]; then break fi - COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/5.0/composer.json") + COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/${PROJECT_VERSION%.x-dev}/composer.json") EDITION_PACKAGES=$(echo "$COMPOSER_JSON_CONTENT" | \ jq -r --arg projectEdition "ibexa/$PROJECT_EDITION" \ '.require | with_entries(select(.key | contains("ibexa/"))) | with_entries(select(.key == $projectEdition | not )) | keys') diff --git a/bin/6.0.x-dev/prepare_project_edition.sh b/bin/6.0.x-dev/prepare_project_edition.sh index b8093a9..ebdb6c1 100755 --- a/bin/6.0.x-dev/prepare_project_edition.sh +++ b/bin/6.0.x-dev/prepare_project_edition.sh @@ -79,7 +79,7 @@ if [[ "$PROJECT_EDITION" != "oss" ]]; then if [[ "$PROJECT_EDITION" == "$EDITION" ]]; then break fi - COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/6.0/composer.json") + COMPOSER_JSON_CONTENT=$(curl -s "https://raw.githubusercontent.com/ibexa/$EDITION/${PROJECT_VERSION%.x-dev}/composer.json") EDITION_PACKAGES=$(echo "$COMPOSER_JSON_CONTENT" | \ jq -r --arg projectEdition "ibexa/$PROJECT_EDITION" \ '.require | with_entries(select(.key | contains("ibexa/"))) | with_entries(select(.key == $projectEdition | not )) | keys')