This module uses gbp and upstream git repository.

As of version 4.008, =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-tester-perl.git
  git remote add github https://github.com/dod38fr/config-model-tester.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 salsa
: Récupération de github

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
: 4.010

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

#+RESULTS:
: Votre branche est en avance sur 'salsa/upstream' de 5 commits.
:   (utilisez "git push" pour publier vos commits locaux)
: Mise à jour 47bab02..3de40b6
: Fast-forward
:  Changes                          | 5 +++++
:  lib/Config/Model/Tester.pm       | 1 +
:  lib/Config/Model/Tester/Setup.pm | 1 +
:  3 files changed, 7 insertions(+)

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

#+RESULTS:
: Votre branche est en avance sur 'salsa/master' de 8 commits.
:   (utilisez "git push" pour publier vos commits locaux)
: Merge made by the 'ort' strategy.
:  Changes                          | 5 +++++
:  lib/Config/Model/Tester.pm       | 1 +
:  lib/Config/Model/Tester/Setup.pm | 1 +
:  3 files changed, 7 insertions(+)

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

#+RESULTS:
#+begin_example
Updating data...
Dpkg.Copyright.Grant.ByFile Dpkg::Copyright::Grant::ByFile::_warn The following paths are missing information:
- Changes
- MANIFEST.SKIP
- README.pod
- debian/control
- debian/gbp.conf
- debian/patches/rm-git-from-dzil
- debian/patches/rm-perl-critic-test
- debian/rules
- debian/tests/pkg-perl/use-name
- debian/upstream/metadata
- debian/watch
- lib/Config/Model/Tester.pm
- lib/Config/Model/Tester/Setup.pm
- t/model_tests.t
- t/pod.t
- weaver.ini
You may want to add a line in debian/fill.copyright.blanks.yml

 (620) 
Removing dummy license text from license LGPL-2.1 for path *
Removing dummy license text from license LGPL-2.1+ for path debian/*
Update done
Please follow the instructions given in Config::Model::Dpkg::Copyright man page,
section "Tweak results" if some license and copyright entries are wrong.
Other information, like license text, can be added directly in debian/copyright file 
and will be merged correctly next time this command is run.
See also https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme
#+end_example

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 --refresh -a && quilt pop -a
#+end_src

#+RESULTS:
#+begin_example
Application de rm-git-from-dzil
patching file dist.ini
Patch rm-git-from-dzil is unchanged

Application de rm-perl-critic-test
patching file dist.ini
Patch rm-perl-critic-test is unchanged

Le patch rm-perl-critic-test est maintenant au sommet
Retrait de rm-perl-critic-test
Restoring dist.ini

Retrait de rm-git-from-dzil
Restoring dist.ini

Aucun patch n'est appliqué
#+end_example

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 'e1e68bfc90d249520d5c0f159bb32ca4b53db496'
: gbp:info: Continuing from commit 'e1e68bfc90d249520d5c0f159bb32ca4b53db496'
: gbp:info: Only looking for changes on 'debian/'
: gbp:info: Changelog 4.010-1~1.gbpc4ecc8 (snapshot #1) prepared up to c4ecc8e

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 cc1a1a5] new upstream version
:  1 file changed, 11 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

