Description
Rust has no stable ABI yet, and is a moving target. Both the Ubuntu and Arch packages probably need a package bump whenever the Rust tooling packages get updated in their repos.
Might not apply if Canonical guarantees a version pinned Rust that only contains backports, unsure about that since Canonical has been moving fast and loose lately.
Additionally, Arch is rolling release and has no stable ABI guarantees at all, and thus needs to be bumped whenever any hard dependency (possibly soft too, if it relies on header files) gets updated.
For the best user experience, we should ensure our distro packages are always functional and do not crash due to ABI incompatibilities.
Proposed solution
-
Explore what dependencies could break our application. Probably just Rust + glibc.
-
Introduce staging packages that apply against testing repos for distros (testing repo for Arch, proposed repo for Ubuntu).
-
Setup a workflow that utilizes rebuild-detector (and/or arch-rebuild-order?) to run every night in a GitHub Action, against the testing distro repos and our staging packages. To automatically bump the package, and trigger a rebuilt and package update if need be.
-
Setup another workflow that syncs staging packages to production packages, to be triggered whenever the distro specific testing repo packages that we depend upon are synced to the production distro repos. (needs some tooling? periodic cron -like checker against git/bzr distro repo sources?)
Description
Rust has no stable ABI yet, and is a moving target. Both the Ubuntu and Arch packages probably need a package bump whenever the Rust tooling packages get updated in their repos.
Might not apply if Canonical guarantees a version pinned Rust that only contains backports, unsure about that since Canonical has been moving fast and loose lately.
Additionally, Arch is rolling release and has no stable ABI guarantees at all, and thus needs to be bumped whenever any hard dependency (possibly soft too, if it relies on header files) gets updated.
For the best user experience, we should ensure our distro packages are always functional and do not crash due to ABI incompatibilities.
Proposed solution
Explore what dependencies could break our application. Probably just Rust + glibc.
Introduce staging packages that apply against testing repos for distros (testing repo for Arch, proposed repo for Ubuntu).
Setup a workflow that utilizes rebuild-detector (and/or arch-rebuild-order?) to run every night in a GitHub Action, against the testing distro repos and our staging packages. To automatically bump the package, and trigger a rebuilt and package update if need be.
Setup another workflow that syncs staging packages to production packages, to be triggered whenever the distro specific testing repo packages that we depend upon are synced to the production distro repos. (needs some tooling? periodic cron -like checker against git/bzr distro repo sources?)