diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2017-11-03 10:55:26 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2017-11-03 10:55:26 -0200 |
commit | b6dec4f1efe948f01df02b364cbb7f7aeedaa2b1 (patch) | |
tree | 0a51277f829b08b792204c8b4fe06c33bff4591a /development.md | |
parent | 374887922e7018e6b0c8e3d2ba8f52d4386ec682 (diff) | |
parent | 7fca7cd0433e6f97080ecf12bee64ec4f38948ba (diff) | |
download | keyringer-b6dec4f1efe948f01df02b364cbb7f7aeedaa2b1.tar.gz keyringer-b6dec4f1efe948f01df02b364cbb7f7aeedaa2b1.tar.bz2 |
Merge branch 'develop'
Diffstat (limited to 'development.md')
-rw-r--r-- | development.md | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/development.md b/development.md new file mode 100644 index 0000000..2349c84 --- /dev/null +++ b/development.md @@ -0,0 +1,110 @@ +[[!meta title="Keyringer: development guidelines and workflow"]] + +Index +----- + +[[!toc levels=4]] + +Coding standards +---------------- + +* Uses Semantic Versioning. +* Respect the existing coding style. +* Be clear: easy audability must be one of keyringer's requirements. + +Release workflow +---------------- + +Go to develop branch and start a new release + + git checkout develop + +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 + +Tag the release: + + git tag -s $VERSION -m "Keyringer $VERSION" + +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](http://askubuntu.com/questions/140697/how-do-i-run-lintian-from-pbuilder-dist)): + + lintian --info --display-info --pedantic --color auto build-area/keyringer_$VERSION*.changes + +Then go back to the develop branch and push everything: + + git checkout develop + git push --all + +Cleanup symlink: + + rm ../keyringer_$VERSION.orig.tar.bz2 + +Notes: + +* `git-import-orig` takes care of running `pristine-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 in `debian/changelog`. +* To build a development package, checkout the debian branch, merge master, run `git-dch --auto --snapshot` and build. + +Packaging workflow +------------------ + +We recommend [this packaging workflow](https://git.sarava.org/?p=debian.git;a=blob;f=README.md;hb=HEAD). + +Adding or changing a subcommand +------------------------------- + +When adding a new subcommand or changing subcommand behavior, ensure: + +* Documentation is updated. +* Manpage is updated. +* Shell completions are updated. + +Test environment +---------------- + +Setup: + + keyringer test init ~/temp/tests/keyringer + +Teardown: + + keyringer test teardown -y + +Translation +----------- + +Run just once: + + cd share/man + po4a-gettextize -f text -m keyringer.1.mdwn -p keyringer.pot + +References +---------- + +* [Using Git for Debian Packaging](http://www.eyrie.org/~eagle/notes/debian/git.html). +* [Building packages from the Git repository](http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.building.html). +* [Cowbuilder](https://wiki.debian.org/cowbuilder). +* [git-pbuilder](https://wiki.debian.org/git-pbuilder). +* [PackagingWithGit - Debian Wiki](https://wiki.debian.org/PackagingWithGit). +* [Generating pristine tarballs from git repositories](http://joeyh.name/blog/entry/generating_pristine_tarballs_from_git_repositories/). +* [Debian Packaging](https://wiki.debian.org/Packaging). +* [Debian Upstream Guide](https://wiki.debian.org/UpstreamGuide). +* [DanielKahnGillmor/preferred_packaging - Debian Wiki](https://wiki.debian.org/DanielKahnGillmor/preferred_packaging). |