Hello,

Here are some answers. Feel free to (re)organize them in a wiki page
under the DebianInstaller namespace. :)

Holger Wansing <hwans...@mailbox.org> (2018-08-10):
> Yes, and I didn't read anything about that in the several
> packaging/uploading docu. So that's mostly best practice, but no
> strict packaging rule or the like?
> 
> Also, I don't know anything about tagging.  So, I need to know
> something more about this tagging:
> 
> When do we use it?
> Just for every new uploaded version, as it seems...
> More circumstances, where to set tags?

I think most if not all packaging teams create tags when they upload a
given revision of a source package; this even existed prior to git! :)

This makes it possible to identify what revision of source code was
(probably, no absolute guarantee) used to create a given package,
which limits the need for downloading entire history of source
packages using debsnap and friends.

> Which tags do we use? The lightweighted or the annotated ones?
> Looking at the existing tags, it seems that's annotated ones, but
> without GPG signatur. Right?

I tend to use this when releasing:

  git commit -am 'releasing version $copied_from_changelog'
  git tag -sm 'tagging version $copied_from_changelog' 
$copied_possibly_adapted_from_changelog

If you don't have a GPG key handy (but then how would you debsign your
upload?), you might want to use “git tag -am” instead of “git tag -sm”,
which indeed creates an annotated tag, which still contains meta data
like the tagger, a message, etc.; except for the GPG signature part.

Interesting points:
 - you can mention the real/complete version in there;
 - you can verifiy the GPG signature if you ever doubt the repository
   (remember we have rather broad access with many many users on
   alioth first and on salsa now);
 - “git describe” doesn't use lightweight tags by default, one needs
   to pass “--tags”, so annotated/signed tags are better for that as
   well.

What about those versions?
 - $copied_from_changelog: hopefully self-explanatory :)
 - $copied_possibly_adapted_from_changelog: there are special
   characters that can be used in Debian version numbers, but cannot
   be used directly in git (like ':' and '~'), so we have to adjust
   for those.

Examples for ':' include apt-setup, busybox, tzsetup; depending on the
habits of the person who uploads them, the epoch part (N:) is
sometimes removed entirely (there can be a single version in the
Debian archive of a given package, regardless of the epoch part,
anyway). Usual replacement character is '%'.

Examples for '~' include all packages we backport using the usual
scheme: $unstable_version~deb9u1. Usual replacement character is '_'.

People might use git-buildpackage which has some tagging options,
but I tend to find the command line overly long, and it prefixes
tags with a debian/ string, which we doesn't really make sense in a
d-i context since most packages are Debian-specific anyway. We could
arguable ship a configuration file in all packages, but I'm not sure
we need more administrativia…

Maybe we should just have a tagging script in the scripts/ directory?
I used to use “xsf-tag” in the X Strike Force:
  https://salsa.debian.org/xorg-team/debian/xsf-tools/blob/master/xsf-tag

What do you think?


Cheers,
-- 
Cyril Brulebois (k...@debian.org)            <https://debamax.com/>
D-I release manager -- Release team member -- Freelance Consultant

Attachment: signature.asc
Description: PGP signature

Reply via email to