~pieq/checkbox/1624968-updated-docking-tests

« back to all changes in this revision

Viewing changes to checkbox-ng/docs/release.rst

  • Committer: Sylvain Pineau
  • Author(s): Maciej Kisielewski
  • Date: 2016-08-25 10:42:15 UTC
  • mfrom: (4473.1.14 launchpad/docs-rework)
  • Revision ID: sylvain_pineau-20160825104215-q33dadyxasqt33jf
"automatic merge of lp:~kissiel/checkbox/docs-rework/ by tarmac [r=cypressyew,jocave][bug=][author=kissiel]"

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
========================
2
 
Checkbox Release Process
3
 
========================
4
 
 
5
 
This page describes the necessary steps for releasing versions of Checkbox and
6
 
Checkbox Certification to the stable PPA belonging to the Hardware
7
 
Certification team, on a regular basis. Throughout this document the term
8
 
'Checkbox' is used as a catch-all term to cover all versions of Checkbox owned
9
 
by the Hardware Certification team, currently Checkbox itself and the Checkbox
10
 
Certification extensions.
11
 
 
12
 
Overview
13
 
========
14
 
 
15
 
Currently the process runs on a bi-weekly cadence, with a new release of
16
 
Checkbox every two weeks. This covers ten working days, and the tasks carried
17
 
out on each day or group of days is described below:
18
 
 
19
 
* Days 1-4: Time allowed for new changes to be introduced into trunk.
20
 
* Day 5: Changes are merged from the trunk of ``lp:checkbox`` and
21
 
  ``lp:checkbox-certification`` to their respective release branches.
22
 
  The changelogs for both are *bumped* at this point and revisions are tagged.
23
 
  At this stage it may also be necessary to copy the package 'fwts' from the
24
 
  `FWTS Stable PPA
25
 
  <https://launchpad.net/~firmware-testing-team/+archive/ppa-fwts-stable>`_ 
26
 
  to the `Checkbox Release Testing PPA
27
 
  <https://launchpad.net/~checkbox-dev/+archive/testing>`_.
28
 
  
29
 
* Days 6-9: Testing is performed by the release manager for the Hardware
30
 
  Certification team, and a representative of the CE QA team (the main
31
 
  customer for Checkbox within Canonical)
32
 
* Day 9: A release meeting is held between the release manager for the
33
 
  Hardware Certification team and the representative of the CE QA team.
34
 
  Potential issues with the release are identified and plans made to address
35
 
  them.
36
 
* Day 10: The tested version of Checkbox is copied to the stable PPA.
37
 
 
38
 
Launchpad Branches
39
 
==================
40
 
 
41
 
The release process requires separate branches in Launchpad containing a
42
 
semi-frozen version of the code that was in trunk on day 5 of the process. This
43
 
is so that development can continue on trunk without jeopardising the stability
44
 
of the to-be released version of Checkbox. The relationship between all
45
 
branches involved in the process is as shown below:
46
 
 
47
 
* `lp:checkbox/release` <- `lp:checkbox`
48
 
* `lp:checkbox-certification/release` <- `lp:checkbox-certification`
49
 
* `lp:~checkbox-dev/checkbox/checkbox-packaging-release` <- `lp:~checkbox-dev/checkbox/checkbox-packaging`
50
 
 
51
 
Auditing milestoned bugs
52
 
========================
53
 
 
54
 
Prior to creating the release candidate the release manager should review the
55
 
list of bugs milestoned for the next release of Checkbox. They should visit
56
 
`checkbox milestones <https://launchpad.net/checkbox/+milestones milestones>`_
57
 
and locate the milestone dated with the release date.
58
 
 
59
 
* For bugs that are set to In Progress with a branch associated - liase with
60
 
  the branch owner to see if the merge can be completed before the deadline.
61
 
* For bugs that are in any other non-closed status (except *Fix Commited*) -
62
 
  re-milestone them to the following milestone.
63
 
 
64
 
Cutting the release
65
 
===================
66
 
 
67
 
In order to cut the release, we have to merge the changes from trunk into the
68
 
release branch, commit them with a suitable message and update the changelog in
69
 
trunk so that future changes go under the correct version. For each combination
70
 
of branches shown above, do the following (the example uses ``lp:checkbox`` and
71
 
``lp:checkbox/release``)::
72
 
 
73
 
    bzr branch lp:checkbox/release checkbox-release
74
 
    bzr branch lp:checkbox checkbox-trunk
75
 
    cd checkbox-release
76
 
    current_stable=`head -n1 $(find . -name 'changelog') | grep -oP '(?<=\().*(?=\))'`
77
 
    bzr merge lp:checkbox
78
 
 
79
 
at this point if no changes (other than one to ``debian/changelog``) get merged
80
 
in then we do not perform a release of the package in question. In practice
81
 
this often happens with ``checkbox-certification`` but never with
82
 
``checkbox``::
83
 
 
84
 
    bzr commit -m "Merged in changes from rev$(bzr revno -r tag:$current_stable lp:checkbox) to rev$(bzr revno lp:checkbox) from lp:checkbox"
85
 
    bzr push lp:checkbox/release
86
 
    cd `find . -name 'debian'`; cd ..
87
 
    bzr tag `head -n1 debian/changelog | grep -oP '(?<=\().*(?=\))'`
88
 
    dch -r (save modified changelog)
89
 
    dch -i -U 'Incremented changelog'
90
 
    debcommit
91
 
    bzr push lp:checkbox
92
 
 
93
 
The last step in the process is to perform a build of the packages in the
94
 
``ppa:checkbox-dev/testing PPA``. To do this we need to go to the recipe pages
95
 
for the ``checkbox`` and/or ``checkbox-certification`` release branches.
96
 
 
97
 
 * `checkbox-testing recipe
98
 
   <https://code.launchpad.net/~checkbox-dev/+recipe/checkbox-testing>`_
99
 
 * `checkbox-certification-testing recipe
100
 
   <https://code.launchpad.net/~checkbox-dev/+recipe/checkbox-certification-testing>`_
101
 
 
102
 
The **Build Now** option should be available on the page. Click it to start a
103
 
build.
104
 
 
105
 
Copying Firmware Test Suite to the Testing PPA
106
 
==============================================
107
 
 
108
 
The Firmware Test Suite tool is a test tool for system firmware that is 
109
 
naturally heavily utilised by Checkbox. To make sure the latest version
110
 
which contains fixes and new tests/features needed by Checkbox is available
111
 
and also doesn't break anything in Checkbox, we need to release it alongside
112
 
Checkbox. After cutting the release if the Firmware Testing team have notified
113
 
that a new version is available and that this version should be used for
114
 
certification, we need to copy it to the Testing PPA. To do this we need to go
115
 
to the `Copy packages view of the Firmware Test Suite (Stable) PPA
116
 
<https://launchpad.net/~firmware-testing-team/+archive/ppa-fwts-stable/+copy-packages>`_
117
 
and select the 'fwts' packages for all releases back to Precise. We need to
118
 
set the 'Destination PPA' as 'Checkbox Release Testing [~checkbox-dev/testing]'
119
 
and the 'Copy options' field to 'Copy existing binaries', then click 'Copy
120
 
packages'. This step then needs to be repeated but set the 'Destination PPA'
121
 
field to 'PPA for Checkbox Developers [~checkbox-dev/ppa]'.
122
 
 
123
 
Next Release of Checkbox e-mail
124
 
===============================
125
 
 
126
 
So that everyone has the opportunity to perform whatever testing is required in
127
 
a timely manner, after the PPA builds have been completed an email should be
128
 
sent to the following mailing lists:
129
 
 
130
 
* `hardware-certification-team@lists.canonical.com <mailto:hardware-certification-team@lists.canonical.com>`_
131
 
* `commercial-engineering@lists.canonical.com <mailto:commercial-engineering@lists.canonical.com>`_
132
 
 
133
 
The content is typically something like this::
134
 
 
135
 
    Subject: Next Release of Checkbox (18/11/2013)
136
 
 
137
 
    Hi,
138
 
 
139
 
    The next release of Checkbox is available in the
140
 
    https://code.launchpad.net/~checkbox-dev/+archive/testing PPA.
141
 
    Please test it at your convenience. Checkbox is based on revision 2484 of
142
 
    lp:checkbox and Checkbox Certification is based on revision 586 of
143
 
    lp:checkbox-certification.
144
 
 
145
 
    Thanks,
146
 
 
147
 
If one or the other of Checkbox and Checkbox Certification have not been
148
 
updated then there is no need to mention that package
149
 
 
150
 
Testing the release
151
 
===================
152
 
 
153
 
Now that the release has been cut, testing should take place prior to the
154
 
release meeting. From the point of view of the certification team, what needs
155
 
to be tested is ``checkbox-certification-client`` and
156
 
``checkbox-certification-server`` which form the basis for CE QAs OEM specific
157
 
versions of Checkbox. Checkbox certification server is tested in the CI loop
158
 
Checkbox certification client needs to be tested manually.
159
 
 
160
 
Release Meeting
161
 
===============
162
 
 
163
 
On the Thursday before the release is made, a meeting is held between a
164
 
representative of the Certification team and a representative of the
165
 
**Commercial Engineering QA** team. The meeting is held at 7:30 UTC as shown in
166
 
this `calendar invite
167
 
<https://www.google.com/calendar/hosted/canonical.com/event?action=TEMPLATE&tmeid=Y3QxcWVla3ViMTRvMXByOHZlOTFvc283Y2NfMjAxMzA4MjlUMDczMDAwWiBicmVuZGFuLmRvbmVnYW5AY2Fub25pY2FsLmNvbQ&tmsrc=brendan.donegan%40canonical.com>`_.
168
 
An agenda for the meeting is included in the invite.
169
 
 
170
 
Publishing the release
171
 
======================
172
 
 
173
 
To publish the release we simply need to copy a number of packages from the
174
 
`Checkbox Release Testing PPA 
175
 
<https://launchpad.net/~checkbox-dev/+archive/testing>`_
176
 
to the `Hardware Certification Public PPA
177
 
<https://launchpad.net/~hardware-certification/+archive/public>`_. To do this 
178
 
we go to the `Copy packages view of the Checkbox Release Testing PPA
179
 
<https://launchpad.net/~checkbox-dev/+archive/testing/+copy-packages>`_ and 
180
 
select all versions of the following list of packages: ``checkbox,
181
 
checkbox-certification, fwts``. Make sure that the 'Destination PPA'
182
 
field is set to 'Public PPA for Hardware Certification
183
 
[~hardware-certification/public]' and that the 'Copy options' field is set to
184
 
'Copy existing binaries', then click 'Copy Packages'.
185
 
 
186
 
After that is done an announcement email should be sent to
187
 
`commercial-engineering@lists.canonical.com <mailto:commercial-engineering@lists.canonical.com>`_. 
188
 
A template for the announcement in included below::
189
 
 
190
 
    Hi,
191
 
 
192
 
    A new release of checkbox has been uploaded to the Hardware
193
 
    Certification Public PPA
194
 
    (https://launchpad.net/~hardware-certification/+archive/public). The
195
 
    release is based on revision 2294 of lp:checkbox
196
 
 
197
 
    Thanks,
198
 
 
199
 
Please attach the most recent part of the changelog as release notes