Skip to content

Fix linux/arm64 CI image build broken by the ibm.db2 provider - #72058

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:exclude-ibm-db2-provider-on-linux-arm64
Aug 26, 2026
Merged

potiuk merged 1 commit into
apache:mainfrom
potiuk:exclude-ibm-db2-provider-on-linux-arm64

Conversation

@potiuk

@potiuk potiuk commented Aug 25, 2026

Copy link
Copy Markdown
Member

ibm-db publishes no Linux aarch64 wheel and its sdist fails to build there with NameError: name 'arch_' is not defined, so every linux/arm64 CI image build has failed since the ibm.db2 provider merged — blocking the scheduled ARM run on main.

This applies the mechanism already used for ibm.mq: declare excluded-platforms in provider.yaml so the provider leaves the ARM test matrix, and translate that into install-time environment markers so it is never pulled in there. ibm-db-sa is pure Python but depends on ibm-db, so it carries the same marker.

While doing so it corrects that mechanism. EXCLUDED_PLATFORM_MACHINES mapped linux/arm64 to both aarch64 and arm64, which is wrong in general — platform.machine() reports aarch64 on Linux and arm64 on macOS, so those are distinct targets rather than two spellings of one. IBM does ship macosx_*_arm64 wheels for ibm-db, so excluding arm64 would have removed a working driver from Apple Silicon for no reason. Each platform now contributes only its own machine spelling, and a provider that is unusable on every ARM target says so by listing both platforms — which is what ibm.mq now does. Its generated markers in the meta-package are unchanged, so that provider's behaviour is identical.

Supersedes #72021, which fixes the same build failure but leaves ibm.db2 in the ARM test matrix.


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Opus 5 (1M context)

Generated-by: Claude Opus 5 (1M context) following the guidelines

`ibm-db` publishes no Linux aarch64 wheel and its sdist fails to build there
with `NameError: name 'arch_' is not defined`, so every linux/arm64 CI image
build has failed since the provider merged, blocking the scheduled ARM run on
main.

Apply the mechanism already used for ibm.mq — declare `excluded-platforms` so
the provider leaves the ARM test matrix, and translate that into install-time
markers so it is never pulled in there. `ibm-db-sa` is pure Python but depends
on `ibm-db`, so it needs the same marker.

That mechanism mapped `linux/arm64` to both `aarch64` and `arm64`, which is
wrong in general: `platform.machine()` reports `aarch64` on Linux and `arm64`
on macOS, so the two are distinct targets rather than two spellings of one.
IBM does ship macosx arm64 wheels for `ibm-db`, so excluding `arm64` would have
removed a working driver from Apple Silicon. Each platform now contributes only
its own machine spelling, and a provider unusable on every ARM target says so by
listing both platforms — which is what ibm.mq now does, leaving its generated
markers unchanged.
@potiuk
potiuk merged commit 57a0519 into apache:main Aug 26, 2026
107 checks passed
@potiuk
potiuk deleted the exclude-ibm-db2-provider-on-linux-arm64 branch August 26, 2026 11:12
@github-actions

Copy link
Copy Markdown
Contributor

Backport failed to create: v3-3-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
❌ v3-3-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 57a0519 v3-3-test

This should apply the commit to the v3-3-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

imrichardwu pushed a commit to imrichardwu/airflow that referenced this pull request Sep 11, 2026
…#72058)

`ibm-db` publishes no Linux aarch64 wheel and its sdist fails to build there
with `NameError: name 'arch_' is not defined`, so every linux/arm64 CI image
build has failed since the provider merged, blocking the scheduled ARM run on
main.

Apply the mechanism already used for ibm.mq — declare `excluded-platforms` so
the provider leaves the ARM test matrix, and translate that into install-time
markers so it is never pulled in there. `ibm-db-sa` is pure Python but depends
on `ibm-db`, so it needs the same marker.

That mechanism mapped `linux/arm64` to both `aarch64` and `arm64`, which is
wrong in general: `platform.machine()` reports `aarch64` on Linux and `arm64`
on macOS, so the two are distinct targets rather than two spellings of one.
IBM does ship macosx arm64 wheels for `ibm-db`, so excluding `arm64` would have
removed a working driver from Apple Silicon. Each platform now contributes only
its own machine spelling, and a provider unusable on every ARM target says so by
listing both platforms — which is what ibm.mq now does, leaving its generated
markers unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants