blob: 1313e9a43c1e23695f3cedbca93be80b48c2450c (
plain)
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
111
112
113
|
[[!meta title="Keyringer: development guidelines and workflow"]]
Development environment
-----------------------
The following steps needs to be run just once.
### Create the `debian/` structure
if [ ! -d "debian" ]; then
dh_make -p keyringer_0.1 --createorig
fi
### Setup a sid pbuilder chroot
DIST=sid sudo pbuilder create --debootstrapopts --variant=buildd
### Setup a sid cowbuilder chroot
DIST=sid sudo cowbuilder --create
Environment maintenance
-----------------------
These steps should be run once in a while to ensure we have an up to date packaging environment.
### Pbuilder
DIST=sid sudo pbuilder update
### Cowbuilder
DIST=sid sudo cowbuilder --update
Release workflow
----------------
Go to master branch
git checkout master
Prepare the source code:
$EDITOR ChangeLog
make build_man
Update debian changelog:
cd debian
dch -i
cd -
Commit and tag a release:
git commit -a -m "Keyringer $VERSION"
git tag -s $VERSION -m "Keyringer $VERSION"
git checkout upstream
git merge master
git checkout debian
git merge upstream
Create a release file:
make tarball
Generate a `keyringer_VERSION.orig.tar.bz2` file:
make dh
Sign the release ([see backupninja development guidelines](https://labs.riseup.net/code/projects/backupninja/wiki/Release)):
cd ../tarballs
gpg --armor --detach-sign keyringer-$VERSION.tar.bz2
Upload the release:
scp keyringer-$VERSION.tar.bz2* server:/var/sites/keyringer/releases/
cd -
Add the release into the `pristine-tar` branch:
pristine-tar commit ../tarballs/keyringer_$VERSION.orig.tar.bz2 $VERSION
Push everything:
git push --tags
Build the package from the git three using the upstream 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
Adding a subcommand
-------------------
When adding a new subcommand, ensure:
* Manpage is updated.
* Shell completions are updated.
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/).
|