]> git.proxmox.com Git - ceph.git/blame - ceph/doc/dev/release-process.rst
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / doc / dev / release-process.rst
CommitLineData
7c673cae
FG
1======================
2 Ceph Release Process
3======================
4
51. Build environment
6====================
7
8There are multiple build environments, debian based packages are built via pbuilder for multiple distributions. The build hosts are listed in the ``deb_hosts`` file, and the list of distributions are in ``deb_dist``. All distributions are build on each of the build hosts. Currently there is 1 64 bit and 1 32 bit build host.
9
10The RPM based packages are built natively, so one distribution per build host. The list of hosts is found in ``rpm_hosts``.
11
12Prior to building, it's necessary to update the pbuilder seed tarballs::
13
14 ./update_all_pbuilders.sh
15
162. Setup keyring for signing packages
17=====================================
18
19::
20
21 export GNUPGHOME=<path to keyring dir>
22
23 # verify it's accessible
24 gpg --list-keys
25
26The release key should be present::
27
28 pub 4096R/17ED316D 2012-05-20
29 uid Ceph Release Key <sage@newdream.net>
30
31
323. Set up build area
33====================
34
35Clone the ceph and ceph-build source trees::
36
37 git clone http://github.com/ceph/ceph.git
38 git clone http://github.com/ceph/ceph-build.git
39
40In the ceph source directory, checkout next branch (for point releases use the {codename} branch)::
41
42 git checkout next
43
44Checkout the submodules::
45
46 git submodule update --force --init --recursive
47
484. Update Build version numbers
49================================
50
51Substitute the ceph release number where indicated below by the string ``0.xx``.
52
53Edit configure.ac and update the version number. Example diff::
54
55 -AC_INIT([ceph], [0.54], [ceph-devel@vger.kernel.org])
56 +AC_INIT([ceph], [0.55], [ceph-devel@vger.kernel.org])
57
58Update the version number in the debian change log::
59
60 DEBEMAIL user@host dch -v 0.xx-1
61
62Commit the changes::
63
64 git commit -a
65
66Tag the release::
67
68 ../ceph-build/tag-release v0.xx
69
70
715. Create Makefiles
72===================
73
74The actual configure options used to build packages are in the
75``ceph.spec.in`` and ``debian/rules`` files. At this point we just
76need to create a Makefile.::
77
78 ./do_autogen.sh
79
80
816. Run the release scripts
82==========================
83
84This creates tarballs and copies them, with other needed files to
85the build hosts listed in deb_hosts and rpm_hosts, runs a local build
86script, then rsyncs the results back to the specified release directory.::
87
88 ../ceph-build/do_release.sh /tmp/release
89
90
917. Create RPM Repo
92==================
93
94Copy the rpms to the destination repo::
95
96 mkdir /tmp/rpm-repo
97 ../ceph-build/push_to_rpm_repo.sh /tmp/release /tmp/rpm-repo 0.xx
98
99Next add any additional rpms to the repo that are needed such as leveldb and
100and ceph-deploy. See RPM Backports section
101
102Finally, sign the rpms and build the repo indexes::
103
104 ../ceph-build/sign_and_index_rpm_repo.sh /tmp/release /tmp/rpm-repo 0.xx
105
106
1078. Create Debian repo
108=====================
109
110The key-id used below is the id of the ceph release key from step 2::
111
112 mkdir /tmp/debian-repo
113 ../ceph-build/gen_reprepro_conf.sh /tmp/debian-repo key-id
114 ../ceph-build/push_to_deb_repo.sh /tmp/release /tmp/debian-repo 0.xx main
115
116
117Next add any addition debian packages that are needed such as leveldb and
118ceph-deploy. See the Debian Backports section below.
119
120Debian packages are signed when added to the repo, so no further action is
121needed.
122
123
1249. Push repos to ceph.org
125==========================
126
127For a development release::
128
129 rcp ceph-0.xx.tar.bz2 ceph-0.xx.tar.gz \
130 ceph_site@ceph.com:ceph.com/downloads/.
131 rsync -av /tmp/rpm-repo/0.xx/ ceph_site@ceph.com:ceph.com/rpm-testing
132 rsync -av /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-testing
133
134For a stable release, replace {CODENAME} with the release codename (e.g., ``argonaut`` or ``bobtail``)::
135
136 rcp ceph-0.xx.tar.bz2 \
137 ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx.tar.bz2
138 rcp ceph-0.xx.tar.gz \
139 ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx.tar.gz
140 rsync -av /tmp/rpm-repo/0.xx/ ceph_site@ceph.com:ceph.com/rpm-{CODENAME}
141 rsync -auv /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-{CODENAME}
142
14310. Update Git
144==============
145
146Point release
147-------------
148
149For point releases just push the version number update to the
150branch and the new tag::
151
152 git push origin {codename}
153 git push origin v0.xx
154
155Development and Stable releases
156-------------------------------
157
158For a development release, update tags for ``ceph.git``::
159
160 git push origin v0.xx
161 git push origin HEAD:last
162 git checkout master
163 git merge next
164 git push origin master
165 git push origin HEAD:next
166
167Similarly, for a development release, for both ``teuthology.git`` and ``ceph-qa-suite.git``::
168
169 git checkout master
170 git reset --hard origin/master
171 git branch -f last origin/next
172 git push -f origin last
173 git push -f origin master:next