summaryrefslogtreecommitdiffstats
path: root/docs/release-instructions.txt
blob: 671551d7e566045fa40b9d5a57339a9cc97dc83f (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
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
# Work in progress...

Release checklist overview:

   1) git tree: pull, merge, checkin, tag and push
   2) koji tree: for each release: checkin tarball and spec, kick off builds
   3) bodhi: schedule releases

=====================================================================

In the git tree:

   1) switch to the master branch
      $ git checkout master
   2) merge any changes from local branches
      $ git merge mybranch
   3) update configure.ac with new version info (don't commit yet)
   4) update the %changelog section of mock.spec.in
   5) run 'autogen.sh' to update autoconf files
   6) run 'configure' to generate Makefile and mock.spec
   7) run 'make rpm' to generate binary RPM and propagate version changes
   8) verify that docs/runtests.sh uses a supported config file
      (i.e. released fedora minus one). If not, edit and commit
   9) run 'make check' until it passes
  10) check in any changes
  11) remove ChangeLog and AUTHORS
  12) run 'make dist' to generate ChangeLog and AUTHORS files
  13) commit conigure.ac and any other changes with a
      version bump message:
     $ git commit -m 'version bump' configure.ac
  14) tag the git tree:
     $ git tag -u <your key> mock-<version>
  15) push to main git repo (only from master branch):
     # substitute 'master' with branch name if on another branch
     $ git push --tags origin master  

=====================================================================

In the fedora CVS (koji) tree

    1) update the cvs tree
       $ cvs update
    2) upload the tarball for the devel release
       $ cd devel
       $ make new-source FILES=../../mock.git/mock-0.9.3.tar.gz
    3) copy the new specfile from the git tree
       $ cp ../../mock.git/mock.spec .
    4) create a changelog entry (clog)
       $ make clog
    5) checkin the new specfile using the clog
       $ cvs commit -F clog 
    6) create the koji tag
       $ make tag
    7) initiate a koji build
       $ make build
    8) repeat above for released tree and released tree -1
    9) repeat builds for EPEL-5 and EPEL-4

=====================================================================
Michaels old stuff

   1) check release into fedora cvs
   2) do build for -devel
   3) do build for F-8, push to testing, then stable
   4) do a build for F-7

## script form:
# vim ChangeLog  mock.spec.in
# vim configure.ac
# autoreconf
# make rpm
# git commit -m 'version bump' configure.ac configure src/mock.py
# git tag -u YOURKEY mock-VERSION_HERE


In the mock git tree, first ensure that you are:
  --> on the master branch (or correct branch per branching guidelines)
  --> updated changelog
  --> fully-up-to-date wrt official tree
  --> have no local changes that havent been pushed
  --> test build rpm
  --> tag build and push tag

  $ git status
  # On branch master
  nothing to commit (working directory clean)

  $ git pull
  Already up-to-date.

  $ git diff origin

  $ make rpm
    ...
  Wrote: /.../mock/dist/mock-0.7.5-1.fc7.src.rpm
  Wrote: /.../mock/dist/x86_64/mock-0.7.5-1.fc7.x86_64.rpm
  Wrote: /.../mock/dist/x86_64/mock-debuginfo-0.7.5-1.fc7.x86_64.rpm

  $ git tag -s mock-$VERSION


In the fedora CVS tree:
  --> update CVS to latest
  --> upload new source tarball
  --> merge in spec changes
  --> ensure good changelog

  $ cd fedora/mock
  $ cvs up

  $ cd devel
  $ make new-sources FILES=~/git/mock/mock-0.7.5.tar.gz 
  $ cp ~/git/mock/mock.spec .
  $ cvs diff mock.spec
     --> if spec was changed outside of git directly in fedora cvs, fixup and merge changes in, add changes back to git
     --> if there is no changelog entry, do one now.
  $ make clog
  $ cvs commit -F clog
  $ make tag
  $ make build

  $ cd ../F-7
  $ make new-sources FILES=~/git/mock/mock-0.7.5.tar.gz 
  $ cp ~/git/mock/mock.spec .
  $ cvs diff mock.spec
     --> if spec was changed outside of git directly in fedora cvs, fixup and merge changes in, add changes back to git
     --> if there is no changelog entry, do one now.
  $ make clog
  $ cvs commit -F clog
  $ make tag
  $ make build
 
# in Bodhi
  --> create a proposed update for F7
  --> push to testing
  --> wait for email saying it has been two weeks and would be a good time to push to stable. :)
  --> push to stable

# in fedora CVS tree:
  --> update F6 (try to ensure that we do F7/devel upgrades first to not break upgrade paths.)

  $ cd fedora/mock
  $ cvs up

  $ cd ../FC-6
  $ make new-sources FILES=~/git/mock/mock-0.7.5.tar.gz 
  $ cp ~/git/mock/mock.spec .
  $ cvs diff mock.spec
     --> if spec was changed outside of git directly in fedora cvs, fixup and merge changes in, add changes back to git
     --> if there is no changelog entry, do one now.
  $ make clog
  $ cvs commit -F clog
  $ make tag
  $ make build