-
Notifications
You must be signed in to change notification settings - Fork 16
sbuild: Pin experimental extras with --add-depends #36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
sbuild: Pin experimental extras with --add-depends #36
Conversation
When building with experimental we follow the buildd aspcud criteria: -count(down),-count(changed,APT-Release:=/experimental/),-removed,-changed,-new With these criteria, aspcud may still choose dependencies from unstable even if we pass locally rebuilt experimental .debs via --extra-package. In that case, reverse-dependency builds end up using the in-archive versions instead of the .debs we are trying to test, which can hide regressions (see: https://salsa.debian.org/salsa-ci-team/pipeline/-/issues/519). When experimental and extra .debs are provided, add each as an exact build-dependency: --add-depends=pkg (= version) so the solver installs the intended experimental versions from experimental instead of mixing in unstable.
|
I also considered other options (like tweaking the aspcud criteria or using apt The main downside is that the sbuild command line grows with the number of It would be useful if sbuild had a native option to install specific |
|
@aquilamacedo IMO this will break builds when the produced binary packages are in conflict. I think the best way would be going with pinning. |
Thanks for the suggestion. After discussing this with the sbuild maintainer, pinning did not look like a viable solution because the aspcud resolver does not consistently honor APT pinning, so it would not guarantee the injected experimental |
|
Hi @stapelberg, I just updated this PR with some new changes. Could you please take another look and merge it if everything looks good? |
Even when the input .changes targets experimental, resolve/rebuild rdeps from unstable, injecting the locally built .debs via sbuild --extra-package. Add -sbuild-experimental-aspcud option for buildd-like experimental handling (experimental overlay + aspcud buildd criteria) and document it in README and ratt(1).
23605bd to
1b5bdf0
Compare
This MR tweaks how ratt handles
.changesthat target experimental.By default, even if the input
.changesis for experimental, ratt resolves and rebuilds reverse build-deps from unstable, and only injects the locally built.debs from that.changesviasbuild --extra-package. That is the workflow most people want when doing rdep testing.In case a user wants buildd-like experimental behavior, they can pass
-sbuild-experimental-aspcud. In that mode, sbuild enables the experimental overlay and uses the buildd aspcud criteria:-count(down),-count(changed,APT-Release:=/experimental/),-removed,-changed,-newOne gotcha with those criteria is that aspcud can still pick dependencies from unstable even when
--extra-packageis provided. That can make rdep builds use the in-archive versions instead of the.debyou are testing, which can hide regressions (see https://salsa.debian.org/salsa-ci-team/pipeline/-/issues/519). To avoid that, when experimental+aspcud mode is enabled and extra.debs are provided, we also add each of them as an exact build-dependency via--add-depends='pkg (= version)', forcing the solver to install the intended versions.