This module uses gbp and upstream git repository.

As of version 0.254.1, =pristine-tar= branch is no longer updated.

The instructions of this file assume that the branches are:
- master :: Debian work
- upstream :: upstream branch from github

To work on this package, please run:

#+begin_src shell
  git clone https://salsa.debian.org/perl-team/modules/packages/libconfig-model-systemd-perl.git
  git remote add github https://github.com/dod38fr/config-model-systemd.git
#+end_src

To update this package, first import the changes from upstream:
#+begin_src shell :dir .. :exports code :results verbatim
git fetch --all
#+end_src

#+RESULTS:
: Récupération de origin
: Récupération de upstream-repo

Find the latest version:
#+NAME: version
#+begin_src shell :dir .. :exports code :results verbatim
VERSION=$(git describe --tags $(git rev-list '--tags=v*' --max-count=1) | sed 's/^v//')
echo -n $VERSION
#+end_src

#+RESULTS: version
: 0.258.1

Update upstream branch:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  git checkout upstream
  git merge v$VERSION
#+end_src

#+RESULTS:
#+begin_example
Votre branche est à jour avec 'origin/upstream'.
Mise à jour 2c21141..295e5b4
Fast-forward
 .travis.yml                                        |  20 -
 Changes                                            |  13 +
 README-build-from-git.md                           |   3 -
 contrib/parse-man.pl                               |  26 +-
 dist.ini                                           |   4 +
 lib/Config/Model/models/Systemd/Common/Exec.pl     | 721 +++++++++++++++------
 lib/Config/Model/models/Systemd/Common/Kill.pl     |   4 +-
 .../Model/models/Systemd/Common/ResourceControl.pl |  52 +-
 lib/Config/Model/models/Systemd/Section/Service.pl |  39 +-
 lib/Config/Model/models/Systemd/Section/Socket.pl  | 122 +++-
 lib/Config/Model/models/Systemd/Section/Timer.pl   |  63 +-
 lib/Config/Model/models/Systemd/Section/Unit.pl    | 129 +++-
 12 files changed, 864 insertions(+), 332 deletions(-)
 delete mode 100644 .travis.yml
#+end_example

Update debian branch:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  git checkout master
  git merge upstream
#+end_src

#+RESULTS:
#+begin_example
Votre branche est en avance sur 'origin/master' de 1 commit.
  (utilisez "git push" pour publier vos commits locaux)
Merge made by the 'ort' strategy.
 .travis.yml                                        |  20 -
 Changes                                            |  13 +
 README-build-from-git.md                           |   3 -
 contrib/parse-man.pl                               |  26 +-
 dist.ini                                           |   4 +
 lib/Config/Model/models/Systemd/Common/Exec.pl     | 721 +++++++++++++++------
 lib/Config/Model/models/Systemd/Common/Kill.pl     |   4 +-
 .../Model/models/Systemd/Common/ResourceControl.pl |  52 +-
 lib/Config/Model/models/Systemd/Section/Service.pl |  39 +-
 lib/Config/Model/models/Systemd/Section/Socket.pl  | 122 +++-
 lib/Config/Model/models/Systemd/Section/Timer.pl   |  63 +-
 lib/Config/Model/models/Systemd/Section/Unit.pl    | 129 +++-
 12 files changed, 864 insertions(+), 332 deletions(-)
 delete mode 100644 .travis.yml
#+end_example

Update the debian/copyright file:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  cme update dpkg-copyright
#+end_src

Then review the changes and commit the result.

See also https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme

Check patches (and cleanup if necessary):
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  quilt push -a && quilt pop -a
#+end_src

#+RESULTS:
: Application de rm-git-from-dzil
: patching file dist.ini
: 
: Le patch rm-git-from-dzil est maintenant au sommet
: Retrait de rm-git-from-dzil
: Restoring dist.ini
: 
: Aucun patch n'est appliqué

Generate a temporary changelog:
#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  gbp dch --new-version=$VERSION-1 --snapshot --auto debian/
#+end_src

#+RESULTS:
: gbp:info: Found tag for topmost changelog version '97144c70806ab1149ad8855a4f32e3a6b24d0db4'
: gbp:info: Continuing from commit '97144c70806ab1149ad8855a4f32e3a6b24d0db4'
: gbp:info: Only looking for changes on 'debian/'
: gbp:info: Changelog 0.258.1-1~1.gbp28e5d1 (snapshot #1) prepared up to 28e5d1f

Commit =debian/changelog= (otherwise, =gbp buildpackage= tries to build the
old version):

#+begin_src shell :dir .. :exports code :results verbatim :var VERSION=version
  git commit -m"new upstream version" debian/changelog
#+end_src

#+RESULTS:
: [master 652948c] new upstream version
:  1 file changed, 8 insertions(+)

You can build the package with the following command:

# this requires emacs ob-tmux
#+begin_src tmux :session build :results verbatim :exports code :var dir=repo_dir
  cd $dir
  gbp buildpackage --git-ignore-new
#+end_src

Note: only committed changes are used by =gbp buildpackage=

Update the changelog:

#+begin_src tmux :session build :results verbatim :exports code :var dir=repo_dir
  cd $dir
  gbp dch -Ra --commit
#+end_src

Once everything is fine, build a source package and tag:

#+begin_src tmux :session build :results verbatim :exports code :var dir=repo_dir
  cd $dir
  gbp buildpackage -S --git-tag
#+end_src

Push on salsa:

#+begin_src shell :dir ".." :results verbatim :exports code
  gbp push
#+end_src

For more details, see [[https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.upstream-git.html#gbp.import.upstream.git.notarball][gbp import with git documentation]].

# this is a workaround for a bug in ob-tmux. No need to execute this
#+NAME: repo_dir
#+BEGIN_SRC shell :results verbatim :exports no
  cd ..
  echo -n $PWD
#+END_SRC

