1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
# Keyringer: development guidelines and workflow
Index
-----
[TOC]
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:
gbp buildpackage --git-ignore-new
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:
* `gbp 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).
|