Skip to content

build: bump Launchpad PPA toolchain and MSRV to Rust 1.96#231

Merged
inureyes merged 1 commit into
mainfrom
build/ppa-toolchain-rust-1.96
Jul 19, 2026
Merged

build: bump Launchpad PPA toolchain and MSRV to Rust 1.96#231
inureyes merged 1 commit into
mainfrom
build/ppa-toolchain-rust-1.96

Conversation

@inureyes

Copy link
Copy Markdown
Member

Summary

Rust 1.96 has shipped (latest patch 1.96.1), so this moves the Debian/Launchpad packaging toolchain and the declared MSRV off 1.93 onto 1.96.

Changes

  • Cargo.toml: raise rust-version from 1.93 to 1.96, keeping the MSRV aligned with the Launchpad PPA build toolchain as documented in the surrounding comment. The CI msrv job reads this value from Cargo.toml, so it tracks the bump automatically.
  • debian/control, debian/control.source: update build dependencies to rustc-1.96 | rustc (>= 1.96) and cargo-1.96 | cargo (>= 1.96).
  • debian/rules, debian/rules.launchpad, debian/rules.launchpad-simple, debian/rules.source: prefer the rustc-1.96/cargo-1.96 toolchain and raise the dpkg --compare-versions gate to ge 1.96.
  • debian/README.packaging: refresh the documented Rust version requirement to 1.96.
  • .github/workflows/launchpad_ppa.yml: set vendor_rust to 1.96.1 for jammy, noble, and resolute, and update the resolute toolchain-source note to Rust 1.96+.

The exact patch 1.96.1 is used only for vendor_rust (the toolchain the CI runner installs to vendor crates); package build-deps and the MSRV correctly use the 1.96 minor series per Debian and Cargo conventions.

Preconditions before the PPA workflow will build

  • Jammy and Noble resolve their build toolchain from the ~lablup/+archive/ubuntu/rustc-release dependency PPA. That PPA must publish rustc-1.96 and cargo-1.96 before those builds can resolve the dependency.
  • Resolute (26.04) is assumed to carry Rust 1.96+ in its archive; if the archive Rust is older, resolute will also need the dependency PPA.

Verification

Config, packaging, and workflow only; no Rust source changed. cargo fmt --check is clean. CI test uses the stable toolchain and msrv fetches 1.96 via dtolnay/rust-toolchain.

Rust 1.96 has shipped (latest patch 1.96.1), so move the packaging toolchain off 1.93. This raises the declared MSRV in Cargo.toml to 1.96 to keep it aligned with the Launchpad PPA build toolchain, updates the debian/control and debian/control.source build dependencies to rustc-1.96/cargo-1.96, bumps the rustc/cargo version gate in every debian/rules variant to ge 1.96, refreshes debian/README.packaging, and sets vendor_rust to 1.96.1 for all distros in the Launchpad PPA workflow. The CI msrv job reads rust-version from Cargo.toml, so it tracks the new value automatically.

Jammy and Noble still resolve their build toolchain from the ~lablup/+archive/ubuntu/rustc-release dependency PPA, which must publish rustc-1.96 and cargo-1.96 before those builds can resolve the dependency.
@inureyes inureyes added type:chore Maintenance tasks (build, CI, etc) status:review Under review priority:medium Medium priority issue labels Jul 19, 2026
@inureyes
inureyes merged commit 1b75ecb into main Jul 19, 2026
3 checks passed
@inureyes
inureyes deleted the build/ppa-toolchain-rust-1.96 branch July 19, 2026 12:20
inureyes added a commit that referenced this pull request Jul 19, 2026
…r_rust to 1.96.0 (#232)

## Summary

Follow-up to #231. Verified the actual state of the `~lablup/+archive/ubuntu/rustc-release` PPA and adjusted the packaging config to match reality.

## PPA verification

Queried the Launchpad API (`getPublishedSources`). `rustc-1.96` is published for all three target series:

| Source | Version | Series |
| --- | --- | --- |
| rustc-1.96 | 1.96.0+dfsg1-0ubuntu1~22.04.1 | jammy |
| rustc-1.96 | 1.96.0+dfsg1-0ubuntu1~24.04.1 | noble |
| rustc-1.96 | 1.96.0+dfsg1-0ubuntu1~26.04.2 | resolute |

So the #231 precondition (PPA must ship `rustc-1.96`/`cargo-1.96`) is already satisfied, and the PPA serves Resolute (26.04) as well. The PPA patch is 1.96.0, not 1.96.1.

## Changes

- Resolute now documents the same dependent-PPA toolchain source as jammy and noble in `launchpad_ppa.yml` and `debian/README.packaging`, instead of claiming it builds from the 26.04 archive without the dependency PPA. `debian/control` already prefers the versioned `rustc-1.96` alternative, so no control change is needed.
- `vendor_rust` drops from 1.96.1 to 1.96.0 for all distros so the runner-side lockfile validation and `cargo vendor` step run on the exact patch Launchpad compiles with, removing any patch-level skew between the vendoring toolchain and the build toolchain.

## Verification

Workflow and docs only; no Rust source or `debian/control` build-deps changed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority:medium Medium priority issue status:review Under review type:chore Maintenance tasks (build, CI, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant