|
109 | 109 | <head>Building a TEI Release</head> |
110 | 110 | <p>This document aims to provide a set of detailed instructions enabling a "release |
111 | 111 | technician" (the Council member tasked with implementing a new release of the TEI) to |
112 | | - prepare for and manage the release process. The release process normally involves more than one release technician. In the event that there is more than one release technician, the release technicians should coordinate and divide the various steps in the release process amongst themselves. The release process detailed below assumes that the new packages will be taken |
113 | | - from one of the Jenkins servers rather than being built locally by the release technician(s). |
114 | | - This is easier and more reliable, because we ensure that the Jenkins servers are regularly |
115 | | - updated and are correctly configured to build the TEI products.</p> |
| 112 | + prepare for and manage the release process. The release process normally involves more than |
| 113 | + one release technician. In the event that there is more than one release technician, the |
| 114 | + release technicians should coordinate and divide the various steps in the release process |
| 115 | + amongst themselves.</p> |
| 116 | + |
| 117 | + <div xml:id="issueHandlingGuidelines"> |
| 118 | + <head>Issue Handling Recommendations</head> |
| 119 | + <p>In the lead up to the release, all Council members should review assigned tickets and |
| 120 | + adhere to the following general guidance:</p> |
| 121 | + <list type="unordered"> |
| 122 | + <item>Assign tickets to release milestone</item> |
| 123 | + <item>Use ticket reference in any commits addressing or fixing the issue</item> |
| 124 | + <item>At least for the final commit addressing the issue try to prepare the commit message |
| 125 | + so it can be used for Release Notes</item> |
| 126 | + <item>Label the issue as Release Note (green label) if it’s important to include the note |
| 127 | + about it in Release Notes</item> |
| 128 | + |
| 129 | + </list> |
| 130 | + </div> |
116 | 131 |
|
117 | 132 | <div xml:id="githubPackages"> |
118 | 133 | <head>Packages on GitHub</head> |
| 134 | + <p>The release process detailed below assumes that the new packages will be taken from one |
| 135 | + of the Jenkins servers rather than being built locally by the release technician(s). This |
| 136 | + is easier and more reliable, because we ensure that the Jenkins servers are regularly |
| 137 | + updated and are correctly configured to build the TEI products.</p> |
119 | 138 | <p>The TEI maintains a number of distinct repositories on GitHub under the <ref |
120 | 139 | target="https://github.com/TEIC">TEIC</ref> organization. The main repository for |
121 | 140 | developing the P5 Guidelines and associated schemas is <ref |
|
166 | 185 | clipboard.</item> |
167 | 186 | <item>Paste the result into a text editor and remove any linebreaks added by the |
168 | 187 | terminal.</item> |
169 | | - <item>Copy-paste the result into |
170 | | - <ref target="https://sourceforge.net/auth/shell_services">https://sourceforge.net/auth/shell_services</ref></item> |
| 188 | + <item>Copy-paste the result into <ref |
| 189 | + target="https://sourceforge.net/auth/shell_services" |
| 190 | + >https://sourceforge.net/auth/shell_services</ref></item> |
171 | 191 | </list> What this does is to enable you (when logged in as tei to tei-c.org) to |
172 | 192 | connect to SourceForge (as your SF user) to upload the release files. </item> |
173 | 193 |
|
|
198 | 218 | </list> |
199 | 219 | </div> |
200 | 220 |
|
201 | | - <div xml:id="issueHandlingGuidelines"> |
202 | | - <head>Issue Handling Recommendations</head> |
203 | | - <list type="unordered"> |
204 | | - <item>Assign tickets to release milestone</item> |
205 | | - <item>Use ticket reference in any commits addressing or fixing the issue</item> |
206 | | - <item>At least for the final commit addressing the issue try to prepare the commit message |
207 | | - so it can be used for Release Notes</item> |
208 | | - <item>Label the issue as Release Note (green label) if it’s important to include the note |
209 | | - about it in Release Notes</item> |
210 | | - |
211 | | - </list> |
212 | | - </div> |
213 | | - |
214 | 221 | <div xml:id="releaseSteps"> |
215 | 222 | <head>Step-by-step instructions</head> |
216 | 223 |
|
|
225 | 232 | Stylesheets dev branch.</item> |
226 | 233 | <item>Inform the Jenkins maintainers (who may not be on the Council listserv), and the TEI |
227 | 234 | sysadmin, of the pending release date, so that they can be available or on-call. </item> |
228 | | - <item>Ask one of the Jenkins maintainers (Peter Stadler and Martin Holmes) to run a link |
| 235 | + <item>Ask one of the Jenkins maintainers (Martin Holmes, Peter Stadler, and |
| 236 | + Raffaele Viglianti) to run a link |
229 | 237 | check on the Guidelines and fix broken links in the dev branch. </item> |
230 | 238 | <item>Ask for the TEI-C GPG key passphrase. You'll need it for signing the Debian |
231 | 239 | packages. (The GPG private key itself is hosted on the server at the default |
|
257 | 265 | of a class, or the moving of an attribute definition from an element to an attribute |
258 | 266 | class.</item> |
259 | 267 | <item>Add the new file into the repository with <code>git add |
260 | | - P5/ReleaseNotes/readme-X.X.X.xml</code>. Be sure to change X.X.X with the version numbers.</item> |
| 268 | + P5/ReleaseNotes/readme-X.X.X.xml</code>. Be sure to change X.X.X with the version |
| 269 | + numbers.</item> |
261 | 270 | </list> |
262 | 271 | </item> |
263 | 272 | <item><hi rend="bold">Review all issues labelled as Release Blocker (red |
|
266 | 275 | changes made to the code to be released should be to fix errors, rather than to add new |
267 | 276 | features. Release branches for the TEI and Stylesheets repos will be created by the |
268 | 277 | release technician(s), to which ONLY release-blocking bug fixes and corrections to |
269 | | - typographical errors will be pushed. The release technician(s) should announce a temporary |
270 | | - hold on pushes to the dev branches on the Council list, then create the branches and |
271 | | - push it to GitHub using the following commands, once in the TEI repo and once in the |
272 | | - Stylesheets repo: <lb/><code>git checkout dev</code> (make sure you start from the dev |
273 | | - branch) or if you have the dev branch checked out, <code>git status</code> in order to |
274 | | - make sure that you have the current version and no uncommitted changes. <lb/><code>git |
275 | | - checkout -b release-X.X.X</code> |
| 278 | + typographical errors will be pushed. The release technician(s) should announce a |
| 279 | + temporary hold on pushes to the dev branches on the Council list, then create the |
| 280 | + release branches and push it to GitHub using the following commands, once in the TEI |
| 281 | + repo and once in the Stylesheets repo: <lb/><code>git checkout dev</code> (make sure you |
| 282 | + start from the dev branch) or if you have the dev branch checked out, <code>git |
| 283 | + status</code> in order to make sure that you have the current version and no |
| 284 | + uncommitted changes. <lb/><code>git checkout -b release-X.X.X</code> |
276 | 285 | <lb/><code>git push -u origin release-X.X.X</code></item> |
277 | 286 | <item>Immediately after the release branches have been pushed, the release technician(s) |
278 | 287 | should inform the <ref target="mailto:tei-council@lists.tei-c.org">Council list</ref> |
|
376 | 385 | <item><code>git checkout dev</code></item> |
377 | 386 | <item><code>git merge --no-ff -m "YOUR COMMIT MESSAGE" release-X.X.X</code></item> |
378 | 387 | <item>Don’t forget to switch to the released branch <code>git checkout |
379 | | - released</code></item> |
| 388 | + released</code></item> |
380 | 389 | </list> |
381 | 390 | </item> |
382 | 391 |
|
|
386 | 395 | <item><code>git merge --no-ff -m "YOUR COMMIT MESSAGE" release-X.X.X</code></item> |
387 | 396 | <item><code>git checkout dev</code></item> |
388 | 397 | <item><code>git merge --no-ff -m "YOUR COMMIT MESSAGE" release-X.X.X</code></item> |
389 | | - <item>Don't forget to switch back to the released branch <code>git |
390 | | - checkout released</code></item> |
| 398 | + <item>Don't forget to switch back to the released branch <code>git checkout |
| 399 | + released</code></item> |
391 | 400 | </list> |
392 | 401 | </item> |
393 | 402 |
|
|
421 | 430 | SourceForge user name, and type your SourceForge password when prompted. By default, the |
422 | 431 | script will pull the release package from the first Jenkins server, but you can supply |
423 | 432 | the URL of the other server if necessary with the --Jenkins parameter, e.g. |
424 | | - <code>--Jenkins=http://jenkins2.tei-c.org/</code>. Make sure the script completes successfully each |
425 | | - time changing the final parameter from <code>--install</code>, to <code>--makecurrent</code>, and then <code>--upload</code>. </item> |
| 433 | + <code>--Jenkins=http://jenkins2.tei-c.org/</code>. Make sure the script completes |
| 434 | + successfully each time changing the final parameter from <code>--install</code>, to |
| 435 | + <code>--makecurrent</code>, and then <code>--upload</code>. </item> |
426 | 436 |
|
427 | 437 | <item><hi rend="bold">Repeat the steps above for the Stylesheets</hi>, remembering that |
428 | 438 | the version number is the Stylesheets version, which will be different from the |
|
484 | 494 | <item><hi rend="bold">Make a Release on GitHub</hi><lb/> Go to the TEI Tags page at <ref |
485 | 495 | target="https://github.com/TEIC/TEI/tags">https://github.com/TEIC/TEI/tags</ref> on |
486 | 496 | GitHub. You should see the tag you just pushed there. Click on it and then click on |
487 | | - "Create Release". Add a link to the release notes README, which should be at https://www.tei-c.org/release/doc/tei-p5-doc/readme-X.X.X.html, into the text |
488 | | - box. Add a copy of the zipped release by downloading it from <ref |
| 497 | + "Create Release". Add a link to the release notes README, which should be at |
| 498 | + https://www.tei-c.org/release/doc/tei-p5-doc/readme-X.X.X.html, into the text box. Add a |
| 499 | + copy of the zipped release by downloading it from <ref |
489 | 500 | target="https://jenkins.tei-c.org/job/TEIP5/lastSuccessfulBuild/artifact/P5/" |
490 | 501 | >https://jenkins.tei-c.org/job/TEIP5/lastSuccessfulBuild/artifact/P5/</ref> and then |
491 | 502 | uploading it to the release page.<lb/> Do the same for the Stylesheets as well. Go to |
|
0 commit comments