File: RelSteps

package info (click to toggle)
derivations 0.53.20120414-1.2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,208 kB
  • ctags: 486
  • sloc: cpp: 1,634; perl: 600; makefile: 153; sh: 116
file content (164 lines) | stat: -rw-r--r-- 5,581 bytes parent folder | download | duplicates (4)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

------------------------------------------------------------------------

DEVELOPMENT AND RELEASE STEPS

------------------------------------------------------------------------

Although one need not develop Derivations in a Debian GNU/Linux
environment, the author---who happens to be a Debian user and
developer---does so.  This file documents some of the author's
development practices in that context.  (The file does not carefully
distinguish between actions the author takes as upstream developer and
actions he takes as Debian developer, though the two roles are indeed
logically distinct.)

In all the file,

  * $D1 represents the top development directory;
    for example, ~/der/derivations-0.5.20070322.
  * $DW represents the top development directory before it has been
    assigned an actual revision date (see $TW below).
  * $DL represents the top development directory of the last revision.
  * $DP represents $D1/.., $DW/.. and $DL/.., the parent
    of the top development directory, as ~/der.
  * $T1 represents the revision date; for example 20070322.
  * $TW represents the working revision date, inasmuch as the actual
    revision date normally is not known until release time.  (For this
    date, the author usually but not always chooses the next day not a
    Sunday following the actual date of the last revision.)
  * $DSC represents the Debian .dsc file, where the needed Debian source
    package files in $DP are as

        derivations_0.5.20070322.orig.tar.gz
        derivations_0.5.20070322-1.diff.gz
        derivations_0.5.20070322-1.dsc

  * $DIFFGZ and $ORIGTARGZ represent the .diff.gz and .orig.tar.gz
    as above.
  * $DEB represents the Debian binary package,
    as derivations_0.5.20070322-1_all.deb.

The file naturally is not a complete set of instructions, being rather
notes to jog the author's memory.  For example, the file does not
explain what the command "view foo" is for, though of course it is for
the author to review foo to ensure that all is in order, making
corrections if necessary.  However, there is probably enough information
here to be of use to a future developer.

------------------------------------------------------------------------
BEGINNING DEVELOPMENT OF A NEW REVISION
------------------------------------------------------------------------

The author opens development of a new revision of the book by
approximately the following steps.

1.  Optionally, or if $DL does not exist,

    cd $DP
    rm -R $DL || true
    dpkg-source -x $DSC
    cd $DL
    bash helper/letexec
    cd ..

2.  Give the commands

    cd $DL
    fakeroot debian/rules clean
    cd ..
    cp -ai $DL $DW
    cd $DW
    helper/extend-changelog
    helper/update-date $TW

------------------------------------------------------------------------
RELEASING
------------------------------------------------------------------------

The author closes development of a new revision of the book and prepares
it for release by approximately the following steps.

1.  Decide on an official revision date, then

    cd $DP
    mv -i $DW $D1
    cd $D1
    helper/update-date $T1
    fakeroot debian/rules clean
    helper/buffe-src

2.  Repeatedly give the following commands, making corrections as
indicated, until no further corrections remain to be made:

    helper/ispell-all
    make clean tex/check | less
    fakeroot debian/rules clean
    helper/buffe-src

During the "make tex/check", index entries can overfill their margins
by any amount less than 9.0pt.  Where necessary (hopefully not often),
any page can be less than 2.0pt too tall.  (These limits may be too
strait, but experience has not yet asked the author to judge looser
limits; so, these are the limits to enforce for now.)

3.  Finalize doc/changelog and debian/changelog with the following
commands.  Change the distribution in debian/changelog from experimental
to unstable if appropriate.

    cd ..
    diff -ruN $DL $D1 >diff
    grep -B3 -A3 '19\(69\|70\)' diff
    view diff
    cd $D1
    vim doc/changelog
    vim debian/changelog
    fakeroot debian/rules clean
    helper/buffe-src
    cd ..
    diff -ruN $DL $D1 >diff
    grep -B3 -A3 '19\(69\|70\)' diff
    cd $D1

4.  Optionally,

    fakeroot debian/rules cleandeb-force

5.  Because the author actually uses the Debianized source to develop,
create a non-Debianized upstream source by

    fakeroot debian/rules orig

6.  Omitting the -uc and -us if it is wanted actually digitally to sign
the sources, build source and binary package files by

    dpkg-buildpackage -rfakeroot -uc -us
    fakeroot debian/rules clean
    cd ..

7.  Optionally review the .diff.gz to ensure that it actually contains
the Debianization as it ought.

8.  Give the command

    sudo dpkg -i $DEB

9.  Check that it has seemed to install correctly.

10. Optionally upload.

------------------------------------------------------------------------

For lack of a better place to note it, it is here noted that the author
might check the following on completing a chapter:

  * /\~\$                       (short math)
  * /\(^\|[[:space:]]\)\$       (long math)
  * /\$\('s\|th\)\([^a-z]\|$\)  (no tied *'s or *th)
  * /}[,.?;:!]                  (\emph{text[,.?;:!]})
  * /\\\\                       (no \\ at the end of an array or eqnarray)
  * /\(^\|[[:space:]]\)(\\ref{  (no untied eqn references)
  * /^[[:space:]]*\\emph        (no \emph inadvertently in place of \index)
  * /\\index.*\![[:space:]]     (no space following `!' in \index)
  * /bad break                  (bad breaks are in fact bad)