- Package:
- git-depush
- Source:
- git-depush
- Submitter:
- Ian Jackson
- Date:
- 2025-06-13 15:07:04 UTC
- Severity:
- normal
tag2upload(5) is unclear about metadata item repetitions and
ordering.
Matthias Urlichs writes ("Re: Pythonista wanted for help with tag2upload testing [and 1 more messages]"):
These are very interesting scenarios to consider.
Several of them supposes the possibility of some kind of notion of
"related tags" - a relationship between tags that depends on placement
or ordering, or something. That possibility is left open in the
current spec wording.
I agree with Matthias's point that this makes very unclear what the
the data model is, that's the result of parsing the metadata items.
Currently the spec says:
The placement and ordering of metadata items is not relevant, unless
specified otherwise here.
I think we ought to rule out that the relevant placement of two
different items is ever relevant, and exclude this kind of
semantically-relevant interleaving.
Ie, to take Matthias's first example, we should probably not invent
such an extension. Instead we should do:
[dgit distro=debian tag=debian=1:42.1-1]
[dgit distro=ubuntu tag=ubuntu=2:42.1-2]
and define that it is semantically equivalent to (say)
[dgit distro=debian tag=debian@1:42.1-1 tag=ubuntu@2:42.1-2 distro=ubuntu]
I think we may want to preserve ordering within a keyword, since
that's straightforward. So this would be *different*
[dgit distro=debian tag=ubuntu@2:42.1-2 distro=ubuntu tag=debian@1:42.1-1]
We might choose to spell such an extension
[dgit distro=debian tag=debian=1:42.1-1 tag=ubuntu=2:42.1-2 distro=ubuntu]
with an `=` in the value, or
[dgit distro=debian tag.debian=1:42.1-1 tag.ubuntu=2:42.1-2 distro=ubuntu]
embedding the "scope" in the tag name.
How about this text for the spec:
The placement and ordering of metadata items is not relevant, except
for the relative ordering of items with the same keyword. A keyword
may be repeated iff this is stated in its description. Unknown
keywords are ignored (and may be repeated).
So the abstract data model of a whole parsed but not interpeted tag is:
map, from keyword, to nonempty sequence of optional values.
In Rust-ish syntax, `Map<String, Vec<Option<String>>`.
?
Ian.
Ian Jackson writes ("tag2upload(5) unclear about tag parsing rules & data model"):
...
Implicitly this says that keywords can't contain `=` but values can.
The current spec says that a keyword can start with `=` which is
nonsensical. We should instead say that keywords cannot contain `=`.
Ian.
We believe that the bug you reported is fixed in the latest version of
dgit, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 1106078@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Ian Jackson <ijackson@chiark.greenend.org.uk> (supplier of updated dgit package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 13 Jun 2025 15:07:04 +0100
Source: dgit
Architecture: source
Version: 13.1
Distribution: experimental
Urgency: medium
Maintainer: Debian tag2upload Delegates <dgit-owner@debian.org>
Changed-By: Ian Jackson <ijackson@chiark.greenend.org.uk>
Closes: 1105756 1105815 1105862 1105878 1106078 1106481 1107226 1107550
Changes:
dgit (13.1) experimental; urgency=medium
.
git-debpush behavioural improvements [Sean Whitton]:
* Detect apparent intent to use pristine-tar (which is not supported).
Closes: #1105862. [Reports from Simon Josefsson, Anton Gladky]
* Detect presence of git submodules, and fail early.
Closes: #1107226. [Report from Andrea Pappacoda] See also #726953.
* When checks fail, prompt interactively, asking whether to proceed.
Closes: #1105815, #1107550.
* Rename hazardous --quilt=auto, to --quilt=try-linear.
[Prompted by report from Anton Gladky]
.
git-debpush(1) improvements [Sean Whitton]:
* Document that we never do a git force push.
Closes: #1105756. [Report from Simon Josefsson]
* --quilt=gbp: Mention quilt(1) explicitly. [Report from Anton Gladky]
* Fix erroneous dedent location for end of list of options.
.
tag2upload infrastructure:
* t2u-b-rebuild: Improve logging and error handling.
* tag2upload-oracled: Predeclare some function prototypes.
Closes: #1105878. [Sean Whitton]
.
Documentation:
* Update to non-ancient distribution names in many docs. [Marc Haber]
* tag2upload(t5); Fix and clarify semantics of unknown tags,
multiplicity, ordering, and syntax of keyword=value.
Closes: #1106078. [Report from Matthias Urlichs]
* i18n: Updated message translation for nl.
Closes: #1106481. [Frans Spiesschaert]
Checksums-Sha1:
181aea32ab01d93753bf6743db24aeebceb441f8 2050 dgit_13.1.dsc
93df9c97bff90d5fefd58b98adb6913ef2363ba9 761885 dgit_13.1.tar.gz
Checksums-Sha256:
2163074b54233784aae995e0388506c3cfd94683dcdf5348b1da83babcf3363b 2050 dgit_13.1.dsc
5d4a7a997eee5bf447396510df3d800fa03523746dd41c6716710e5c7d252d19 761885 dgit_13.1.tar.gz
Files:
bebb4d2e1437a947eb978f83c64df91c 2050 devel optional dgit_13.1.dsc
62454e70ccfe131e7ad6891e2bab0dfc 761885 devel optional dgit_13.1.tar.gz
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCgAdFiEEVZrkbC1rbTJl58uh4+M5I0i1DTkFAmhMOZQACgkQ4+M5I0i1
DTkHMwf+OJ/FCw1nhaPRsRTKZIXtVCqRjdWTNtqgP2l1YMxUifDE4aaLMwGjm9qn
mCQZlR6TM7Gw7/hIW07CMotKudOEnP6DLVImO++dbfLryd9pXy2h/IB4k74fzMwb
RKoLV91qKAi8P83QKoEuWvWQao6T9coVB6mb8xyQcvaLyB23PuxaC97B23sxWSOf
dPupUr7JdcZgYGtjYOm3oC+QUzjSrk/VJDTsMAcpqiT7EKZUgUkhnNmpPCYr6qwP
GjU4XeM7nVLEBzaSHgxJTKhff3DzLrX+of2e47P7MURS8SCzotvGzcNnbhH7JSMu
4qMVLCOw3ruWyELPnMmSP+jGl4Taew==
=EGP9
-----END PGP SIGNATURE-----