Intro
This page is meant to collect information for a potential change in how the Release Team rebuilds packages. It should aid coming to a conclusion on the topic of current binNMU's vs no-change NMU's.
Initial discussion happened during a Release Team IRC meeting. There's also a long standing bug about this.
Rationale
Reasons why we'd want no-change NMU (of some form)
- ensures source and archive are in sync (reproducibility)
- fundamentally fixes multiarch:same coinstallability (instead of by way of working)
enables autopkgtest of rebuilds (without changes to britney)
- enables arch:all rebuilds in the same way
- [minor] helmut can drop a bunch of code from rebootstrap
Drawbacks
without integration in wb, it requires multiple tools to rebuild during transitions (one to trigger the rebuild, one to manage extra-depends and dw)
without changes in britney (or use of priority emergency or critical), rebuilds in a transition would have to age first
- source uploads need the source on the uploaders machine (bandwidth)
BTS doesn't handle history correctly for NMU versions that don't appear in future changelogs; i.e. bugs reported against the NMU version are not considered found in later uploads
humans might be confused by not being able to find the current version in $VCS etc.
$tracker will claim the $VCS is out-of-date
Possible solutions
use a dedicated versioning scheme (e.g. +d#) and teach BTS (or reportbug?), $tracker and other tools (which ones?) to treat them as the version with the extension stripped [elbrus: can we use the existing binNMU scheme or are there tools that treat that somehow that would break?]
re-use the Ubuntu versioning scheme of buildN? dch --rebuild already supports that on Ubuntu systems
teach wb to do the upload somehow (combined with the other solutions)
- as this upload wouldn't change the source, for source format 3.0 one wouldn't need to have all the source, only the /debian part, to correctly generate the .changes file.
[ugly] to enable extra-depends during the upload it can be embedded in .dsc only (see meeting recordings around 19:53)
[partial and with drawbacks] to avoid extra-depends, update chroot before each build (see meeting recordings around 20:01)
