-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReleaseChecklist.html
824 lines (781 loc) · 61.8 KB
/
ReleaseChecklist.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Release Checklist</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css?v=fadd4351" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=77160d70" />
<script src="_static/documentation_options.js?v=a8da1a53"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Patch Release Checklist" href="PatchReleaseChecklist.html" />
<link rel="prev" title="Jenkins Configuration" href="JenkinsConfiguration.html" />
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-59110517-1', 'auto');
ga('send', 'pageview');
</script>
</head><body>
<div id="navbar" class="navbar navbar-default ">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://www.mantidproject.org">
</a>
<span class="navbar-text navbar-version pull-left"><b>main</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li class="divider-vertical"></li>
<li><a href="index.html">Home</a></li>
<li><a href="https://download.mantidproject.org">Download</a></li>
<li><a href="https://docs.mantidproject.org">User Documentation</a></li>
<li><a href="http://www.mantidproject.org/contact">Contact Us</a></li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<p>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="nav-item nav-item-0"><a href="index.html">Documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">Release Checklist</a></li>
</ul>
</div> </p>
</div>
<div class="container">
<div class="row">
<div class="body col-md-12 content" role="main">
<section id="release-checklist">
<span id="releasechecklist"></span><h1>Release Checklist<a class="headerlink" href="#release-checklist" title="Link to this heading">¶</a></h1>
<nav class="contents local" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#roles" id="id11">Roles</a></p></li>
<li><p><a class="reference internal" href="#timeline" id="id12">Timeline</a></p></li>
<li><p><a class="reference internal" href="#local-project-managers-checklist" id="id13">Local Project Managers Checklist</a></p>
<ul>
<li><p><a class="reference internal" href="#week-before-code-freeze" id="id14">1 week before Code Freeze</a></p></li>
<li><p><a class="reference internal" href="#code-freeze" id="id15">Code Freeze</a></p></li>
<li><p><a class="reference internal" href="#beta-testing-begins" id="id16">Beta Testing Begins</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#quality-assurance-managers-checklist" id="id17">Quality Assurance Managers Checklist</a></p>
<ul>
<li><p><a class="reference internal" href="#manual-testing" id="id18">Manual Testing</a></p></li>
<li><p><a class="reference internal" href="#beta-testing-ends-prepare-for-smoke-testing" id="id19">Beta Testing Ends - Prepare for Smoke Testing</a></p></li>
<li><p><a class="reference internal" href="#smoke-testing" id="id20">Smoke Testing</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#release-editors-checklist" id="id21">Release Editors Checklist</a></p>
<ul>
<li><p><a class="reference internal" href="#id2" id="id22">Beta Testing Begins</a></p></li>
<li><p><a class="reference internal" href="#beta-testing-ends" id="id23">Beta Testing Ends</a></p></li>
<li><p><a class="reference internal" href="#just-before-release" id="id24">Just before release</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#release-manager-checklist" id="id25">Release Manager Checklist</a></p>
<ul>
<li><p><a class="reference internal" href="#weeks-before-feature-freeze" id="id26">2-3 weeks before Feature Freeze</a></p></li>
<li><p><a class="reference internal" href="#week-before-feature-freeze" id="id27">1 week before Feature Freeze</a></p></li>
<li><p><a class="reference internal" href="#feature-freeze-begins" id="id28">Feature Freeze Begins</a></p></li>
<li><p><a class="reference internal" href="#id4" id="id29">Manual Testing</a></p></li>
<li><p><a class="reference internal" href="#id5" id="id30">Beta Testing Begins</a></p></li>
<li><p><a class="reference internal" href="#reminder-email-for-beta" id="id31">Reminder Email for Beta</a></p></li>
<li><p><a class="reference internal" href="#id6" id="id32">Beta Testing Ends</a></p></li>
<li><p><a class="reference internal" href="#id7" id="id33">Smoke Testing</a></p></li>
<li><p><a class="reference internal" href="#release-day" id="id34">Release Day</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#technical-release-managers-checklist" id="id35">Technical Release Managers Checklist</a></p>
<ul>
<li><p><a class="reference internal" href="#id8" id="id36">Code Freeze</a></p></li>
<li><p><a class="reference internal" href="#id9" id="id37">Smoke Testing</a></p></li>
<li><p><a class="reference internal" href="#create-final-release-candidates" id="id38">Create Final Release Candidates</a></p></li>
<li><p><a class="reference internal" href="#technical-release-manager-release-day" id="id39">Release Day</a></p></li>
</ul>
</li>
</ul>
</nav>
<p>These are the steps involved in performing a full Mantid release. To
request or perform a patch release look at the
<a class="reference internal" href="PatchReleaseChecklist.html#patchreleasechecklist"><span class="std std-ref">patch release checklist</span></a>.</p>
<section id="roles">
<h2><a class="toc-backref" href="#id11" role="doc-backlink">Roles</a><a class="headerlink" href="#roles" title="Link to this heading">¶</a></h2>
<p>The roles are defined in terms of the people responsible.
Those in the role do not need to carry out all duties themselves, but they
are responsible for ensuring that the work gets done.</p>
<ul class="simple">
<li><p><a class="reference internal" href="#local-project-managers-checklist"><span class="std std-ref">Local Project Manager(s)</span></a> - People in charge
of communicating with local development teams, facility management, and other people
at their sponsoring facility.</p></li>
<li><p><a class="reference internal" href="#quality-assurance-manager-checklist"><span class="std std-ref">Quality Assurance Manager</span></a> - People responsible
for making sure that manual testing has been performed. They will ensure Mantid meets
quality requirements before delivery in consultation with the <em>Release Manager</em>.</p></li>
<li><p><a class="reference internal" href="#release-editor-checklist"><span class="std std-ref">Release Editor</span></a> - People responsible for ensuring the
release notes are edited to give them a common language, layout, and illustrative images.</p></li>
<li><p><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a> - Person in charge of the go/no go
decision of the release. The main task is to reiterate the timeline and be the collection
point for information between all of the <em>Local Project Managers</em>.</p></li>
<li><p><a class="reference internal" href="#technical-release-manager-checklist"><span class="std std-ref">Technical Release Manager</span></a> - People responsible
for technical tasks such as renaming branches, creating tags, configuring build servers, and
ensuring problems on the Release Pipeline get fixed (by themselves or others).</p></li>
</ul>
</section>
<section id="timeline">
<h2><a class="toc-backref" href="#id12" role="doc-backlink">Timeline</a><a class="headerlink" href="#timeline" title="Link to this heading">¶</a></h2>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><div class="line-block">
<div class="line">Key Event(s)</div>
</div>
</th>
<th class="head"><div class="line-block">
<div class="line">Task Priorities</div>
</div>
</th>
<th class="head"><div class="line-block">
<div class="line">Actions Required from</div>
</div>
</th>
<th class="head"><div class="line-block">
<div class="line">Time Until Release</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>2-3 weeks before Feature
Freeze</p></td>
<td><p>Development, Testing & Documentation</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
</div>
</td>
<td><p>4-6+ weeks</p></td>
</tr>
<tr class="row-odd"><td><div class="line-block">
<div class="line">1 week before Feature</div>
<div class="line">Freeze</div>
</div>
</td>
<td><p>Development, Testing & Documentation</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#local-project-managers-checklist"><span class="std std-ref">Local Project Manager(s)</span></a></div>
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
</div>
</td>
<td><p>4+ weeks</p></td>
</tr>
<tr class="row-even"><td><p><strong>Feature Freeze Begins</strong></p></td>
<td><p>Final Development, Testing & Documentation</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#local-project-managers-checklist"><span class="std std-ref">Local Project Manager(s)</span></a></div>
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
<div class="line"><a class="reference internal" href="#technical-release-manager-checklist"><span class="std std-ref">Technical Release Manager</span></a></div>
</div>
</td>
<td><p>3 weeks + 1 working day</p></td>
</tr>
<tr class="row-odd"><td><p><strong>Manual Testing</strong></p></td>
<td><p>Blocker bug fixes, Testing & Release Notes</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#quality-assurance-manager-checklist"><span class="std std-ref">Quality Assurance Manager</span></a></div>
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
</div>
</td>
<td><p>3 weeks</p></td>
</tr>
<tr class="row-even"><td><p><strong>Beta Testing Begins</strong></p></td>
<td><p>Blocker bug fixes, Testing, Release Notes,
Maintenance Tasks & Next release development</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#local-project-managers-checklist"><span class="std std-ref">Local Project Manager(s)</span></a></div>
<div class="line"><a class="reference internal" href="#release-editor-checklist"><span class="std std-ref">Release Editor</span></a></div>
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
</div>
</td>
<td><p>2.5 weeks</p></td>
</tr>
<tr class="row-odd"><td><p>Reminder Email for Beta</p></td>
<td><p>Blocker bug fixes, Testing, Release Notes,
Maintenance Tasks & Next release development</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
</div>
</td>
<td><p>1.5 weeks</p></td>
</tr>
<tr class="row-even"><td><p><strong>Beta Testing Ends</strong></p></td>
<td><p>Blocker bug fixes, Testing, Release Notes,
Maintenance Tasks & Next release development</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#release-editor-checklist"><span class="std std-ref">Release Editor</span></a></div>
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
<div class="line"><a class="reference internal" href="#quality-assurance-manager-checklist"><span class="std std-ref">Quality Assurance Manager</span></a></div>
</div>
</td>
<td><p>~ 4 working days</p></td>
</tr>
<tr class="row-odd"><td><p><strong>Smoke Testing</strong></p></td>
<td><p>Blocker bug fixes, Testing & Packaging</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#quality-assurance-manager-checklist"><span class="std std-ref">Quality Assurance Manager</span></a></div>
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
<div class="line"><a class="reference internal" href="#technical-release-manager-checklist"><span class="std std-ref">Technical Release Manager</span></a></div>
</div>
</td>
<td><p>1 working day</p></td>
</tr>
<tr class="row-even"><td><p><strong>Release Day</strong></p></td>
<td><p>Blocker bug fixes, Testing & Release
Announcements</p></td>
<td><div class="line-block">
<div class="line"><a class="reference internal" href="#release-manager-checklist"><span class="std std-ref">Release Manager</span></a></div>
<div class="line"><a class="reference internal" href="#technical-release-manager-checklist"><span class="std std-ref">Technical Release Manager</span></a></div>
</div>
</td>
<td><p>0</p></td>
</tr>
</tbody>
</table>
</section>
<section id="local-project-managers-checklist">
<span id="id1"></span><h2><a class="toc-backref" href="#id13" role="doc-backlink">Local Project Managers Checklist</a><a class="headerlink" href="#local-project-managers-checklist" title="Link to this heading">¶</a></h2>
<p><strong>Role</strong>: People in charge of communicating with local development teams, facility
management, and other people at their sponsoring facility.</p>
<section id="week-before-code-freeze">
<h3><a class="toc-backref" href="#id14" role="doc-backlink">1 week before Code Freeze</a><a class="headerlink" href="#week-before-code-freeze" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Before the code freeze is in place the PM and Technical Steering Committee (TSC)
need to agree the maintenance tasks for the next release period.</p></li>
</ul>
</section>
<section id="code-freeze">
<h3><a class="toc-backref" href="#id15" role="doc-backlink">Code Freeze</a><a class="headerlink" href="#code-freeze" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Attempt to drive the pull requests for this milestone down to 0, in collaboration
with the Release Manager.</p></li>
</ul>
</section>
<section id="beta-testing-begins">
<h3><a class="toc-backref" href="#id16" role="doc-backlink">Beta Testing Begins</a><a class="headerlink" href="#beta-testing-begins" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Ensure that developers arrange to meet with their beta testers.</p></li>
<li><p>Triage when necessary the issues discovered during beta testing.</p></li>
</ul>
</section>
</section>
<section id="quality-assurance-managers-checklist">
<span id="quality-assurance-manager-checklist"></span><h2><a class="toc-backref" href="#id17" role="doc-backlink">Quality Assurance Managers Checklist</a><a class="headerlink" href="#quality-assurance-managers-checklist" title="Link to this heading">¶</a></h2>
<p><strong>Role</strong>: People responsible for making sure that manual testing has been performed.
They will ensure Mantid meets quality requirements before delivery in consultation
with the Release Manager.</p>
<section id="manual-testing">
<h3><a class="toc-backref" href="#id18" role="doc-backlink">Manual Testing</a><a class="headerlink" href="#manual-testing" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Ensure that Manual testing begins by creating the testing tasks as GitHub issues, assigning them and posting on
Slack. Most of our Manual testing instructions are <a class="reference internal" href="Testing/index.html#testing"><span class="std std-ref">here</span></a>. Generate the Manual testing issues by
following the instructions in the
<a class="reference external" href="https://github.com/mantidproject/documents/tree/main/Project-Management/Tools/RoadmapUpdate">README file</a>.
Please raise the issues from the ISIS and Non-ISIS manual testing spreadsheets.</p></li>
<li><p>Over the next week, check the Manual testing GitHub issues. Testers should raise any
serious problems as separate GitHub issues with a relevant milestone. When testing tasks are complete and all serious
problems raised as issues, then the testing GitHub issue should be closed.</p></li>
<li><p>Manual testing at ISIS as of release 6.3, has taken the form of
<a class="reference external" href="https://github.com/mantidproject/documents/blob/main/Project-Management/Tools/RoadmapUpdate/Ensemble%20Manual%20Testing.pptx">Ensemble Manual Testing</a>.
In short, testing teams of around 3-5 developers, spread across sub-teams
are assigned tasks with the code expert in that testing team.</p></li>
<li><p>It is important to ensure that for each operating system, there is at least one person responsible for installing
the conda version and one person responsible for installing the non-conda version of Mantid.</p></li>
</ul>
</section>
<section id="beta-testing-ends-prepare-for-smoke-testing">
<h3><a class="toc-backref" href="#id19" role="doc-backlink">Beta Testing Ends - Prepare for Smoke Testing</a><a class="headerlink" href="#beta-testing-ends-prepare-for-smoke-testing" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Liaise with the technical release manager and project manager to decide on an appropriate time for Smoke Testing.</p></li>
<li><p>Send an invite to developers for 1.5 hours maximum Smoke Testing. Include an introduction message to assign all testers to a certain operating system.
Link to the release pipeline builds where the release packages <em>WILL</em> be. Encourage testers to download
in the 30 minutes before smoke testing. Inform that ticking on a testing issue means that someone has assigned themselves and will tackle that task.</p></li>
</ul>
</section>
<section id="smoke-testing">
<h3><a class="toc-backref" href="#id20" role="doc-backlink">Smoke Testing</a><a class="headerlink" href="#smoke-testing" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Make sure to follow the preparation steps listed above.</p></li>
<li><p>It is likely that many changes have been made over the beta test period, therefore
we must do some more manual testing to ensure everything still works. This stage is
called Smoke testing. Generate the Smoke testing issues by following the instructions
<a class="reference external" href="https://github.com/mantidproject/documents/tree/main/Project-Management/Tools/RoadmapUpdate/SmokeTesting">here</a>.</p></li>
<li><p>Liaise with the Technical Release Manager and together announce the creation of the
Smoke testing issues and Release Candidates in the <em>#general</em> slack channel.</p></li>
<li><p>During smoke testing it may be easier if at least one QA Manager acts as facilitator during the session. They will answer questions, co-ordinate testing
(especially when an arising issue needs testing on other OS) and ensure all testing is covered.</p></li>
</ul>
</section>
</section>
<section id="release-editors-checklist">
<span id="release-editor-checklist"></span><h2><a class="toc-backref" href="#id21" role="doc-backlink">Release Editors Checklist</a><a class="headerlink" href="#release-editors-checklist" title="Link to this heading">¶</a></h2>
<p><strong>Role</strong>: People responsible for editing the release notes and giving them a common
language, layout, and collecting images.</p>
<section id="id2">
<h3><a class="toc-backref" href="#id22" role="doc-backlink">Beta Testing Begins</a><a class="headerlink" href="#id2" title="Link to this heading">¶</a></h3>
<ul>
<li><p>Initial amalgamation of the release notes:</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">pull</span></code> on <code class="docutils literal notranslate"><span class="pre">release-next</span></code>.</p></li>
<li><p>Create a new branch using the <a class="reference external" href="https://developer.mantidproject.org/GitWorkflow.html#new-branches">Mantid Git Workflow guidance</a>.</p></li>
<li><p>Navigate to your Mantid ‘build’ directory and open <code class="docutils literal notranslate"><span class="pre">command-prompt.bat</span></code>.</p></li>
<li><p>In the new command prompt, navigate to the <a class="reference external" href="https://github.com/mantidproject/mantid/blob/main/tools/ReleaseNotes/release_editor.py">release_editor.py script</a> and run, parsing the correct version number. The script copies all of the separate release notes under the correct heading of their upper level file, e.g. <code class="docutils literal notranslate"><span class="pre">framework.rst</span></code>, and moves the original release notes into a ‘Used’ directory.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python<span class="w"> </span>release_editor.py<span class="w"> </span>--release<span class="w"> </span><span class="m">6</span>.5.0
</pre></div>
</div>
</li>
<li><p>Check the script has run correctly by checking all individual rst files have been moved into their respective ‘used’ directories. You could use the <a class="reference external" href="https://github.com/mantidproject/mantid/blob/main/tools/ReleaseNotes/unused_release_note_finder.py">unused_release_note_finder.py script</a> for this (explained further bellow).</p></li>
<li><p>Look over the files to make sure they look roughly correct then submit a PR to be merged into <code class="docutils literal notranslate"><span class="pre">release-next</span></code>.</p></li>
</ul>
</li>
<li><p>Initial changes:</p>
<ul class="simple">
<li><p>For each file which needs changes, create a new branch (example name <code class="docutils literal notranslate"><span class="pre">6.5_workbench_release_notes</span></code>) and work on changes to then be merged back into <code class="docutils literal notranslate"><span class="pre">release-next</span></code>.</p></li>
</ul>
</li>
<li><p>Incoming release notes:</p>
<ul>
<li><p>As the release sprint goes on, new release note files will be created (existing outside of the ‘Used’ directories). The text from these will need to be copped into the main release note pages (<code class="docutils literal notranslate"><span class="pre">diffraction.rst</span></code>, <code class="docutils literal notranslate"><span class="pre">mantidworkbench.rst</span></code> etc.) and the file itself moved to it’s corresponding ‘Used’ directory.</p></li>
<li><p>It is best to wait until several of these have built up before making a new branch / pr.</p></li>
<li><p>To help with finding the new release notes, use the <a class="reference external" href="https://github.com/mantidproject/mantid/blob/main/tools/ReleaseNotes/unused_release_note_finder.py">unused_release_note_finder.py script</a> which will print the location of release notes not within a ‘Used’ directory.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python<span class="w"> </span>unused_release_note_finder.py<span class="w"> </span>--release<span class="w"> </span><span class="m">6</span>.5.0
</pre></div>
</div>
</li>
</ul>
</li>
<li><p>Images:</p>
<ul class="simple">
<li><p>Images or GIFs should be added to highlight important and/or visual changes.</p></li>
<li><p>An image for the ‘headline’ feature (or a collage if there is none) should be added to the main page (<code class="docutils literal notranslate"><span class="pre">index.rst</span></code>).</p></li>
</ul>
</li>
</ul>
</section>
<section id="beta-testing-ends">
<h3><a class="toc-backref" href="#id23" role="doc-backlink">Beta Testing Ends</a><a class="headerlink" href="#beta-testing-ends" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Review the complete set of release notes to make sure there are no glaring mistakes.</p></li>
</ul>
</section>
<section id="just-before-release">
<h3><a class="toc-backref" href="#id24" role="doc-backlink">Just before release</a><a class="headerlink" href="#just-before-release" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>As one of the final steps in preparing to tag the release:</p>
<ul>
<li><p>Check for uncollected release notes using the <a class="reference external" href="https://github.com/mantidproject/mantid/blob/main/tools/ReleaseNotes/unused_release_note_finder.py">unused_release_note_finder.py script</a>.</p></li>
<li><p>Check <code class="docutils literal notranslate"><span class="pre">main</span></code> for any release notes that have been merged into the wrong branch.</p></li>
<li><p>Remove any unused headings which have not already been removed from the release notes.</p></li>
<li><p>Remove all the “Used” release note files and their sub-structure.</p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="release-manager-checklist">
<span id="id3"></span><h2><a class="toc-backref" href="#id25" role="doc-backlink">Release Manager Checklist</a><a class="headerlink" href="#release-manager-checklist" title="Link to this heading">¶</a></h2>
<p><strong>Role</strong>: Person in charge of the go/no go decision of the release. The main task
is to reiterate the timeline and be the collection point for information between
all of the Local Project Managers.</p>
<section id="weeks-before-feature-freeze">
<h3><a class="toc-backref" href="#id26" role="doc-backlink">2-3 weeks before Feature Freeze</a><a class="headerlink" href="#weeks-before-feature-freeze" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Schedule a release showcase meeting for all facilities to present work that
is intended to be part of the upcoming release.
This meeting should aim to be in the week leading up to the feature freeze
and include a timeline for the release along with a description of those
taking on each of the release roles.
It can also include a preview of work aimed for the release after the
upcoming one.</p></li>
</ul>
</section>
<section id="week-before-feature-freeze">
<h3><a class="toc-backref" href="#id27" role="doc-backlink">1 week before Feature Freeze</a><a class="headerlink" href="#week-before-feature-freeze" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Check that all people with release roles are added to the <em>#release-roles</em>
Slack channel and others are removed.</p></li>
<li><p>Post on the <em>#annoucements</em> slack channel reminding developers of the impending
release and stating that they have only 5 days left before the feature freeze.</p></li>
<li><p>Hold the release showcase meeting described above.</p></li>
</ul>
</section>
<section id="feature-freeze-begins">
<h3><a class="toc-backref" href="#id28" role="doc-backlink">Feature Freeze Begins</a><a class="headerlink" href="#feature-freeze-begins" title="Link to this heading">¶</a></h3>
<ul>
<li><p>Ask the technical release managers to organize for the release branch to be created.</p></li>
<li><p>Create a <a class="reference external" href="https://github.com/orgs/mantidproject/projects/">project board</a> to
track the issues for the release</p></li>
<li><p>After the message that the release branch has been created, post on the
<em>#annoucements</em> slack channel that only critical work should be merged to
that branch. You can use an adapted version of the
following announcement:</p>
<ul>
<li><p>We are now in feature freeze. Only critical work should be added to the release-next branch.
I have created a project board to track work for release <em><version></em> - please add any critical issues/PRs to this project, and ensure they have the <em><version></em> milestone.
I will be clearing the <em><version></em> milestone from anything not in this project later today (you can always re-add it if necessary).
Non critical work can be added to the <em><version+1></em> milestone and merged to the main branch as usual.</p>
<p><em><project link url></em></p>
</li>
</ul>
</li>
<li><p>Monitor the release project board and ensure items are assigned and moving through the board.
Show the board at standups.</p></li>
</ul>
</section>
<section id="id4">
<h3><a class="toc-backref" href="#id29" role="doc-backlink">Manual Testing</a><a class="headerlink" href="#id4" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Ensure that PR testing has been completed for PRs from before the feature freeze.</p></li>
</ul>
<p><strong>Clearing the Project Board</strong></p>
<p>Go through the issues for the release milestone (not the sprint milestone), ensuring that:</p>
<ul class="simple">
<li><p>All issues are intended for the release.</p></li>
<li><p>Any new issues are triaged on a daily basis, and allocated to staff.</p></li>
<li><p>Issues that are not important for the release should be moved to a more
appropriate milestone. Don’t leave anything in the release milestone that is not
definitely for that release.</p></li>
</ul>
<p><strong>Maintenance</strong></p>
<ul class="simple">
<li><p>Present to the whole development team the maintenance tasks for this release period.</p></li>
<li><p>Emphasize the order of work priorities as noted by the task priorities in this
checklist. Maintenance tasks may need to be paused to work on tasks for the release.</p></li>
</ul>
</section>
<section id="id5">
<h3><a class="toc-backref" href="#id30" role="doc-backlink">Beta Testing Begins</a><a class="headerlink" href="#id5" title="Link to this heading">¶</a></h3>
<ul>
<li><p>On the date when the beta-testing is scheduled to start check with the technical
release managers that a build has been successful that we are happy to put out.</p></li>
<li><p>Send an email to beta test users explaining where to download the installers and how
to report issues (cc the Local Project Managers so they can organise a similar message
at their facilities). The following emails are used for beta testing:</p>
<p><code class="docutils literal notranslate"><span class="pre">ISISInstsci<AT>stfc.ac.uk</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">twg<AT>mantidproject.org</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">swg<AT>mantidproject.org</span></code></p>
<p>using the following templates as a guide (the first template is for users at ISIS, the second one for everyone else):</p>
<ul>
<li><p>Dear all,</p>
<p>We are busy making preparations for the release of version <em><version></em> of Mantid.
We have completed our first round of developer testing and are now ready for beta-testing feedback.
The beta testing period for this release is between today (<em><start date></em>) and the end of play on <em><end date></em>.
We then hope to release the following week.</p>
<p>Packages</p>
<p>To test the Mantid nightly version, it is recommended to install it as a Conda package in a new Conda environment. To achieve this, use the
following command: <code class="docutils literal notranslate"><span class="pre">mamba</span> <span class="pre">create</span> <span class="pre">-n</span> <span class="pre">mantid_env_test</span> <span class="pre">-c</span> <span class="pre">mantid/label/nightly</span> <span class="pre">mantidworkbench</span></code>
Alternatively, the nightly test installers for this version are available here to download: <a class="reference external" href="https://www.mantidproject.org/installation/index#nightly-build">https://www.mantidproject.org/installation/index#nightly-build</a>.
The nightly builds install alongside a full release and so will not affect its operation but will overwrite any other nightly builds you have.
For Windows users at ISIS, install Mantid as your standard user account (not an 03 account).
It will install just for your user, rather than for the whole PC.
Another possibility is to conduct testing on IDAaaS. Please be aware that the version on IDAaaS is typically one day behind the nightly version available on Conda.</p>
<p>We have an early draft of the release notes at <a class="reference external" href="https://docs.mantidproject.org/nightly/release">https://docs.mantidproject.org/nightly/release</a>/<version>/index.html.</p>
<p>Please report any bugs to <code class="docutils literal notranslate"><span class="pre">mantid-help@mantidproject.org</span></code> and
if the problem is a bug that would prevent your normal workflow from working then start the email subject with <code class="docutils literal notranslate"><span class="pre">URGENT:</span></code>.
It would be most helpful for the team if bugs are communicated back to us as soon as possible.</p>
<p>Thank you all for your help.</p>
<p>Regards,</p>
<p>Mantid Team</p>
</li>
<li><p>Dear all,</p>
<p>We are busy making preparations for the release of version <em><version></em> of Mantid.
We have completed our first round of developer testing and are now ready for beta-testing feedback.
The beta testing period for this release is between today (<em><start date></em>) and the end of play on <em><end date></em>.
We then hope to release the following week.</p>
<p>Packages</p>
<p>To test the Mantid nightly version, it is recommended to install it as a Conda package in a new Conda environment. To achieve this, use the
following command: <code class="docutils literal notranslate"><span class="pre">mamba</span> <span class="pre">create</span> <span class="pre">-n</span> <span class="pre">mantid_env_test</span> <span class="pre">-c</span> <span class="pre">mantid/label/nightly</span> <span class="pre">mantidworkbench</span></code>
Alternatively, the nightly test installers for this version are available here to download: <a class="reference external" href="https://github.com/mantidproject/mantid/releases">https://github.com/mantidproject/mantid/releases</a>.
The nightly builds install alongside a full release and so will not affect its operation but will overwrite any other nightly builds you have.</p>
<p>We have an early draft of the release notes at <a class="reference external" href="https://docs.mantidproject.org/nightly/release">https://docs.mantidproject.org/nightly/release</a>/<version>/index.html.</p>
<p>Please report any bugs to <code class="docutils literal notranslate"><span class="pre">mantid-help@mantidproject.org</span></code> and
if the problem is a bug that would prevent your normal workflow from working then start the email subject with <code class="docutils literal notranslate"><span class="pre">URGENT:</span></code>.
It would be most helpful for the team if bugs are communicated back to us as soon as possible.</p>
<p>Thank you all for your help.</p>
<p>Regards,</p>
<p>Mantid Team</p>
</li>
</ul>
</li>
<li><p>Ensure the other facilities forward the beta-testing email to their relevant internal lists.</p></li>
</ul>
</section>
<section id="reminder-email-for-beta">
<h3><a class="toc-backref" href="#id31" role="doc-backlink">Reminder Email for Beta</a><a class="headerlink" href="#reminder-email-for-beta" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Mid-way through the beta testing period, send a reminder email to beta test users thanking them for their feedback so
far and reminding them to feedback as soon as possible and not to send in a list of
issues at the end of testing (cc the Local Project Managers so they can organise a
similar message at their facilities).</p></li>
</ul>
</section>
<section id="id6">
<h3><a class="toc-backref" href="#id32" role="doc-backlink">Beta Testing Ends</a><a class="headerlink" href="#id6" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>At the end of the day, email the beta test users thanking them.</p></li>
<li><p>Review the complete set of release notes to make sure there are no glaring mistakes.</p></li>
</ul>
</section>
<section id="id7">
<h3><a class="toc-backref" href="#id33" role="doc-backlink">Smoke Testing</a><a class="headerlink" href="#id7" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>This is the final day for code changes to the build for blocker issues.</p></li>
</ul>
</section>
<section id="release-day">
<span id="release-manager-announcements"></span><h3><a class="toc-backref" href="#id34" role="doc-backlink">Release Day</a><a class="headerlink" href="#release-day" title="Link to this heading">¶</a></h3>
<p>After the Technical Release Manager has finished their release day tasks:</p>
<ul>
<li><p>Send an email, including the text of the release notes, to the following lists, replacing <at> with the appropriate sign:</p>
<p><code class="docutils literal notranslate"><span class="pre">nobugs<at>nobugsconference.org</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">news<at>neutronsources.org</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">neutron<at>neutronsources.org</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">announcements<at>mantidproject.org</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">ISIS</span> <span class="pre">Instrument</span> <span class="pre">Scientists</span> <span class="pre">+</span> <span class="pre">Other</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">supportanalysis<at>stfc.ac.uk</span></code></p>
</li>
<li><p>Also post the contents of the message to the <em>#announcements</em> channel on
Slack.</p></li>
<li><p>Create a new item on the forum news.</p></li>
<li><p>Add a news item linking to the forum post on the <a class="reference external" href="https://www.mantidproject.org">mantidproject website</a>
by manually editing <a class="reference external" href="https://github.com/mantidproject/www/blob/main/source/_templates/sidebar-news.html">sidebar-news.html</a>.
Restrict the number of news items to five.</p></li>
<li><p>Close the release milestone on GitHub.</p></li>
</ul>
</section>
</section>
<section id="technical-release-managers-checklist">
<span id="technical-release-manager-checklist"></span><h2><a class="toc-backref" href="#id35" role="doc-backlink">Technical Release Managers Checklist</a><a class="headerlink" href="#technical-release-managers-checklist" title="Link to this heading">¶</a></h2>
<p><strong>Role</strong>: People responsible for technical tasks such as renaming branches, creating
tags, configuring build servers, and ensuring problems on the Release Pipeline get fixed
(by themselves or others).</p>
<section id="id8">
<h3><a class="toc-backref" href="#id36" role="doc-backlink">Code Freeze</a><a class="headerlink" href="#id8" title="Link to this heading">¶</a></h3>
<p><strong>Create the Release Branch (once most PRs are merged)</strong></p>
<ul class="simple">
<li><p>Ensure the latest <a class="reference external" href="https://builds.mantidproject.org/view/Nightly%20Pipelines/job/main_nightly_deployment/">main nightly deployment pipeline</a>
has passed for all build environments. If it fails, decide if a fix is needed before moving on to
the next steps.</p></li>
<li><p>Ask a mantid gatekeeper or administrator to update the <code class="docutils literal notranslate"><span class="pre">release-next</span></code> branch so that it’s up to
date with the <code class="docutils literal notranslate"><span class="pre">main</span></code> branch, pushing the changes directly to GitHub:</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>checkout<span class="w"> </span>release-next
git<span class="w"> </span>fetch<span class="w"> </span>origin<span class="w"> </span>main
git<span class="w"> </span>reset<span class="w"> </span>--hard<span class="w"> </span>origin/main
git<span class="w"> </span>push<span class="w"> </span>origin<span class="w"> </span>release-next<span class="w"> </span>--force
</pre></div>
</div>
<ul class="simple">
<li><p>Verify that the latest commit on <code class="docutils literal notranslate"><span class="pre">release-next</span></code> is correct before moving to the next step.</p></li>
<li><p>Click <code class="docutils literal notranslate"><span class="pre">Build</span> <span class="pre">Now</span></code> on <a class="reference external" href="https://builds.mantidproject.org/view/All/job/open-release-testing/">open-release-testing</a>. This will
set the value of the Jenkins global property <code class="docutils literal notranslate"><span class="pre">BRANCH_TO_PUBLISH</span></code> to <code class="docutils literal notranslate"><span class="pre">release-next</span></code>,
which will re-enable package publishing for the <code class="docutils literal notranslate"><span class="pre">release-next</span></code> nightly pipeline.</p></li>
<li><p>Check the state of all open pull requests for this milestone and decide which
should be kept for the release, liaise with the Release Manager on this. Move any
pull requests not targeted for this release out of the milestone, and then change
the base branch of the remaining pull requests to <code class="docutils literal notranslate"><span class="pre">release-next</span></code>. You can either
manually change the base branch in GitHub or use the <a class="reference external" href="https://github.com/mantidproject/mantid/blob/main/tools/scripts/update-pr-base-branch.py">update-pr-base-branch.py</a>
script to update the base branches of these pull requests.
A quick example to show how the arguments should be provided to this script is seen below:</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python<span class="w"> </span>update-pr-base-branch.py<span class="w"> </span><span class="o">[</span>milestone<span class="o">]</span><span class="w"> </span><span class="o">[</span>newbase<span class="o">]</span><span class="w"> </span>--token<span class="w"> </span><span class="o">[</span>generated_token<span class="o">]</span>
python<span class="w"> </span>update-pr-base-branch.py<span class="w"> </span><span class="s2">"Release 6.1"</span><span class="w"> </span><span class="s2">"release-next"</span><span class="w"> </span>--token<span class="w"> </span>fake123gener8ed456token
</pre></div>
</div>
<ul class="simple">
<li><p>Inform other developers that <code class="docutils literal notranslate"><span class="pre">release-next</span></code> has been created by posting to the
<em>#announcements</em> slack channel. You can use an adapted version of the
following announcement:</p>
<ul>
<li><p>The release branch for <version>, called <code class="docutils literal notranslate"><span class="pre">release-next</span></code>, has now been created:
<a class="reference external" href="https://github.com/mantidproject/mantid/tree/release-next">https://github.com/mantidproject/mantid/tree/release-next</a>. If you’ve not worked with
the release/main/-branch workflow before then please take a moment to familiarise
yourself with the process: <a class="reference external" href="https://developer.mantidproject.org/GitWorkflow.html#code-freeze">https://developer.mantidproject.org/GitWorkflow.html#code-freeze</a>.
The part about ensuring new branches have the correct parent is the most important part
(although this can be corrected afterwards). All branches and PRs that were created
before this release branch was created are fine, as their history is the same as <code class="docutils literal notranslate"><span class="pre">main</span></code>.</p></li>
</ul>
</li>
</ul>
<p><strong>Create Release Notes Skeleton</strong></p>
<ul class="simple">
<li><p>Create a skeleton set of release notes and subfolders on <code class="docutils literal notranslate"><span class="pre">main</span></code> for the next version using the
<a class="reference external" href="https://github.com/mantidproject/mantid/blob/main/tools/release_generator/release.py">python helper tool</a>
and open a pull request to put them on <code class="docutils literal notranslate"><span class="pre">main</span></code>. Make sure the
<code class="docutils literal notranslate"><span class="pre">docs/source/release/index.rst</span></code> file has a link to the new release docs.</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python<span class="w"> </span>release.py<span class="w"> </span>--release<span class="w"> </span><span class="o">[</span>X.Y.Z<span class="o">]</span><span class="w"> </span>--milestone<span class="w"> </span><span class="o">[</span>milestone<span class="o">]</span>
python<span class="w"> </span>release.py<span class="w"> </span>--release<span class="w"> </span><span class="m">6</span>.1.0<span class="w"> </span>--milestone<span class="w"> </span><span class="s2">"Release 6.1"</span>
</pre></div>
</div>
</section>
<section id="id9">
<h3><a class="toc-backref" href="#id37" role="doc-backlink">Smoke Testing</a><a class="headerlink" href="#id9" title="Link to this heading">¶</a></h3>
<p>Check with the Quality Assurance Manager that the initial Manual testing has been completed, and any issues
have been fixed. Then:</p>
<ul class="simple">
<li><p>Liaise with the release editor to ensure that they have completed all of their tasks.</p></li>
<li><p>Check the release notes and verify that the “Under Construction” paragraph on the main
index page has been removed. Remove the paragraph if it still exists.</p></li>
<li><p>Ensure that all changes, including release notes, have been merged into the <code class="docutils literal notranslate"><span class="pre">release-next</span></code> branch.</p></li>
<li><p>Make sure the <code class="docutils literal notranslate"><span class="pre">release-next</span></code> branch is fully merged into <code class="docutils literal notranslate"><span class="pre">main</span></code>. If required, manually run the <a class="reference external" href="https://github.com/mantidproject/mantid/actions/workflows/automerge.yml/">GitHub workflow</a> using the <code class="docutils literal notranslate"><span class="pre">release-next</span></code> branch to
merge the changes.</p></li>
<li><p>Run the <a class="reference external" href="https://builds.mantidproject.org/view/All/job/close-release-testing">close-release-testing</a> Jenkins job.
This will set the value of the Jenkins global property <code class="docutils literal notranslate"><span class="pre">BRANCH_TO_PUBLISH</span></code> to <code class="docutils literal notranslate"><span class="pre">main</span></code>, which will re-enable package
publishing for the <code class="docutils literal notranslate"><span class="pre">main</span></code> nightly pipeline.</p></li>
</ul>
<p><strong>Create the Release Candidates For Smoke Testing</strong></p>
<p>We are now ready to create the release candidates for Smoke testing.</p>
<ul class="simple">
<li><p>Build the <a class="reference external" href="https://builds.mantidproject.org/view/Nightly%20Pipelines/job/release-next_nightly_deployment/">release-next_nightly_deployment Jenkins pipeline</a>
with the following parameters (most are already defaulted to the correct values):</p>
<ul>
<li><p>set <code class="docutils literal notranslate"><span class="pre">BUILD_DEVEL</span></code> to <code class="docutils literal notranslate"><span class="pre">all</span></code></p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">BUILD_PACKAGE</span></code> to <code class="docutils literal notranslate"><span class="pre">all</span></code></p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">PACKAGE_SUFFIX</span></code> to an <strong>empty string</strong></p></li>
<li><p>tick the <code class="docutils literal notranslate"><span class="pre">PUBLISH_TO_ANACONDA</span></code> checkbox</p></li>
<li><p>tick the <code class="docutils literal notranslate"><span class="pre">PUBLISH_TO_GITHUB</span></code> checkbox</p></li>
<li><p>set the <code class="docutils literal notranslate"><span class="pre">ANACONDA_CHANNEL</span></code> to <code class="docutils literal notranslate"><span class="pre">mantid</span></code></p></li>
<li><p>set the <code class="docutils literal notranslate"><span class="pre">ANACONDA_CHANNEL_LABEL</span></code> to <code class="docutils literal notranslate"><span class="pre">vX.Y.ZrcN</span></code> where <code class="docutils literal notranslate"><span class="pre">X.Y.Z</span></code> is the release number,
and <code class="docutils literal notranslate"><span class="pre">N</span></code> is an incremental build number for release candidates, starting at <code class="docutils literal notranslate"><span class="pre">1</span></code> (e.g. <code class="docutils literal notranslate"><span class="pre">v6.7.0rc1</span></code>)</p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">GITHUB_RELEASES_REPO</span></code> to <code class="docutils literal notranslate"><span class="pre">mantidproject/mantid</span></code></p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">GITHUB_RELEASES_TAG</span></code> to <code class="docutils literal notranslate"><span class="pre">vX.Y.ZrcN</span></code>, where <code class="docutils literal notranslate"><span class="pre">X.Y.Z</span></code> is the release number,
and <code class="docutils literal notranslate"><span class="pre">N</span></code> is an incremental build number for release candidates, starting at <code class="docutils literal notranslate"><span class="pre">1</span></code>.</p></li>
</ul>
</li>
<li><p>Once the packages have been published to GitHub and Anaconda, ask someone in the ISIS core or DevOps
team to manually sign the Windows binary and re-upload it to the GitHub
<a class="reference external" href="https://github.com/mantidproject/mantid/releases">draft release</a>.</p></li>
<li><p>Liaise with the Quality Assurance Manager and together announce the creation of the smoke testing
issues and Release Candidates in the <em>#general</em> slack channel.</p></li>
</ul>
</section>
<section id="create-final-release-candidates">
<span id="technical-release-manager-release-candidates"></span><h3><a class="toc-backref" href="#id38" role="doc-backlink">Create Final Release Candidates</a><a class="headerlink" href="#create-final-release-candidates" title="Link to this heading">¶</a></h3>
<p>Check with the Quality Assurance Manager that the Smoke testing has been completed, and any issues
have been fixed. Additionally, ensure that the version of the <code class="docutils literal notranslate"><span class="pre">mslice</span></code> package in <code class="docutils literal notranslate"><span class="pre">conda_build_config.yaml</span></code> is correct.
If there have been any updates to MSlice since the last release, it must be released first. The release candidates must
now be recreated with their final version numbers. To do this, build the
<a class="reference external" href="https://builds.mantidproject.org/view/Nightly%20Pipelines/job/release-next_nightly_deployment/">release-next_nightly_deployment Jenkins pipeline</a>
with the following parameters (most are already defaulted to the correct values):</p>
<ul class="simple">
<li><p>set <code class="docutils literal notranslate"><span class="pre">BUILD_DEVEL</span></code> to <code class="docutils literal notranslate"><span class="pre">all</span></code></p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">BUILD_PACKAGE</span></code> to <code class="docutils literal notranslate"><span class="pre">all</span></code></p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">PACKAGE_SUFFIX</span></code> to an <strong>empty string</strong></p></li>
<li><p>tick the <code class="docutils literal notranslate"><span class="pre">PUBLISH_TO_ANACONDA</span></code> checkbox</p></li>
<li><p>tick the <code class="docutils literal notranslate"><span class="pre">PUBLISH_TO_GITHUB</span></code> checkbox</p></li>
<li><p>set the <code class="docutils literal notranslate"><span class="pre">ANACONDA_CHANNEL</span></code> to <code class="docutils literal notranslate"><span class="pre">mantid</span></code></p></li>
<li><p>set the <code class="docutils literal notranslate"><span class="pre">ANACONDA_CHANNEL_LABEL</span></code> to <code class="docutils literal notranslate"><span class="pre">draft-vX.Y.Z</span></code> where <code class="docutils literal notranslate"><span class="pre">X.Y.Z</span></code> is the release number</p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">GITHUB_RELEASES_REPO</span></code> to <code class="docutils literal notranslate"><span class="pre">mantidproject/mantid</span></code></p></li>
<li><p>set <code class="docutils literal notranslate"><span class="pre">GITHUB_RELEASES_TAG</span></code> to <code class="docutils literal notranslate"><span class="pre">vX.Y.Z</span></code>, where <code class="docutils literal notranslate"><span class="pre">X.Y.Z</span></code> is the release number.</p></li>
</ul>
</section>
<section id="technical-release-manager-release-day">
<span id="id10"></span><h3><a class="toc-backref" href="#id39" role="doc-backlink">Release Day</a><a class="headerlink" href="#technical-release-manager-release-day" title="Link to this heading">¶</a></h3>
<p>Once the final release candidate pipeline has succeeded, the draft release will be available on GitHub and our
Anaconda channel.</p>
<ul class="simple">
<li><p>Edit the <a class="reference external" href="https://github.com/mantidproject/mantid/releases">draft release</a> on
GitHub. The description of the new release can be copied from the release notes <code class="docutils literal notranslate"><span class="pre">index.rst</span></code> file, and
edited appropriately. See previous release descriptions for inspiration.</p></li>
<li><p>Ask someone in the ISIS core or DevOps team to manually sign the Windows binary and re-upload it to the draft
release.</p></li>
<li><p>Publish the GitHub release. This will publish the tag required to generate the DOI.</p></li>
<li><p>Remove the smoke testing release from the GitHub releases page (the one tagged with <code class="docutils literal notranslate"><span class="pre">vX.Y.ZrcN</span></code>).</p></li>
<li><p>Change the labels for the release candidates on our <a class="reference external" href="https://anaconda.org/mantid/mantid/files">Anaconda site</a>
from <code class="docutils literal notranslate"><span class="pre">draft-vX.Y.Z</span></code> to <code class="docutils literal notranslate"><span class="pre">main</span></code>. You may need to ask a member of the ISIS core or DevOps team to do this.</p></li>
<li><p>Remove the smoke testing release candidates from our Anaconda channel (those with the <code class="docutils literal notranslate"><span class="pre">vX.Y.ZrcN</span></code> label).</p></li>
<li><p>Update the <a class="reference external" href="https://download.mantidproject.org">download page</a> by running the <a class="reference external" href="https://github.com/mantidproject/www/actions/workflows/update-latest-release.yml">Update latest release links</a> workflow in the
<a class="reference external" href="https://github.com/mantidproject/www">mantidproject/www repository</a>.</p></li>
<li><p>Ask someone with access to the <a class="reference external" href="https://github.com/ral-facilities/daaas-ansible-workspace">daaas-ansible-workspace repository</a> (a member of the ISIS core team or IDAaaS support)
to add the new release to IDAaaS. They can do this by creating a PR targeting the <code class="docutils literal notranslate"><span class="pre">preprod</span></code> branch, adding
the new release version to the list of versions installed on IDAaaS <a class="reference external" href="https://github.com/ral-facilities/daaas-ansible-workspace/blob/main/roles/software/analysis/mantid/defaults/main.yml">here</a>.
Make sure that there are only three <code class="docutils literal notranslate"><span class="pre">mantid_versions</span></code> in the list (delete the oldest one if applicable).
The changes need to be verified on an IDAaaS test instance before the PR can be accepted.</p></li>
</ul>
<p><strong>Generate DOI</strong></p>
<p>This requires that a tag has been created for this release. This tag is created when you draft and
publish a new <a class="reference external" href="https://github.com/mantidproject/mantid/releases">release</a> on GitHub.</p>
<ul class="simple">
<li><p>Make sure that you have updated your local copy of git to grab the new tag.
<code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">fetch</span> <span class="pre">-p</span></code></p></li>
<li><p>If the script below fails you may need to update the authors list and push the
updates to <code class="docutils literal notranslate"><span class="pre">main</span></code>. Look for <code class="docutils literal notranslate"><span class="pre">authors.py</span></code> in the <code class="docutils literal notranslate"><span class="pre">tools/DOI</span></code> directory.
It does not matter that these are not on the release branch.</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python<span class="w"> </span>tools/DOI/doi.py<span class="w"> </span>--username<span class="o">=[</span>username<span class="o">]</span><span class="w"> </span><span class="o">[</span>X.Y.Z<span class="o">]</span>
</pre></div>
</div>
<ul class="simple">
<li><p>The script will prompt you for the password. Ask a senior developer to share the username and
password with you if you do not already have access to it.</p></li>
</ul>
<p><strong>Update Citation File</strong></p>
<p>Open a PR updating the software <code class="docutils literal notranslate"><span class="pre">doi</span></code>, <code class="docutils literal notranslate"><span class="pre">date-released</span></code> and <code class="docutils literal notranslate"><span class="pre">version</span></code> in the <code class="docutils literal notranslate"><span class="pre">CITATION.cff</span></code> file
at the root of the repository.</p>
<p>Notify the Release Manager when you complete all your tasks.</p>
<p><strong>Deploy Versioned Documentation</strong></p>
<p>Versioned documentation is accessible at <a class="reference external" href="https://docs.mantidproject.org/vX.Y.Z/">https://docs.mantidproject.org/vX.Y.Z/</a>.
This documentation is hosted at <a class="reference external" href="https://mantidproject.github.io/docs-versioned/vX.Y.Z/">https://mantidproject.github.io/docs-versioned/vX.Y.Z/</a>.
Documentation is deployed to GitHub via an action on the <a class="reference external" href="https://github.com/mantidproject/docs-versioned">docs-versioned</a> repository.
This action runs on a push to the <code class="docutils literal notranslate"><span class="pre">main</span></code> branch of the repository.</p>
<p>To do this:</p>
<ul class="simple">
<li><p>On a clone of the mantid repository, check out the commit tagged as the relevant release number: <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">checkout</span> <span class="pre">tags/<vX.Y.Z></span> <span class="pre">-b</span> <span class="pre"><new</span> <span class="pre">branch</span> <span class="pre">name></span></code>.</p></li>
<li><p>On this branch, build the <code class="docutils literal notranslate"><span class="pre">docs-html</span></code> target (this target is produced by <code class="docutils literal notranslate"><span class="pre">CMake</span></code>).</p></li>
<li><p>Clone the repository: <a class="reference external" href="https://github.com/mantidproject/docs-versioned">https://github.com/mantidproject/docs-versioned</a>.</p></li>
<li><p>Remaining on the <code class="docutils literal notranslate"><span class="pre">main</span></code> branch, create a directory for the relevant release in the form <code class="docutils literal notranslate"><span class="pre">vX.Y.Z</span></code>.</p></li>
<li><p>Copy the built documentation into this new directory. The built documentation will be in your mantid build directory at <code class="docutils literal notranslate"><span class="pre"><build</span> <span class="pre">directory>/docs/html</span></code>.</p></li>
<li><p>Stage the newly created directory and commit it to your branch.</p></li>
<li><p>After double-checking that these instructions have been followed correctly, push your branch to the main repository to deploy.</p></li>
</ul>
</section>
</section>
</section>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<ul class="nav navbar-nav" style=" float: right;">
<li>
<a href="JenkinsConfiguration.html" title="Previous Chapter: Jenkins Configuration"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Jenkins Configuration</span>
</a>
</li>
<li>
<a href="PatchReleaseChecklist.html" title="Next Chapter: Patch Release Checklist"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Patch Release... »</span>
</a>
</li>
<li><a href="#">Back to top</a></li>
</ul>
<p>
</p>
</div>
</footer>
</body>
</html>