summaryrefslogtreecommitdiffstats
path: root/docs/release-instructions.txt
blob: 8b1cc206ef19178213aaee1ec19aafd702d94474 (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
Release checklist overview:

  -) ensure all source changes are checked into git
  -) run 'make distclean' to remove generated files
  -) remove ChangeLog and AUTHORS
  -) update version info in 'configure.ac'
  -) run 'autogen.sh' to update autoconf files
  -) run 'configure' to generate Makefile and mock.spec
  -) run 'make dist' to generate ChangeLog and AUTHORS files
  -) run make rpm to generate binary RPM and propagate version changes

  1) update both the ChangeLog file and the specfile %changelog section
     - remove existing ChangeLog and AUTHORS file
     - run 'make dist' to regenerate them
     - edit mock.spec.in with %changelog info
  2) update version in 'configure.ac'
  3) run 'autogen.sh' to update autoconf files
  4) run 'make rpm' to update version in all files
  5) check all changes into git and push upstream
  6) properly tag git tree with signature
  7) check release into fedora cvs
  8) do build for -devel
  9) do build for F-7, push to testing, then stable
  10) do a build for FC-6

## 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