A video demo of updating a package is available in Debian's peertube instance.
This Wiki covers steps to take after a package has been successfully updated. Read https://wiki.abrahamraji.in/updating-deb-pkgs/ on how to update a package to the new upstream version.
In case you couldn't read the long post, here's is a summary. The package being updated here is node-require-directory, though the same steps would apply to any Debian package
Clone the current repo gbp clone --pristine-tar email@example.com:js-team/node-require-directory. Note: If you run only git clone, it will only create master branch, you should create upstream and pristine-tar branches locally by running git checkout upstream; git checkout pristine-tar; git checkout master
Download new upstream release tarball using uscan --verbose or use "Step 2, Option 2" above to manually download the new upstream release tarball.
Import the orig.tar.gz using gbp import-orig --pristine-tar ../<upstream_version.orig.tar.gz>.
Add a new section to changelog by running gbp dch -a. It'll automatically update the version number if there are no UNRELEASED entries already. If the version in the changelog is not updated automatically, you need to update it manually to the new upstream version you are importing by running (dch -e) this will automatically open the debian/changelog file for editing.
Build the package using dpkg-buildpackage
- Make it lintian clean
Make sure to commit logically every file modified after running (debclean) to clean out dpkg-buildpackage generated files.
Update the debian/changelog file with gbp dch -a to automatically populate the file with commit messages
- Build in clean chroot (using tools like sbuild)
- Run autopkgtest in a clean chroot (autopkgtest -B ../foo.deb -- schroot unstable-amd64-sbuild)
- Check if the update is a Breaking Change and follow the instrcutions below
Pushing to Salsa after successfully updating
- Create an account in salsa.debian.org and login
- Fork the project to your account (there will be a fork button in the repo page)
- Change git origin to your fork
git remote remove origin git remote add origin <clone url of your repo> git push -u --all --follow-tags