[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RFC: DEP-14: Recommended layout for Git packaging repositories



>>>>> "Raphael" == Raphael Hertzog <hertzog@debian.org> writes:

    Raphael> Packaging branches and tags
    Raphael> ===========================

[...]

    Raphael> The Git repository listed in debian/control's `Vcs-Git` field should
    Raphael> usually have its HEAD point to the branch corresponding to the
    Raphael> distribution where new upstream versions are usually sent. For Debian,
    Raphael> it will usually be `debian/sid` (or sometimes `debian/experimental`).

    Raphael> QUESTION: some people have argued to use debian/master as the latest
    Raphael> packaging targets sometimes sid and sometimes experimental. Should we
    Raphael> standardize on this? Or should we explicitly allow this as an alternative?

I'd suggest not standardizing on this, but having a list of
recommendations instead, without naming one single name as THE
recommended one. For different use cases, different HEAD makes sense.

Also, I like to name my branches according to the distribution that it
will target, which means I prefer debian/unstable over debian/sid. For
me, that makes more sense, at least in the case of unstable and
experimental. For anything else, codenames it is.

    Raphael> When releasing a Debian package, the packager should create and push
    Raphael> a signed tag named `<vendor>/<version>`. For example, a Debian maintainer
    Raphael> releasing a package with version 2:1.2~rc1-1 would create a tag named
    Raphael> `debian/2%1.2_rc1-1` whereas an Ubuntu packager releasing a package with
    Raphael> version 1.3-0ubuntu1 would use `ubuntu/1.3-0ubuntu1`. The tags should
    Raphael> point to the exact commit that was used to build the corresponding upload.

Mmm... I disagree here too. I think following upstream tagging
conventions would be the way to go here. So if upstream uses
`<package>-<version>` tags, then debian releases would be tagged like
`debian/foo-2%1.2_rc1-1`, if upstream is `foo-1.2rc1`.

    Raphael> Other recommendations
    Raphael> =====================

[...]

    Raphael> What to store in the Git repository
    Raphael> -----------------------------------

    Raphael> It is recommended that the packaging branches contain both the upstream
    Raphael> sources and the Debian packaging. Users who have cloned the repository
    Raphael> should be able to run `dpkg-buildpackage -b -us -uc` without doing
    Raphael> anything else (assuming they have the required build dependencies).

    Raphael> It is also important so that contributors are able to use the tool of their
    Raphael> choice to update the debian/patches quilt series: multiple helper tools
    Raphael> need the upstream sources in Git to manage this patch series as a Git
    Raphael> branch.

I'd like to note that there are very good reasons for a debian-only,
overlay-style packaging repository too. This section should, in my
opinion, at least acknowledge that, and briefly mention it as an option.
I find it a bit sad that it was outright discouraged.

For the record, I used to hate that style, and was an advocate for
storing upstream sources in the repo too. Then I started maintaining ~6
packaging branches: three upstream versions, two packaging branch
variants of each. The overlay style proved to be far superior in this
case.

In short, I'd suggest having the DEP document both layouts, and
recommend using one of them, while also recommending to document it in
debian/README.source.

-- 
|8]

Attachment: signature.asc
Description: PGP signature


Reply to: