]> git.proxmox.com Git - ceph.git/blob - ceph/doc/dev/release-checklists.rst
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / doc / dev / release-checklists.rst
1 ==================
2 Release checklists
3 ==================
4
5 Dev Kickoff
6 ===========
7
8 These steps should be taken when starting a new major release, just after
9 the previous release has been tagged (vX.2.0) and that tag has been merged
10 back into master.
11
12 X is the release we are just starting development on. X-1 is the one
13 that was just released (X-1).2.0.
14
15 Versions and tags
16 -----------------
17
18 - [x] Update CMakeLists.txt VERSION (right at the top to X.0.0)
19 - [x] Update src/ceph_release with the new release name, number, and type ('dev')
20 - [ ] Initial tag vX.0.0 (so that we can distinguish from (and sort
21 after) the backported (X-1).2.Z versions.
22
23
24 Define release names and constants
25 ----------------------------------
26
27 Make sure X (and, ideally, X+1) is defined:
28
29 - [x] src/common/ceph_releases.h (`ceph_release_t`)
30 - [x] src/common/ceph_strings.cc (`ceph_release_name()`)
31 - [x] src/include/rados.h (`CEPH_RELEASE_*` and `MAX`)
32 - [x] src/mon/mon_types.h (`ceph::features::mon::FEATURE_*` and related structs and helpers; note that monmaptool CLI test output will need adjustment)
33 - [x] src/mds/cephfs_features.h (`CEPHFS_CURRENT_RELEASE`)
34
35 Scripts
36 ~~~~~~~
37
38 - [x] src/script/backport-resolve-issue (`releases()`, `ver_to_release()`... but for X-1)
39 - [x] src/script/ceph-release-notes (X-1)
40 - [x] ceph-build.git scripts/build_utils.sh `release_from_version()`
41
42 Misc
43 ~~~~
44 - [x] update src/ceph-volume/ceph_volume/__init__.py (`__release__`)
45
46 Feature bits
47 ------------
48
49 - [x] ensure that `SERVER_X` is defined
50 - [x] change any features `DEPRECATED` in release X-3 are now marked `RETIRED`.
51 - [ ] look for features that (1) were present in X-2 and (2) have no
52 client dependency and mark them `DEPRECATED` as of X.
53
54
55 Compatsets
56 ----------
57
58 - [x] mon/Monitor.h (`CEPH_MON_FEATURE_INCOMPAT_X`)
59 - [x] mon/Monitor.cc (include in `get_supported_features()`)
60 - [x] mon/Monitor.cc (`apply_monmap_to_compatset_features()`)
61 - [x] mon/Monitor.cc (`calc_quorum_requirements()`)
62
63 Mon
64 ---
65
66 - [x] qa/standalone/mon/misc adjust `TEST_mon_features` (add X cases and adjust `--mon-debug-no-require-X`)
67 - [x] mon/MgrMonitor.cc adjust `always_on_modules`
68 - [x] common/options.cc define `mon_debug_no_require_X`
69 - [x] common/options.cc remove `mon_debug_no_require_X-2`
70 - [x] mon/OSDMonitor.cc `create_initial`: adjust new `require_osd_release`, and add associated `mon_debug_no_require_X`
71 - [x] mon/OSDMonitor.cc `preprocess_boot`: adjust "disallow boot of " condition to disallow X if `require_osd_release` < X-2.
72 - [x] mon/OSDMonitor.cc: adjust "osd require-osd-release" to (1) allow setting X, and (2) check that all mons *and* OSDs have X
73 - [x] mon/MonCommands.h: adjust "osd require-osd-release" allows options to include X
74 - [x] qa/workunits/cephtool/test.sh: adjust `require-osd-release` test
75
76
77 Code cleanup
78 ------------
79
80 - [ ] search code for "after X-1" or "X" for conditional checks
81 - [ ] search code for X-2 and X-3 (`CEPH_FEATURE_SERVER_*` and
82 `ceph_release_t::*`)
83 - [ ] search code for `require_osd_release`
84 - [ ] search code for `min_mon_release`
85
86 QA suite
87 --------
88
89 - [ ] create qa/suites/upgrade/(X-1)-x
90 - [x] remove qa/suites/upgrade/(X-3)-x-*
91 - [x] remove qa/suites/rados/upgrade/(X-3)-x-singleton symlink
92 - [x] create qa/releases/X.yaml
93 - [x] create qa/suites/rados/thrash-old-clients/1-install/(X-1).yaml
94
95
96
97 First release candidate
98 =======================
99
100 - [ ] src/ceph_release: change type to `rc`
101
102
103 First stable release
104 ====================
105
106 - [ ] src/ceph_release: change type `stable`
107 - [ ] generate new object corpus for encoding/decoding tests - see :doc:`corpus`