Skip to content

Pinned matching edition branches in package-exclusion logic - #144

Open
alongosz wants to merge 2 commits into
mainfrom
pin-edition-branches-in-exclude-logic
Open

Pinned matching edition branches in package-exclusion logic#144
alongosz wants to merge 2 commits into
mainfrom
pin-edition-branches-in-exclude-logic

Conversation

@alongosz

@alongosz alongosz commented Aug 27, 2026

Copy link
Copy Markdown
Member
🎫 Issue n/a

Related PRs:

Description:

The edition package-exclusion logic in prepare_project_edition.sh (introduced in #55 / #56 for IBX-3786) fetches the composer.json of higher editions to build the updates.ibexa.co exclude list, simulating customer license entitlements in CI.

The scripts fetched the master branch of the edition repos:

  • That was correct in 2022, but the editions' dev branches have since been renamed to version numbers (no master branch exists in ibexa/commerce, ibexa/experience, or ibexa/headless anymore).
  • The URLs kept working only through GitHub's branch-rename redirect, which now serves 6.0 content to every version line.
  • This skews the exclude list for older lines. Example: commerce 6.0 lists ibexa/discounts and ibexa/discounts-codes in the metapackage, while 4.6 does not.

This PR makes the maintained scripts (4.6.x-dev, 5.0.x-dev, 6.0.x-dev) fetch the edition branch matching their version line, derived from PROJECT_VERSION.

For QA:

Review the changes.

Regression run result: 🟢 ibexa/experience run 33064896823 - list is correctly attached when ran against the changes from this branch.

Previously it attached 5.0/6.0 packages which were not part of 4.6 core Product, see ibexa/experience/ run 33037261410

🤖 Generated with Claude Code

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 <noreply@anthropic.com>
@alongosz
alongosz requested review from a team and mnocon August 27, 2026 09:44
@mnocon

mnocon commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Looking at #56 (comment). and the unified branching we have right now, maybe this could be simplified to use the target branch name of the PR.

Clearly I didn't remember about this when adding the stable branches 😄

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 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@alongosz

Copy link
Copy Markdown
Member Author

Looking at #56 (comment). and the unified branching we have right now, maybe this could be simplified to use the target branch name of the PR.

Clearly I didn't remember about this when adding the stable branches 😄

@mnocon
My Assistant and I decided that it's a good call, however PR details are most likely unavailable at the time of script execution. Remember that it's fetched via curl at runtime. What we're proposing via 769d283 is relying on PROJECT_VERSION env variable instead. TBD with regressions if it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants