[[!meta title="Keyringer: development guidelines and workflow"]]
[[!toc levels=4]]
- Respect the existing coding style.
- Be clear: easy audability must be one of keyringer's requirements.
We use git-flow for the development workflow.
Go to develop branch and start a new release
git flow release start VERSION
Prepare the source code:
$EDITOR keyringer # and update KEYRINGER_VERSION
$EDITOR ChangeLog
VERSION="`./keyringer | head -n 1 | cut -d ' ' -f 2`"
Create and upload a new release:
make release
Update the debian branch:
make debian
Push everything:
git push --tags
Build the package from the debian Git branch:
git-buildpackage
Run lintian (or add it to your pbuilder hooks):
lintian --info --display-info --pedantic --color auto \
../build-area/keyringer_$VERSION*.changes
Notes:
git-import-orig
takes care of runningpristine-tar commit
, of merging of the tag and orig tarball into the upstream branch, and then it merges the result into the debian branch. With the above configuration, it also runs git-dch to do the bulk of the work indebian/changelog
.- To build a development package, checkout the debian branch, merge master, run
git-dch --auto --snapshot
and build.
We recommend this packaging workflow.
When adding a new subcommand or changing subcommand behavior, ensure:
- Documentation is updated.
- Manpage is updated.
- Shell completions are updated.
Setup:
keyringer test init ~/temp/tests/keyringer
Teardown:
keyringer test teardown -y
Run just once:
cd share/man
po4a-gettextize -f text -m keyringer.1.mdwn -p keyringer.pot