2012-10-03 06:41:35 +00:00
===================
Release Process
===================
1. Build environment
====================
2012-10-03 15:44:52 +00:00
There are multiple build envrionments, 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.
2012-10-03 06:41:35 +00:00
2012-10-03 15:44:52 +00:00
The RPM based packages are are built natively, so one distribution per build host. The list of hosts is found in `` rpm_hosts `` .
2012-10-03 06:41:35 +00:00
2012-10-03 15:44:52 +00:00
Prior to building, it's necessary to update the pbuilder seed tarballs::
./update_all_pbuilders.sh
2012-10-03 06:41:35 +00:00
2. Setup keyring for signing packages
=====================================
2012-10-04 21:51:29 +00:00
::
2012-10-03 15:44:52 +00:00
export GNUPGHOME=<path to keyring dir>
2012-10-03 06:41:35 +00:00
# verify it's accessible
gpg --list-keys
2012-10-04 21:51:29 +00:00
The release key should be present::
2012-10-03 15:44:52 +00:00
pub 4096R/17ED316D 2012-05-20
uid Ceph Release Key <sage@newdream.net>
2012-10-03 06:41:35 +00:00
3. Set up build area
====================
2012-12-27 23:39:46 +00:00
Clone the ceph and ceph-build source trees::
2012-10-03 06:41:35 +00:00
git clone http://github.com/ceph/ceph.git
git clone http://github.com/ceph/ceph-build.git
2012-12-27 23:39:46 +00:00
In the ceph source directory, checkout next branch (for point releases use the testing branch)::
2012-10-03 06:41:35 +00:00
git checkout next
2012-12-27 23:39:46 +00:00
Checkout the submodules::
2012-10-03 06:41:35 +00:00
2012-10-03 15:44:52 +00:00
git submodule update --init
2012-10-03 06:41:35 +00:00
4. Update Build version numbers
================================
2012-12-27 23:39:46 +00:00
Substitute the ceph release number where indicated below by the string 0.xx::
Edit configure.ac and update the version number. Example diff::
-AC_INIT([ceph], [0.54], [ceph-devel@vger.kernel.org])
+AC_INIT([ceph], [0.55], [ceph-devel@vger.kernel.org])
Update the version number in the debian change log::
2012-10-03 06:41:35 +00:00
2012-10-04 21:51:56 +00:00
DEBEMAIL user@host dch -v 0.xx-1
2012-10-03 06:41:35 +00:00
2012-10-03 15:44:52 +00:00
Commit the changes::
2012-10-03 06:41:35 +00:00
2012-10-04 21:51:56 +00:00
git commit -a
2012-10-03 06:41:35 +00:00
2012-10-03 15:44:52 +00:00
Tag the release::
2012-10-03 06:41:35 +00:00
../ceph-build/tag-release v0.xx
5. Create Makefiles
===================
2012-10-03 15:44:52 +00:00
The actual configure options used to build packages are in the
`` ceph.spec.in `` and `` debian/rules `` files. At this point we just
need to create a Makefile.::
2012-10-03 06:41:35 +00:00
2012-10-03 15:44:52 +00:00
./do_autogen.sh
2012-10-03 06:41:35 +00:00
6. Run the release scripts
==========================
2012-10-03 15:44:52 +00:00
This creates tarballs and copies them, with other needed files to
the build hosts listed in deb_hosts and rpm_hosts, runs a local build
script, then rsyncs the results back tot the specified release directory.::
2012-10-03 06:41:35 +00:00
../ceph-build/do_release.sh /tmp/release
7. Create RPM Repo
==================
2012-10-03 15:44:52 +00:00
Copy the rpms to the destination repo, creates the yum repository
rpm and indexes.::
2012-10-03 06:41:35 +00:00
2012-12-28 22:05:56 +00:00
../ceph-build/push_to_rpm_repo.sh /tmp/release /tmp/rpm-repo 0.xx
2012-10-03 06:41:35 +00:00
8. Create debian repo
=====================
2012-12-27 23:39:46 +00:00
The key-id used below is the id of the ceph release key from step 2::
2012-10-04 21:51:29 +00:00
2012-10-03 06:41:35 +00:00
mkdir /tmp/debian-repo
2012-12-27 23:39:46 +00:00
../ceph-build/gen_reprepro_conf.sh /tmp/debian-repo key-id
2012-12-26 20:54:27 +00:00
../ceph-build/push_to_deb_repo.sh /tmp/release /tmp/debian-repo 0.xx main
2012-10-03 06:41:35 +00:00
9. Push repos to ceph.org
==========================
2012-10-03 15:44:52 +00:00
For a development release::
2012-12-26 20:54:27 +00:00
rcp ceph-0.xx.tar.bz2 ceph-0.xx.tar.gz \
ceph_site@ceph.com:ceph.com/downloads/.
2012-12-27 23:39:46 +00:00
rsync -av /tmp/repm-repo/0.xx/ ceph_site@ceph.com:ceph.com/rpm-testing
2012-10-03 15:44:52 +00:00
rsync -av /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-testing
For a stable release, replace {CODENAME} with the release codename (e.g., `` argonaut `` or `` bobtail `` )::
2012-10-03 06:41:35 +00:00
2012-12-26 20:54:27 +00:00
rcp ceph-0.xx.tar.bz2 \
ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx{CODENAME}.tar.bz2
rcp ceph-0.xx.tar.gz \
ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx{CODENAME}.tar.gz
2012-12-27 23:39:46 +00:00
rsync -av /tmp/rpm-repo/0.xx/ ceph_site@ceph.com:ceph.com/rpm-{CODENAME}
2012-10-03 15:44:52 +00:00
rsync -auv /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-{CODENAME}
2012-10-03 06:41:35 +00:00
10. Update Git
==============
2012-10-03 15:44:52 +00:00
Development release
-------------------
For a development release, update tags for `` ceph.git `` ::
2012-12-26 20:54:27 +00:00
git push origin v0.xx
2012-10-03 15:44:52 +00:00
git push origin HEAD:testing
git checkout master
git merge next
git push origin master
git push origin HEAD:next
Similarly, for a development release, for both `` teuthology.git `` and `` ceph-qa-suite.git `` ::
git checkout master
git reset --hard origin/master
git branch -f testing origin/next
git push -f origin testing
git push -f master:next
Stable release
--------------
For `` ceph.git `` :
2012-10-03 06:41:35 +00:00
2012-10-03 15:44:52 +00:00
git push origin stable
2012-12-27 23:39:46 +00:00
Point release
-------------
Just push the new tag:
git push origin v0.xx