Skip to content

fix(ci): add libxml2-dev to e2e image and disable Swift SPM tests#8918

Merged
jdx merged 1 commit intomainfrom
fix/e2e-swift-spm-disable
Apr 4, 2026
Merged

fix(ci): add libxml2-dev to e2e image and disable Swift SPM tests#8918
jdx merged 1 commit intomainfrom
fix/e2e-swift-spm-disable

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Apr 4, 2026

Summary

  • Add libxml2-dev to e2e Docker image
  • Disable SPM tests in test_swift_slow: Swift 24.04 binaries link against libxml2.so.2 but Ubuntu 26.04 ships libxml2.so.16 (ABI mismatch). SPM tests will fail until Swift provides native 26.04 binaries.

Test plan

  • Confirmed ABI mismatch: Swift's swift-package expects libxml2.so.2, Ubuntu 26.04 has libxml2.so.16
  • Swift install + swift --version still works (only SPM is broken)

🤖 Generated with Claude Code


Note

Low Risk
Low risk CI-only change: adjusts e2e Docker dependencies and temporarily skips failing Swift SPM assertions due to an Ubuntu 26.04/libxml2 ABI mismatch.

Overview
Updates the e2e test environment to install libxml2-dev (replacing libxml2) in packaging/e2e/Dockerfile.

Temporarily disables the Swift SPM-based SwiftFormat assertions in e2e/core/test_swift_slow, documenting an Ubuntu 26.04 libxml2 ABI mismatch until Swift ships compatible binaries.

Reviewed by Cursor Bugbot for commit e7e8691. Bugbot is set up for automated code reviews on this repo. Configure here.

Swift 24.04 binaries link against libxml2.so.2 but Ubuntu 26.04 ships
libxml2.so.16 (ABI mismatch). Add libxml2-dev for other potential uses
and disable SPM tests until Swift provides Ubuntu 26.04 binaries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@jdx jdx merged commit 36c7de4 into main Apr 4, 2026
29 of 30 checks passed
@jdx jdx deleted the fix/e2e-swift-spm-disable branch April 4, 2026 23:23
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 4, 2026

Greptile Summary

This PR fixes a CI compatibility issue when running e2e tests on Ubuntu 26.04 by adding libxml2-dev to the Docker test image and disabling Swift SPM tests that fail due to an ABI mismatch between Swift's Ubuntu 24.04 binaries (which expect libxml2.so.2) and Ubuntu 26.04 (which ships libxml2.so.16).

  • packaging/e2e/Dockerfile: Adds libxml2-dev to the apt package list, correctly inserted in alphabetical order between libicu-dev and libncurses-dev
  • e2e/core/test_swift_slow: Comments out spm: backend tests with a clear TODO explaining the Ubuntu 26.04/libxml2 ABI mismatch; the Swift install and swift --version assertion still run to confirm the core tool works correctly
  • PR title note: Per project conventions in CLAUDE.md, fix: is reserved for "Bug fixes that affect the CLI behavior (not CI, docs, or infrastructure)" while CI/infrastructure changes should use chore:. The title chore(ci): ... would be more consistent with project conventions, though the underlying fix is correct regardless.

Confidence Score: 5/5

Safe to merge — minimal, well-documented CI infrastructure fix with no changes to mise core logic.

Both changes are small and focused: a single package addition to the Dockerfile (alphabetically placed) and commented-out tests with a clear TODO. The root cause (ABI mismatch) is well-documented in the PR description and inline comments, and the Swift core install test still runs to verify the tool works.

No files require special attention.

Important Files Changed

Filename Overview
e2e/core/test_swift_slow Disables SPM tests that fail due to libxml2 ABI mismatch between Swift 24.04 binaries and Ubuntu 26.04; core Swift install/version assertion still runs
packaging/e2e/Dockerfile Adds libxml2-dev alphabetically to the apt install list in the Ubuntu 26.04 e2e Docker image

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Ubuntu 26.04 e2e Docker Image] --> B[apt install ... libxml2-dev ...]
    B --> C[Run test_swift_slow]
    C --> D[mise use swift@6]
    D --> E[assert swift --version]
    E --> F{SPM tests}
    F -->|DISABLED - ABI mismatch| G[Swift 24.04 expects libxml2.so.2\nUbuntu 26.04 ships libxml2.so.16]
    G --> H[TODO: Re-enable when Swift\nprovides native Ubuntu 26.04 binaries]
Loading

Reviews (1): Last reviewed commit: "fix(ci): add libxml2-dev to e2e image an..." | Re-trigger Greptile

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 4, 2026

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 x -- echo 17.2 ± 0.5 16.2 18.8 1.00
mise x -- echo 18.1 ± 0.4 17.0 19.5 1.05 ± 0.04

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 env 17.0 ± 0.5 16.0 22.7 1.00
mise env 17.9 ± 4.8 16.5 116.8 1.05 ± 0.28

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 hook-env 17.5 ± 1.0 16.5 33.4 1.00
mise hook-env 18.0 ± 0.5 17.0 21.6 1.03 ± 0.07

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 ls 16.1 ± 0.4 15.1 17.4 1.00
mise ls 16.8 ± 0.4 15.9 18.0 1.04 ± 0.04

xtasks/test/perf

Command mise-2026.4.3 mise Variance
install (cached) 115ms 114ms +0%
ls (cached) 65ms 66ms -1%
bin-paths (cached) 68ms 67ms +1%
task-ls (cached) 704ms 701ms +0%

jdx pushed a commit that referenced this pull request Apr 5, 2026
### 🚀 Features

- **(ci)** auto-convert external PRs to draft mode by @jdx in
[#8896](#8896)
- **(deps)** add `depends` field for user-specified tool dependencies by
@cprecioso in [#8776](#8776)
- **(dotnet)** support runtime-only installs by @fragon10 in
[#8524](#8524)
- **(npm)** apply install_before to transitive dependencies by @risu729
in [#8851](#8851)
- **(task)** allow passing arguments to task dependencies via
{{usage.*}} templates by @jdx in
[#8893](#8893)
- add options field to BackendListVersionsCtx by @esteve in
[#8875](#8875)

### 🐛 Bug Fixes

- **(backend)** filter PEP 440 .dev versions in fuzzy version matching
by @richardthe3rd in [#8849](#8849)
- **(ci)** update COPR BuildRequires rust version to match MSRV 1.88 by
@jdx in [#8911](#8911)
- **(ci)** add Ruby build dependencies to e2e Docker image by @jdx in
[#8910](#8910)
- **(ci)** add missing build dependencies to e2e Docker image by @jdx in
[#8912](#8912)
- **(ci)** add missing build dependencies to e2e Docker image by @jdx in
[#8914](#8914)
- **(ci)** use Node 24 LTS for corepack e2e test by @jdx in
[#8915](#8915)
- **(ci)** add libxml2 and pkg-config to e2e Docker image by @jdx in
[#8917](#8917)
- **(ci)** add libxml2-dev to e2e image and disable Swift SPM tests by
@jdx in [#8918](#8918)
- **(docs)** use sans-serif font for badges by @jdx in
[#8887](#8887)
- **(env)** parse --env=VALUE and -E=VALUE flag forms correctly by @jdx
in [#8889](#8889)
- **(exec)** use i64::from() for seccomp syscall numbers to survive
autofix by @jdx in [#8882](#8882)
- **(github)** preserve tool options like filter_bins when version
specified via CLI by @jdx in
[#8888](#8888)
- **(github)** use alias-specific options when tool_alias has its own
config by @jdx in [#8892](#8892)
- **(install)** add locked_verify_provenance setting and detect github
attestations at lock time by @jdx in
[#8901](#8901)
- **(lock)** prune stale version entries during filtered `mise lock
<tool>` runs by @altendky in
[#8599](#8599)
- **(python)** use lockfile URL for precompiled installs by @hehaoqian
in [#8750](#8750)
- **(release)** verify all build targets succeed before releasing by
@jdx in [#8886](#8886)
- **(ruby)** support build revisions for precompiled binaries in
mise.lock by @jdx in [#8900](#8900)
- **(swift)** fall back to Ubuntu 24.04 for unsupported Ubuntu versions
by @jdx in [#8916](#8916)
- **(zsh)** avoid duplicate trust warning after cd by @timothysparg in
[#8898](#8898)
- update flake.lock and add fix for rust-bindgen to default.nix by
@esteve in [#8874](#8874)
- when direnv diff is empty, do not try to parse it by @yaleman in
[#8857](#8857)
- skip trust check for plain .tool-versions in task list by @dportalesr
in [#8876](#8876)

### 🚜 Refactor

- **(go)** rename go_* settings to go.* namespace by @jdbruijn in
[#8598](#8598)

### 📚 Documentation

- **(tasks)** clarify task_config.includes behavior by @risu729 in
[#8905](#8905)

### 🧪 Testing

- **(ci)** run e2e tests inside Docker containers by @jdx in
[#8899](#8899)

### 📦️ Dependency Updates

- bump ubi from 0.8 to 0.9 by @jdx in
[#8906](#8906)
- bump zip from 3 to 8 by @jdx in
[#8908](#8908)
- update lockfile deps (hold back rattler) by @jdx in
[#8909](#8909)
- update bun.lock by @jdx in
[#8913](#8913)

### 📦 Registry

- add turso
([github:tursodatabase/turso-cli](https://github.com/tursodatabase/turso-cli))
by @kenn in [#8884](#8884)
- remove carp test by @jdx in
[#8894](#8894)

### Chore

- **(ci)** add workflow to warn PRs modifying vendored aqua-registry by
@jdx in [#8897](#8897)
- **(ci)** use github.token for draft conversion in auto-draft workflow
by @jdx in [#8903](#8903)
- remove deprecated settings older than 12 months by @jdx in
[#8904](#8904)

### New Contributors

- @dportalesr made their first contribution in
[#8876](#8876)
- @timothysparg made their first contribution in
[#8898](#8898)
- @hehaoqian made their first contribution in
[#8750](#8750)
- @jdbruijn made their first contribution in
[#8598](#8598)
- @cprecioso made their first contribution in
[#8776](#8776)
- @yaleman made their first contribution in
[#8857](#8857)
- @kenn made their first contribution in
[#8884](#8884)
- @fragon10 made their first contribution in
[#8524](#8524)

## 📦 Aqua Registry Updates

#### New Packages (6)

- [`ahkohd/oyo`](https://github.com/ahkohd/oyo)
- [`bellicose100xp/jiq`](https://github.com/bellicose100xp/jiq)
- [`kurama/dealve-tui`](https://github.com/kurama/dealve-tui)
- [`micahkepe/jsongrep`](https://github.com/micahkepe/jsongrep)
- [`textfuel/lazyjira`](https://github.com/textfuel/lazyjira)
- [`ubugeeei/vize`](https://github.com/ubugeeei/vize)

#### Updated Packages (1)

- [`sigstore/cosign`](https://github.com/sigstore/cosign)
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.

1 participant