Hello everyone,
I seek seconds for the General Resolution at the end of this e-mail.
The preceding sections are an introductory explanation and rationale.
We have reviewed the discussion we've already had and prepared an FAQ,
linked below.
Thank you for all the input on my previous posting, which has resulted
in a number of changes.
=====
INTRODUCTION
The tag2upload system, designed for deployment on official Debian infrastructure, allows DDs and DMs to make source-only uploads simply by pushing a signed git tag. There are two key advantages:
- it will be much quicker & easier for us to do most of our uploads
- it improves the traceability & auditability of our source-only uploads
The system works like this:
1. Maintainer types 'git debpush' to sign and push a suitable git tag.
The tag includes certain metadata that makes the maintainer's
intention to upload fully traceable, and unambiguous.
2. A robot on DSA infrastructure automatically, reliably and traceably
builds the source package, and uploads it to the Debian Archive.
tag2upload will be an additional option for your source-only uploads --
no-one will be required to use it. For more information on the details
of the system itself, I've included some links below.
The design is complete, and a prototype is fully implemented with a
thorough test suite.
In testing, it has been used to perform real uploads.
As tag2upload is security-sensitive, the design has had careful,
independent security review from Russ Allbery and Jonathan McDowell, who
did not have any part in the original design and implementation.
I note that Jonathan is one of the highly trusted maintainers of our
keyring of human uploaders.
=====
NEED FOR A GR
So, why am I proposing a GR?
The ftpmaster team have refused to trust uploads coming from the
tag2upload service. This GR is to override that decision.
In our design, the git tag contains simple metadata that can be written
out by hand. ftpmaster stated a hard requirement that the signed tag
must additionally include a manifest of all files in the .dsc.
However, due to several factors, such a file manifest cannot be
generated without the uploader building a source package.
The whole point of tag2upload is to move that process off the
uploader's system, and onto controlled project infrastructure.
We think that it should be possible to upload packages without any
complex Debian-specific tools, and we want to support as many of our
existing git workflows as we can.
Meeting these goals requires accepting source packages constructed and
uploaded by the tag2upload service.
=====
CONSERVATISM & TRACEABILITY
We are concerned that ftpmaster's position is due more to conservatism,
leading to an unwillingness to extend trust beyond our existing
processes, no matter how carefully designed and implemented the new
processes may be.
While we want people in Debian in critical paths for archive security to
be relatively conservative, that conservatism can be taken too far, and
we think that is what has happened in this case.
In fact, tag2upload significantly *improves* the traceability of our source-only uploads.
Currently, source packages are constructed from git with relatively
ad-hoc command line invocations, using whatever tooling the maintainer
has installed on their laptop.
This does not give an adequate level of traceability.
tag2upload will be a massive *improvement* to traceability since it will restore the formal and traceable link between what most maintainers
actually work with and treat as canonical (git, nowadays), and what
Debian as an institution officially publishes (packages).
=====
THE DESIGN & IMPLEMENTATION ARE LATE-STAGE
We wish to be clear that tag2upload can be deployed without *any* code
changes to dak. It just needs to be given a suitably trusted key,
very similar to how buildds have trusted keys.
There are a few loose ends we want to complete to turn the prototype
into the finished service. Some design adjustments made in response to
Russ Allbery's security review are still to be implemented, and we will
arrange how the deployment will work in consultation with DSA.
Should this GR pass, the tag2upload project will be unstuck, and could
be deployed in a matter of months. Then the source-only uploads of as
many of us who want it can become just 'git debpush' and done, without
any other workflow changes or learning.
There do not exist any other designs that are anywhere near complete,
and there are no other implementations, for upload-by-git-tag.
=====
WHAT'S NEXT
Initially, we'll complete the implementation and deployment work, in collaboration with DSA. When we're ready, we'll advertise for early
adopters, who are happy to put up with teething troubles.
Eventually we expect many people to switch to using tag2upload for all
their source-only uploads, thanks to its convenience.
What comes after that will be up to all of us.
We intend tag2upload to be an incremental change, which meets people
where they are, and only gives them more options.
Debian is big, and different packages and situations call for different solutions. We do not pretend that tag2upload will be capable of
handling all of them.
But it will indeed handle most of our day-to-day source-only uploads.
=====
LINKS
https://salsa.debian.org/dgit-team/dgit/-/blob/master/TAG2UPLOAD-FAQ.md
-- answers to some Frequently Asked Questions (FAQ)
https://wiki.debian.org/DebianEvents/gb/2023/MiniDebConfCambridge/Jackson
-- recent mini-debconf talk outlining the system
https://www.eyrie.org/~eagle/notes/debian/tag2upload.html
-- Russ's security review
https://salsa.debian.org/dgit-team/dgit/-/blob/master/git-debpush.1.pod
-- the tool maintainers will use
https://salsa.debian.org/dgit-team/dgit/-/blob/master/TAG2UPLOAD-DESIGN.txt
-- the design & deployment of the service
https://salsa.debian.org/dgit-team/dgit/-/blob/master/tag2upload.5.pod
-- the syntax & semantics of the tags git-debpush makes
The design is not expected to change significantly, but we may tweak
details in response to feedback from d-vote, and while finishing the server-side deployment implementation, in consultation with DSA.
=====
BEGIN FORMAL RESOLUTION TEXT
tag2upload allows DDs and DMs to upload simply by using the
git-debpush(1) script to push a signed git tag.
1. tag2upload, in the form designed and implemented by Sean Whitton and
Ian Jackson, and design reviewed by Jonathan McDowell and Russ
Allbery, should be deployed to official Debian infrastructure.
2. Under Constitution §4.1(3), we overrule the ftpmaster delegate's
decision: the Debian Archive should be configured to accept and trust
uploads from the tag2upload service.
3. Future changes to tag2upload should follow normal Debian processes.
4. Nothing in this resolution should be taken as requiring maintainers
to use any particular git or salsa workflows.
END FORMAL RESOLUTION TEXT
=====
This resolution requires a simple majority.
There is no supermajority requirement for Constitution §4.1(3).
--
Sean Whitton
--=-=-Content-Type: application/pgp-signature; name="signature.asc"
-----BEGIN PGP SIGNATURE-----
iQJNBAEBCgA3FiEEm5FwB64DDjbk/CSLaVt65L8GYkAFAmZ9EZ4ZHHNwd2hpdHRv bkBzcHdoaXR0b24ubmFtZQAKCRBpW3rkvwZiQDZ8D/46MrrMVE/QsDSW5KN68S8F BtuE7DDJ0TyRoZi0LVnWG2gk9SSvTVZ4ikV0t2ZhSmh2UUG/iUXsok08ziZDmLvU 4o6l3UobiMPSn2+UiRaCJFUC0XmBEbugRKDx1PyvTElIvglzTXQ7nzUvv6O2pYgJ kOk+gr4OoBfOlPSPGlT/VtpQJEaVHBYxUKeGVHLTcTXvUlfiLenp2AmU8+N2Bv4r W/MEfhRxLDxrRb+NVLoLjRHYChuk/fDffz2qyxTJe1QJ4DHVNkm5ufi6el8vQMnj Yf85yNllmgwZBQW7Pk65rbVw0qqh7XTWBlMPeTFV/i8dj51ZXWSIeQ32AFRgkaEz EdBDBsR41bgTmBTlwO+Syxi6eQ6h8fzFPv4Bv9sxxvKY8GRL6i91akQfzAt5yN1f YyF6R0hQU0wqKh2co2EX5O7YEXt8vYtXaapwtUXsZXIhx47x4jvsegkGj6Ly3hjQ SMZWyqp9m0FfJNd7718nt5Si+i/rVDV/ntNl+ZXml5CfeakbzgYhy33J0LN4QLUS ir63xtNOnlxxXLsPJBHmDYGDNafd+aT+CaoP/0aC+UxihhFf3OC8XM1y1OCRkY14 u9tvODKeWRmFCGbaHeD+9R0EBXr2n+LcCM0x7WW9afpeX9oRBA6n/bjnUnqdKLzi hCplMXdzhGn8aYFlzTDIzw==m0Jn
-----END PGP SIGNATURE-----
--- SoupGate-Win32 v1.05
* Origin: fsxNet Us