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

Use of 'debian/latest' in Go team as the default branch name



Hi!

Michael Stapelberg proposed in 2017 that the Go team should use
'debian/sid' as the default branch, in effort to unify with DEP-14 at
the time (https://go-team.pages.debian.net/workflow-changes.html#_new_workflow_3).

Turns out using 'sid' as the git HEAD wasn't a good idea, as it may
lead to flip-fopping between 'debian/sid' and 'debian/experimental' or
alternatively leading to uploads to experimental from a branch that is
named 'sid'. Hence in 2020 DEP-14 was updated and clearly recommend
'debian/latest' as the primary option now.

>From https://dep-team.pages.debian.net/deps/dep14/:
> In Debian this means that uploads to unstable and experimental should be prepared either in
> the debian/latest branch or respectively in the debian/unstable and debian/experimental
> branches.
...
> The helper tools that do create those repositories should use a command like git symbolic-ref
> HEAD refs/heads/debian/latest to update HEAD to point to the desired branch.

Can we agree to update the Go team policy to follow this and default
to 'debian/latest' going forward?

There are <2000 packages in Debian that use the 'debian/sid' branch
name, and out of these ~1300 are from the Go team. The Go team should
not diverge from general Debian practices unless there is a proper
cause. The current situation is only due to historical reasons.

Even if Go team policy suggests something, it is just a guideline and
people can divert from if they have a reason to do so.

Some repositories might have a debian/unstable or debian/experimental
in parallel to the debian/latest. For example, if there is a risky
change that is not ready to be on the main development branch yet, it
might live on "feature branch" equivalent 'debian/experimental' for
some time. In some other cases, the main development branch is going
forward as 'debian/latest' and being uploaded to experimental, while a
parallel 'debian/unstable' would exist for some time as a passive
"maintenance branch". Repositories should not have both, as it would
lead to flip-flopping the development branch / git HEAD. DEP-14
introduced this 'debian/latest' specifically to have a clear
development target branch, and avoid flip-flopping
unstable/experimental branches. For the vast majority of packages the
best workflow is to have just one 'debian/latest' that targets
unstable, but occasionally does short-lived experimental uploads as
well.

I don't see any good arguments to use 'debian/sid' on Go team forever.
With a couple simple updates to our tooling we can slowly start
converging on the 'debian/latest' recommended by DEP-14. This is a
small but important detail in updating the Go team workflow for 2025
and converge on practices that are common with other teams, and
eventually simplify the workflow, and have it more productive for
current DDs and easier to learn for new and aspiring DDs.


Reply to: