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

Re: Guidence regarding package testing and patching



On Thursday, December 4, 2025 12:45:30 PM Mountain Standard Time Andrey 
Rakhmatullin wrote:
> On Fri, Dec 05, 2025 at 01:12:14AM +0530, Jai kadam wrote:
> >> >> You can also consult its manpage to learn what does it do.
> >> >
> >> >I see, I read the man page just now after your suggestion it's not
> >> 
> >> detailed.
> >> 
> >> It's very detailed
> >
> >By manual you mean "man gbp" or something else?
> 
> I mean gbp-push(1), you could learn that it exists from "SEE ALSO" of
> gbp(1).

To add a bit more information about the behavior of "gbp push” and “git push” 
and when to use them and mix their uses:

1.  The key to understanding this is that “gbp push” will push the following 
things:

a.  The pristine-tar branch (if in use).
b.  The upstream branch.
c.  Any new tags on the upstream branch.
d.  The debian branch, but only if the changelog does not target UNRELEASED.
e.  Check for a new tag in the debian branch for the latest changelog entry 
and push it, but only if the changelog does not target UNRELEASED.

2.  What we want to avoid is pushing a debian/X.Y-Z tag on the debian branch 
before X.Y-Z has actually been accepted into Debian.

3.  The following workflow accomplishes this:

a.  gbp import-orig --uscan (this updates pristine-tar if used, the upstream 
branch, the debian branch, and creates a new upstream tag).
b.  dch  (adjust the changelog version number accordingly, but leave the 
target as UNRELEASED).
c.  gbp buildpackage (make sure the package builds).
d.  <Fix any problems>.
e.  gbp push (this pushes pristine-tar if in use, the upstream branch, and the 
new upstream branch tag, but not the debian branch because the changelog 
targets UNRELEASED).
f.  git push (this pushes the debian branch).

4.  When ready to release:

a.  dch -r (this changes the target from UNRELEASED to unstable, edit to 
experimental if desired).
b.  gbp buildpackage (build the package with the final changelog).
c.  Upload the package.
d.  gbp tag (this creates the debian/X.Y-Z tag, typically one only does this 
after the package has been accepted into Debian).
e.  gbp push (this pushes the debian/X.Y-Z tag).

Note that it is possible to do all of this using a plethora of git commands.  
gbp simply makes it easier.

On a side note, "gbp clone” is just like “git clone” except that it 
automatically clones the pristine-tar branch (if used), the upstream branch, 
and the debian branch, whereas “git clone” just clones the default branch and 
requires extra commands to populate the other ones.

-- 
Soren Stoutner
soren@debian.org

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: