<!-- -*- mode: markdown; -*- -->

# Handling new upstream releases #

We keep upstream sources indexed with git tags, and don't keep a
permanent upstream branch.  Further, we're not interested in the
"official" upstream tarballs that the GitHub releases feature
generates because these are just as good as letting gbp make
*.orig.tar.xz files from tags.

Suppose upstream releases version 1.2.3.

1. git remote add upstream https://github.com/gorhill/uBlock
2. git remote update
3. git checkout -b upstream 1.2.3
4. git show master:debian/clean-dfsg.sh | sh
5. git commit -m "new upstream version 1.2.3 DFSG-cleaned"
6. git tag 1.2.3+dfsg
7. git checkout master
8. git branch -D upstream
9. git merge 1.2.3+dfsg
10. Update debian/changelog for new version.
11. Ensure that debian/copyright is up-to-date with assets/ublock/ dir.
12. Update the upstream changelog with `debian/rules get-orig-changelog`.
13. Cut the Debian release with gbp buildpackage.
14. Commit the generated *.orig.tar.xz file with pristine-tar.

TODO: fold steps 5--9 into clean-dfsg.sh e.g. `% clean-dfsg.sh 1.2.3`

TODO: instead, maintain a dfsg-clean branch with the deletions.  Then
can just do: git merge new.version && git tag new.version-dfsg

# Other things that should be checked when making a new release #

1. New non-free filters?  `git diff 1.2.2..1.2.3 --  assets/thirdparties/`
2. Conkeror support fixed?  Maybe the patch disabling it can be dropped.
