-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathAUTHOR-NOTES
80 lines (52 loc) · 2.52 KB
/
AUTHOR-NOTES
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
Gri release procedure
=====================
The list below is the typical procedure leading up to a release, where
"DEK" is the primary author, and "PSG" is the debian packager.
1. DEK fixes a bug or adds a feature, and then indicates this by
updating ``configure.ac`` and ``doc/gri.texi``. (The latter file
needs updating both near the top, where the new and old versions
are numbered explicitly, and also at the History section.). Then
he does a ``git-push``, and asks PSG to ``git-pull`` it.
2. PSG updates various debian files, does a ``git-push``, and asks DEK
to do a ``git-pull``.
3. DEK verifies that the build works. Then he makes a tarball and
sends it to PSG for testing.
4. PSG tests it. Steps 1--3 are repeated if there is a problem,
otherwise he tells DEK that the tarball is OK.
5. DEK uploads the tarball to SourceForge and makes the release.
6. PSG does the debian release.
Working with issues and branches
================================
Suppose we want to fix issue3 on github
(http://github.com/dankelley/gri/issues/#issue/3). We want to be able
to work from two machines, so we need a remote branch. Here's what we
do:
1. Do ``git branch issue3`` to create a local branch. Note that the
branch name matches the issue name.
2. Do ``git push origin issue3`` to put this branch on the remote repo.
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:dankelley/gri.git
* [new branch] issue3 -> issue3
3. Do ``git branch -d issue3`` to remove the local branch.
4. Do ``git checkout --track origin/issue3`` to track the remote
branch.
5. Fix the bug in this branch. (If working on several machines, be
sure to always do a ``git checkout issue3`` and then ``git pull``
to update the branch before editing anything.)
6. Do ``git checkout master`` to return to the master branch.
7. Do ``git merge --no-ff issue3`` to merge this in. (The ``no-ff``
is important, because it preserves the branch record cleanly.)
8. Do ``git push`` to push this newly-updated master back to remote.
9. Do ``git push origin :heads/issue3`` to remove the remote branch.
10. Do ``git branch -d issue3`` to remove the local branch.
(Note that the syntax is quite different to the removal of local
branches.)
Building from git source
========================
We no longer have ``configure`` in the repository, so the procedure is
three step:
1. Do ``autoconf``
2. Do ``automake``
3. Do ``./configure && make``
(Note: I don't know whether the order of steps 1 and 2 matter, so I do
them twice -- DK.)