mirror of
https://github.com/fergalmoran/picard.git
synced 2025-12-22 09:18:18 +00:00
2.1 KiB
2.1 KiB
Picard release process
Release preparation (few weeks/days before)
Synchronize picard.pot with sources
python setup.py regen_pot_file && git diff --quiet || git commit -m 'Update pot file' -- po/picard.pot
And push changes to main remote repository, see po/README.md for details about translations
Ensure git repository tree is clean
From the local repository:
Check out the repo master branch
git fetch $PICARD_REMOTE && git checkout master
Ensure nothing is on the way
git reset --hard $PICARD_REMOTE/master && git clean -f -d
Remove old compiled modules
find . -type f -name '*.pyc' -exec rm -f {} \;
Tag to save the current state
git tag "before-release-$PICARD_VERSION" --force
Remove any BOM nasty bytes from files
This shouldn't be needed, but better to check before releasing
git ls-tree --full-tree -r HEAD --name-only |while read f; do sed -i '1s/^\xEF\xBB\xBF//' "$f"; done && git diff --quiet || git commit -a -m 'Remove nasty BOM bytes'
Synchronize generated consts
python setup.py update_constants && git diff --quiet || git commit -a -m 'Update constants' -- picard/const/*.py
Update NEWS.txt
TODO: explain how
Update Picard version
Edit picard/__init__.py and set new version tuple
Run tests:
python setup.py test
Commit changes!
Tag new version
git tag -s "$PICARD_RELEASE_TAG" -m "Release $PICARD_VERSION"
Stable release tags have the following format: release-#.#.#
Example: release-2.1.0
Update Picard version to next dev version
Edit picard/__init__.py and set new dev version tuple.
Run tests:
python setup.py test
Commit changes!
Push new commits and tags to remote
git push "$PICARD_REMOTE" master:master
git push "$PICARD_REMOTE" tag "$PICARD_RELEASE_TAG"
To revert after push
git tag -d "release-$PICARD_VERSION"
git reset --hard "before-release-$PICARD_VERSION"
git push "$PICARD_REMOTE" :"$TAG"
git push "$PICARD_REMOTE" "before-release-$PICARD_VERSION":master --force