This repository has been archived by the owner on Apr 18, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
ReleaseProcess.html
711 lines (675 loc) · 63.6 KB
/
ReleaseProcess.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
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<link rel="shortcut icon" href="sites/saros-project.org/themes/saros/favicon.ico.html" type="image/vnd.microsoft.icon" />
<link rel="shortlink" href="node/24.html" />
<link rel="canonical" href="ReleaseProcess.html" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<title>Release Process | Saros</title>
<style type="text/css" media="all">
@import url("modules/system/system.base.css");
@import url("modules/system/system.menus.css");
@import url("modules/system/system.messages.css");
@import url("modules/system/system.theme.css");
</style>
<style type="text/css" media="all">
@import url("sites/all/modules/ldap/ldap_user/ldap_user.css");
@import url("modules/book/book.css");
@import url("modules/comment/comment.css");
@import url("modules/field/theme/field.css");
@import url("modules/node/node.css");
@import url("modules/search/search.css");
@import url("sites/all/modules/toc_filter/toc_filter.css");
@import url("modules/user/user.css");
@import url("modules/forum/forum.css");
</style>
<style type="text/css" media="all">
@import url("sites/all/modules/ctools/css/ctools.css");
@import url("sites/all/modules/ldap/ldap_servers/ldap_servers.admin.css");
</style>
<style type="text/css" media="all">
@import url("sites/saros-project.org/themes/touch/style.css");
@import url("sites/saros-project.org/themes/saros/saros_style.css");
</style>
<script type="text/javascript" src="misc/jquery.js%3Fv=1.4.4.html"></script>
<script type="text/javascript" src="misc/jquery.once.js%3Fv=1.2.html"></script>
<script type="text/javascript" src="misc/drupal.js%3Fp9abym.html"></script>
<script type="text/javascript" src="sites/all/modules/toc_filter/toc_filter.js%3Fp9abym.html"></script>
<script type="text/javascript" src="sites/saros-project.org/themes/touch/js/scrolltopcontrol.js%3Fp9abym.html"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"saros","theme_token":"3CJ_2_c-ClO_hwqBg6rOOIlkAvyShtbqkwulLH0z4Yk","js":{"misc\/jquery.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/toc_filter\/toc_filter.js":1,"sites\/saros-project.org\/themes\/touch\/js\/scrolltopcontrol.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/system\/system.menus.css":1,"modules\/system\/system.messages.css":1,"modules\/system\/system.theme.css":1,"sites\/all\/modules\/ldap\/ldap_user\/ldap_user.css":1,"modules\/book\/book.css":1,"modules\/comment\/comment.css":1,"modules\/field\/theme\/field.css":1,"modules\/node\/node.css":1,"modules\/search\/search.css":1,"sites\/all\/modules\/toc_filter\/toc_filter.css":1,"modules\/user\/user.css":1,"modules\/forum\/forum.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/ldap\/ldap_servers\/ldap_servers.admin.css":1,"sites\/saros-project.org\/themes\/touch\/style.css":1,"sites\/saros-project.org\/themes\/saros\/saros_style.css":1}},"toc_filter_smooth_scroll_duration":"","urlIsAjaxTrusted":{"\/ReleaseProcess":true}});
//--><!]]>
</script>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body class="html not-front not-logged-in one-sidebar sidebar-first page-node page-node- page-node-24 node-type-page" >
<div id="wrapper" class="clearfix">
<div id="header-top" class="clearfix">
<div id="logo"><!--start logo-->
<a id="site_name_link" href="index.html" title="Home">
<img src="sites/saros-project.org/files/saros-logo-100x100.png" alt="Home" />
</a>
<div id="name_slogan">
<a id="site-name" href="index.html" title="Home" rel="home"><span>Saros</span></a>
<br/>
<a id="site-slogan" id="site-name" href="index.html" title="Home" rel="home"><span>Distributed Party Programming</span></a>
</div><!--end name_slogan-->
<!--div id="site-slogan">Distributed Party Programming</div><!--site slogan-->
</div><!--end logo-->
<!-- / start search box region -->
<div class="search-box">
<div class="region region-search-box">
<div id="block-search-form" class="block block-search">
<div class="content">
<form action="ReleaseProcess.html" method="post" id="search-block-form" accept-charset="UTF-8"><div><div class="container-inline">
<h2 class="element-invisible">Search form</h2>
<div class="form-item form-type-textfield form-item-search-block-form">
<label class="element-invisible" for="edit-search-block-form--2">Search </label>
<input title="Enter the terms you wish to search for." type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" />
</div>
<div class="form-actions form-wrapper" id="edit-actions"><input type="submit" id="edit-submit" name="op" value="Search" class="form-submit" /></div><input type="hidden" name="form_build_id" value="form-HM6fgnTWqoWvlF9NTD0SAe_Yi4LZvr5jCE9COz7OnX0" />
<input type="hidden" name="form_id" value="search_block_form" />
</div>
</div></form> </div>
</div> <!-- /.block -->
</div>
<!-- /.region -->
</div> <!-- / end search box region -->
</div><!--end header-top-->
<div id="header" class="clearfix"><!--start header-->
<div id="main-menu">
<ul class="menu"><li class="first leaf"><a href="home.html" title="Frontpage">Home</a></li>
<li class="expanded"><a href="node/66.html">About Saros</a><ul class="menu"><li class="first leaf"><a href="features.html" title="List of Saros features">Features</a></li>
<li class="leaf"><a href="screenshots.html" title="Get impressions with screenshots">Screenshots</a></li>
<li class="leaf"><a href="host-comic.html">Saros Host Comic</a></li>
<li class="leaf"><a href="what-others-say.html" title="Information about where Saros has been mentioned">What others say</a></li>
<li class="last leaf"><a href="history.html" title="Development history and people involved">History</a></li>
</ul></li>
<li class="expanded"><a href="setup.html" title="Learn how to use Saros">Installation & Set-Up</a><ul class="menu"><li class="first expanded"><a href="installation.html" title="Installing Saros in Eclipse">Install Saros</a><ul class="menu"><li class="first last leaf"><a href="setupXMPP.html" title="Setup your own XMPP Server (Advanced Users)">Setup own XMPP Server</a></li>
</ul></li>
<li class="last leaf"><a href="GettingStarted.html">Getting Started with Saros</a></li>
</ul></li>
<li class="expanded"><a href="support_home.html">Support</a><ul class="menu"><li class="first leaf"><a href="mailing-list-chat.html" title="Information on how to reach the Saros team via mailing lists">Mailing Lists</a></li>
<li class="leaf"><a href="troubleshooting.html" title="Known problems when using Saros">Troubleshooting</a></li>
<li class="leaf"><a href="faq.html" title="Frequently asked questions">Saros FAQ</a></li>
<li class="leaf"><a href="compatibility.html">Plugin Compatibility</a></li>
<li class="last leaf"><a href="feedback.html" title="Information about the feature feedback">User Survey & Statistics</a></li>
</ul></li>
<li class="expanded active-trail"><a href="getinvolved.html" title="Learn how to develop on Saros" class="active-trail">Develop on Saros</a><ul class="menu"><li class="first expanded"><a href="checkout-and-first-steps.html">Check-Out and First Steps</a><ul class="menu"><li class="first expanded"><a href="setup-dev-environment.html">Set up development environment</a><ul class="menu"><li class="first leaf"><a href="dev-environment-reqs.html">Environment Requirements</a></li>
<li class="leaf"><a href="install-subclipse.html">Install Subclipse for building Saros/E</a></li>
<li class="leaf"><a href="install-egit.html">Install EGit</a></li>
<li class="leaf"><a href="our-dev-workflow.html">Our workflow</a></li>
<li class="leaf"><a href="gerrit-login.html">Log in to Gerrit</a></li>
<li class="leaf"><a href="eclipse-setup-git.html">Setting your name and email address for using Gerrit</a></li>
<li class="leaf"><a href="eclipse-setup-ssh.html">Create and configure an SSH key for using Gerrit</a></li>
<li class="leaf"><a href="get-source-code.html">Get Saros source code</a></li>
<li class="leaf"><a href="import-code-style-profiles.html">Import code style profiles</a></li>
<li class="last leaf"><a href="run-saros-as-dev.html">Run your Saros</a></li>
</ul></li>
<li class="last expanded"><a href="make-first-change.html">Making changes to Saros</a><ul class="menu"><li class="first leaf"><a href="node/124.html">Create a new local branch</a></li>
<li class="leaf"><a href="node/125.html">Doing your first change</a></li>
<li class="leaf"><a href="commit-and-push-first-change.html">Commit and push your change</a></li>
<li class="last leaf"><a href="node/127.html">Abandon your change in Gerrit</a></li>
</ul></li>
</ul></li>
<li class="collapsed"><a href="ongoing-work.html">Ongoing Work</a></li>
<li class="expanded"><a href="guidelines.html">Guidelines</a><ul class="menu"><li class="first leaf"><a href="contribution.html">Contribution Rules</a></li>
<li class="collapsed"><a href="coderules.1.html" title="Coding Guidelines and Rules">Coding Conventions</a></li>
<li class="leaf"><a href="usability.html" title="Guidelines to ensure Usability">Usability Guidelines</a></li>
<li class="leaf"><a href="TicketGuidelines.html">Ticket Guidelines</a></li>
<li class="last leaf"><a href="ci-rules.html">Jenkins Rules</a></li>
</ul></li>
<li class="collapsed"><a href="tools.html">Tools</a></li>
<li class="expanded active-trail"><a href="processes.html" title="Processes in Saros" class="active-trail">Processes</a><ul class="menu"><li class="first leaf"><a href="review.html" title="Information about the review process">Review</a></li>
<li class="leaf active-trail"><a href="ReleaseProcess.html" title="Our Release Process" class="active-trail active">Release</a></li>
<li class="expanded"><a href="testing.html" title="Information about the testing process">Testing</a><ul class="menu"><li class="first last leaf"><a href="jenkins.html">Jenkins and Saros</a></li>
</ul></li>
<li class="leaf"><a href="bugtracker.html" title="Watch the bug tracker">Bug Tracking</a></li>
<li class="last leaf"><a href="documentation.html" title="Information about the documentation process">Documentation</a></li>
</ul></li>
<li class="leaf"><a href="mailingslists.html">Mailinglists</a></li>
<li class="leaf"><a href="https://sourceforge.net/p/dpp/bugs/" title="">Bug Tracker</a></li>
<li class="leaf"><a href="https://sourceforge.net/projects/dpp/" title="Visit Saros at Sourceforge">Saros@Sourceforge</a></li>
<li class="collapsed"><a href="gsoc.1.html">Google Summer of Code</a></li>
<li class="last expanded"><a href="node/129.html">FAQ in daily practice</a><ul class="menu"><li class="first leaf"><a href="node/132.html" title="A change was integrated to master. How can I update my local code?">Update local code to master</a></li>
<li class="leaf"><a href="node/130.html" title="I messed up my local copy of Saros. How can I reset/clean up/revert my changes?">Revert local changes</a></li>
<li class="leaf"><a href="upload-new-patch-set.html" title="Someone discovered an error/failure/typo. How can I upload a new patch set?">Upload a new patch set</a></li>
<li class="leaf"><a href="node/133.html" title="My build failed. What's wrong with my change?">Building in Gerrit failed!</a></li>
<li class="leaf"><a href="gerrit-checkout-patch.html" title="Someone uploaded a change to Gerrit. How can I test this change?">Get & run someones change</a></li>
<li class="leaf"><a href="node/145.html" title="What is a Change? Patch set? Submit?">Change? Patch set? Submit?</a></li>
<li class="leaf"><a href="gerrit-groups-and-permissions.html" title="Which permissions do I have?">Check Gerrit permissions</a></li>
<li class="leaf"><a href="node/142.html" title="How to delete an unwanted local branch in EGit?">Delete local branch</a></li>
<li class="leaf"><a href="node/136.html">Duplicate Location Error</a></li>
<li class="leaf"><a href="gerrit-review.html" title="Someone wants that I review a change. How to review a change?">Review a change</a></li>
<li class="leaf"><a href="node/140.html" title="How to run Saros STF tests locally?">Run STF tests locally</a></li>
<li class="leaf"><a href="node/139.html" title="I ran an STF test (located in test/stf) and get an error! What's wrong?">STF tests fail</a></li>
<li class="leaf"><a href="node/138.html" title="How to set up Saros for running local STF tests?">Set up STF tests</a></li>
<li class="leaf"><a href="node/144.html" title="I want automate my testing process. How to write my own STF tests?">Write STF tests</a></li>
<li class="last leaf"><a href="git-recipes.html">Git use-cases</a></li>
</ul></li>
</ul></li>
<li class="expanded"><a href="techdoc.html" title="Technical Documentation">Technical Documentation</a><ul class="menu"><li class="first leaf"><a href="architectureDocumentation.html">Architecture Documentation</a></li>
<li class="leaf"><a href="specoverview.html">Overview</a></li>
<li class="leaf"><a href="concurrency.html" title="Information about Concurrency">Concurrency</a></li>
<li class="leaf"><a href="eclipsebridge.html">Eclipse Bridge</a></li>
<li class="leaf"><a href="packageFeedback.html" title="Information about the feedback feature">Feedback</a></li>
<li class="leaf"><a href="invitation.html" title="Information about invitation">Invitation</a></li>
<li class="leaf"><a href="networklayer.html" title="Information about the network layer">Network Layer</a></li>
<li class="expanded"><a href="sharedsession.html" title="Information about shared session">Shared Session</a><ul class="menu"><li class="first last leaf"><a href="activities.html" title="Information about activities">Activities</a></li>
</ul></li>
<li class="last leaf"><a href="ui.html" title="Information about user interface">User Interface</a></li>
</ul></li>
<li class="expanded"><a href="research.html" title="Research">Research</a><ul class="menu"><li class="first leaf"><a href="bibliography.html" title="Saros related literature">Bibliography</a></li>
<li class="last leaf"><a href="relatedwork.html">Related Work</a></li>
</ul></li>
<li class="last leaf"><a href="contact.html">Contact</a></li>
</ul></div><!-- end main-menu -->
</div> <!-- /#header -->
<div id="content-body">
<div class="breadcrumb"><h2 class="element-invisible">You are here</h2><nav class="breadcrumb"><a href="index.html">Home</a> » <a href="getinvolved.html" title="Learn how to develop on Saros">Develop on Saros</a> » <a href="processes.html" title="Processes in Saros">Processes</a> » Release Process</nav></div>
<section id="main" role="main" class="clear">
<a id="main-content"></a>
<h1 class="title" id="page-title">Release Process</h1> <div class="region region-content">
<div id="block-system-main" class="block block-system">
<div class="content">
<span property="dc:title" content="Release Process" class="rdf-meta element-hidden"></span><span property="sioc:num_replies" content="0" datatype="xsd:integer" class="rdf-meta element-hidden"></span>
<div class="content">
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Here you will find our release process including the involved roles and their activities, and how they interact to create a new Saros release.</p>
<ul><li><a href="ReleaseProcess.html#When">When?</a></li>
<li><a href="ReleaseProcess.html#Roles">Roles</a></li>
<li><a href="ReleaseProcess.html#Preparation">Preparation</a></li>
<li><a href="ReleaseProcess.html#ReleaseWeek">The Release Week</a></li>
<li><a href="ReleaseProcess.html#HowTos">How to ...</a>
<ul><li><a href="ReleaseProcess.html#CreateReleaseBranch">... create the release branch</a></li>
<li><a href="ReleaseProcess.html#How_to_prepare_the_User_Acceptan">... prepare the User Acceptance Test</a></li>
<li><a href="ReleaseProcess.html#How_to_create_a_new_release">... create the Saros release</a></li>
<li><a href="ReleaseProcess.html#How_to_announce_a_new_release">... announce the new Saros release</a></li>
<li><a href="ReleaseProcess.html#How_to_merge">... merge the release branch back</a></li>
</ul></li>
<li>Other things
<ul><li><a href="ReleaseProcess.html#How_to_create_a_ssh_key_forSourc">How to create a ssh key for Sourceforge on Windows</a></li>
<li><a href="ReleaseProcess.html#How_to_make_a_re_release">How to make a re-release</a></li>
<li><a href="ReleaseProcess.html#Updating_Dependencies">Updating Dependencies</a></li>
</ul></li>
</ul><hr /><h2 id="When">When?</h2>
<ul><li>Releases happen through a time-based model, normally in the <strong>last full working week</strong> of every month.</li>
</ul><h2 id="Roles">Roles</h2>
<p>Everyone is involved in the release process to some degree -- at least as a <img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Person-Male-Light-icon.png" style="width: 16px; height: 16px;" /><strong>Developer (D)</strong>. Specifically, these are the roles and their responsibilities:</p>
<div class="note">
<p><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/32/Office-Customer-Male-Light-icon.png" style="width: 32px; height: 32px;" />Release Manager (RM)</strong></p>
<ul><li>is responsible for the Saros release as a whole</li>
<li>this includes having the last word on which bugs are "critical"</li>
<li>receives help from the <strong>Assistant Release Manager (ARM)</strong></li>
</ul><p><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/32/Medical-Nurse-Male-Light-icon.png" style="width: 32px; height: 32px;" />Test Manager (TM)</strong></p>
<ul><li>is responsible for assuring the quality of the release</li>
<li>currently, he does so through creating and executing the test plan</li>
<li>receives help from the <strong>Assistant Test Manager (ATM)</strong></li>
</ul><p><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/32/Occupations-Writer-Male-Light-icon.png" style="width: 32px; height: 32px;" />Documentation Manager (DM)</strong></p>
<ul><li>is responsible that both our code documentation and the Saros website do not lag behind the development</li>
</ul><p><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/32/Person-Male-Light-icon.png" style="font-size: 13.0080003738403px; line-height: 20.0063037872314px; width: 32px; height: 32px;" /><strong style="font-size: 13.0080003738403px; line-height: 20.0063037872314px;">Developer (D)</strong></p>
<ul><li><span style="font-size: 13.0080003738403px; line-height: 20.0063037872314px;">is everyone, including the roles mentioned above</span></li>
<li><span style="font-size: 13.0080003738403px; line-height: 20.0063037872314px;">works on documentation issues or bug fixes</span></li>
</ul></div>
<p>The rest of this process description is <em>a recipe</em> how to fulfill the above responsibilities in order to create a new Saros release within one working week. It consists of checklists and timings, <em>none of which are absolutely mandatory</em>.<br />We consider ourselves capable software developers and responsible team players. So if you find another (a better?) way to fulfill your responsibilities (without hampering the other developers in fulfilling theirs), you're free to do so. However, the lists below provide a pretty good guideline, so consider sticking to them for a while.</p>
<h2 id="Preparation">Preparation</h2>
<p>There are a few things that need to be done before the Release Week can start. The right time are the last days of the week before the Release Week.</p>
<h3>Assign the roles</h3>
<p>Feel free to volunteer! Otherwise, role assignment is done by Franz. These are the guidelines:</p>
<ul><li>The RM should be someone who did not participate in a Saros release process before.</li>
<li>The ARM should be someone who was (A)RM more than once.</li>
<li>The TM should be someone who did not assume the TM role before.</li>
<li>The ATM should be someone who was (A)TM before.</li>
</ul><h3>Create missing accounts</h3>
<ul><li><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Person-Male-Light-icon.png" style="width: 16px; height: 16px;" />D </strong>(the <strong>whole team</strong>, i.e. <strong>everyone </strong>incl. <strong>you</strong>):
<ul><li>Make sure you <a href="https://sourceforge.net/user/registration" target="_blank">have a Sourceforge account</a> that is assigned to the Saros project. If Saros is not listed among your projects (to check: <a href="https://sourceforge.net/auth/" target="_blank">login to Sourceforge</a>, top left corner "Me" > "Profile"), tell Franz your account name and he will add you.</li>
<li>Make sure you have <em>Author </em>access to this website (saros-project.org).
<ul><li>If you are with Freie Universität Berlin, you can use your Zedat credentials to <a href="index.html%3Fq=user.html">login</a>. Ask Franz afterwards to grant you <em>Author </em>rights.</li>
<li>Otherwise, contact Franz and he will create an account for you.</li>
</ul></li>
<li>Make sure you <a href="https://groups.google.com/forum/#!forum/saros-devel" target="_blank">subscribed saros-devel</a>.</li>
</ul></li>
<li><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>RM </strong>and <strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>ARM</strong>:
<ul><li>Make sure you are <a href="http://saros-build.imp.fu-berlin.de/gerrit/#/settings/group-memberships" target="_blank">in the Gerrit group</a> "Release-Managers". If you are not, ask Franz to do something about it.</li>
<li>Make sure <a href="ReleaseProcess.html#How_to_create_a_ssh_key_forSourc">Sourceforge knows about your public SSH key</a>.</li>
<li>Ask Franz to make sure you are a <a href="https://sourceforge.net/p/dpp/admin/files/releasers/">Sourceforge "Release Technician"</a>.</li>
<li>Ask Franz to make sure you are in the <a href="https://sourceforge.net/p/dpp/admin/groups/" target="_blank">Sourceforge group</a> "Release-Manager".</li>
<li>Ask Franz to make sure you are a <a href="https://groups.google.com/forum/#!forum/saros-announce">non-moderated member of the saros-announce</a> list.</li>
</ul></li>
<li><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Occupations-Writer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>DM</strong>:
<ul><li>Ask Franz to make sure you are in the <a href="https://sourceforge.net/p/dpp/admin/groups/" target="_blank">Sourceforge group</a> "Tracker-Admin".</li>
</ul></li>
</ul><h2 id="ReleaseWeek">The Release Week</h2>
<p>This section gives an overview of the roles' activities. Technical details for these tasks follow below.</p>
<h3>Monday</h3>
<ul><li>Before 12:00:
<ul><li><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>RM </strong>creates a <a href="ReleaseProcess.html#CreateReleaseBranch">new release branch from the master branch</a></li>
<li><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Occupations-Writer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>DM </strong>checks all non-closed entries from the <a href="https://sourceforge.net/p/dpp/documentation-issues/" target="_blank">Documentation Issue Tracker</a>, while focusing (not slavishly) on those assigned to the current milestone/release.
<ul><li>Close if the documentation issue is resolved. Some open issues might be obsolete, e.g. when they refer to packages/features that do no longer exist. Close these issues as <em>invalid</em>.</li>
</ul></li>
</ul></li>
<li>Before 16:00:
<ol><li><strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>RM </strong>and <strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>ARM </strong>create the <strong>Changelog</strong>, a list of newly fixed bugs and features and send it to <code>saros-devel</code>
<ul><li>Use the Git <a href="https://github.com/saros-project/saros/commits/master" target="_blank">commit history</a> as a starting point. Look for commits with the tags <code>[GUI]</code>, <code>[FEATURE]</code>, or <code>[FIX]</code>; it should be safe to ignore <code>[INTERNAL]</code> and <code>[REFACTOR]</code> commits.</li>
<li>Look at the <a href="https://sourceforge.net/p/dpp/bugs/" target="_blank">bug tracker</a> for the entries referenced in the <code>[FIX]</code> commits; make sure they are in the state "pending-fixed" (i.e. they are technically fixed, but not yet released to the wide public).</li>
<li>Describe how the fixed bugs can be reproduced. This is especially useful for the testers.</li>
<li>Try to sort items by importance and write in a language which <em>users </em>can understand (if you run out of time, this sub-task can be deferred until Friday).</li>
<li>For each item on the list, please include the author's name</li>
<li><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>TM</strong> and <strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong><strong>ATM</strong> might help in this progress (they are blocked by this anyway), especially when the commit history is long</li>
</ul></li>
<li>(a) <strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>TM </strong>and <strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>ATM </strong>use the <strong>Changelog </strong>created by the RMs to compile a <strong>Test Plan</strong> to cover all these new features (incl. GUI changes) and fixed bugs
<ul><li>You may want to ask the original commit author for ways to reproduce newly fixed bugs</li>
<li>Also: Consider backward-compatibility. In a test session, one person should use the release branch version, the other uses the previous Saros release. This information is important in the releasing process that follows.</li>
</ul></li>
</ol><ol start="2"><li>(b) As soon as the RMs completed their <strong>Changelog</strong>, the<strong> <strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Occupations-Writer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>DM </strong>adds new documentation issues, prioritizes and assigns them to the developers.
<ul><li>For the newly introduced <code>[FEATURE]</code>s and changes to the <code>[GUI]</code>: Are they adequately represented on our website? See also: <a href="documentation.html#DocIssuePrios">Documentation issue priorities</a>.</li>
<li>Assign each open issue to someone with the knowledge to work on it: start with the highest priority, aim for an even distribution; leave it as<em> "assigned to: none"</em> only if there really is no one.</li>
<li>Send the list with the assigned documentation issues to <code>saros-devel</code>, e.g. like this<br /><pre>Assignee 1:
* #127 [Code] Saros editor package: package description (package-info.java) is missing
* #156 [Website] GettingStarted: add instructions on how to add someone to the contact list
Assignee 2:
* #134 ...
</pre></li>
</ul></li>
</ol></li>
</ul><h3>Tuesday</h3>
<ul><li>10:00-16:00 - <strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>TM </strong>& <strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong><strong>ATM </strong>execute the test plan (assisted by RM & ARM)
<ul><li>Test managers close entries in the bug tracker that are verified as fixed (new status "closed-fixed")</li>
</ul></li>
<li>after 16:00 - <strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong>RM</strong> decides which of the discovered/still-open bugs are <em>critical </em>(= no release without them being fixed); <strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>TM </strong>sends to <code>saros-devel</code> ...
<ul><li>the list of the critical bugs</li>
<li>a list of comments on the Changelog (in particular whether a <code>[FIX]</code> or actually worked)</li>
<li>all logfiles generated during the tests as one big archive</li>
</ul></li>
<li>Before the TM's mail on <code>saros-devel</code> arrives: <strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Person-Male-Light-icon.png" style="width: 16px; height: 16px;" />Everyone else</strong> takes the time to correct/complete the documentation issues (see also <a href="documentation.html#DocIssues">How to handle documentation issues</a>). Mark the tracker issue as "fixed" when you're done.
<ul><li>In case you really don't find the time to take care of the issues assigned to you during the release week, please do so in the following week.</li>
</ul></li>
</ul><h3>Wednesday</h3>
<ul><li>The <img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Person-Male-Light-icon.png" style="width: 16px; height: 16px;" /><strong>whole team</strong> fixes critical bugs on the release branch.
<ul><li>Use slack time to work on your documentation issues.</li>
</ul></li>
<li>The <strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong><strong>RM </strong>makes arrangements for the user acceptance test:
<ul><li>Inform the <strong>working group</strong> (i.e. contact <a href="http://www.mi.fu-berlin.de/w/Main/FranzZieris" target="_blank">Franz Zieris</a>) about the progress and the anticipated date of completion. The working group will find a time slot for testing, and then infors the RM about the agreed time slot.</li>
<li>Once all critical bugs are fixed on the release branch, the <a href="ReleaseProcess.html#How_to_prepare_the_User_Acceptan">prepare the beta-update site</a> for the user acceptance test.</li>
<li>Send the changelog to the working group so they know on which parts to pay particular attention.</li>
</ul></li>
</ul><h3>Thursday</h3>
<ul><li>The <strong>working group</strong> performs the user acceptance test.
<ul><li>After the test, the working group sends their feedback, logfiles, and references to new bug tracker entries (if any) to the RM.</li>
<li><em>Note: Sometimes, the working group is able to perform their test already on Wednesday, which leaves more time for the development team to fix any showstoppers before Friday.</em></li>
</ul></li>
<li><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Person-Male-Light-icon.png" style="width: 16px; height: 16px;" />Everyone</strong>: If you <em>still </em>got documentation issues left: Work on them.</li>
</ul><h3>Friday</h3>
<ul><li>09:00-14:00 - The <img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Person-Male-Light-icon.png" style="width: 16px; height: 16px;" /><strong>whole team</strong> works on any newly found critical bugs on the release branch</li>
<li>14:00 - The release begins
<ul><li><strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>RM </strong>+ <strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>TM </strong>perform a last sanity test check and <a href="testing.html#How_to_run_the_JUnit_test_cases" target="_blank">run the JUnit test cases locally</a>.</li>
<li><strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Medical-Nurse-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>TM </strong>closes all additional bugs, that have been fixed in the meantime (new status "closed-fixed")</li>
<li><strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>RM </strong> <a href="ReleaseProcess.html#How_to_create_a_new_release">performs the release</a></li>
<li><strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>RM</strong> <a href="ReleaseProcess.html#How_to_announce_a_new_release">announces the new release</a> on <code>saros-devel</code>, <code>saros-announce</code>, and the Sourceforge news section</li>
<li><strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>RM </strong> <a href="ReleaseProcess.html#How_to_merge">merges the release branch back </a>into the master branch</li>
<li><strong><strong><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Office-Customer-Male-Light-icon.png" style="width: 16px; height: 16px;" /></strong></strong>RM </strong>tells everybody that they did a good job</li>
<li><strong><img alt="" src="http://icons.iconarchive.com/icons/icons-land/vista-people/16/Person-Male-Light-icon.png" style="width: 16px; height: 16px;" />Everyone</strong>: Party.</li>
</ul></li>
</ul><hr /><h2 id="HowTos">How Tos</h2>
<h3 id="CreateReleaseBranch">How to create the release branch</h3>
<p class="yellowbox">Note: This section needs an update to include the Core project.</p>
<p class="yellowbox">ToDo: Switch to <a href="http://www.semver.org." target="_blank">semantic versioning</a>.</p>
<div>Let's assume we are currently preparing a release on <strong>2013-12-06</strong>, thus the release id is <code> <strong>13.12.6</strong></code>. Your task is to create a branch for the current release <strong> <code>13.12.6</code> </strong>, but also prepare the <code>master </code>for development for the next release, <code>14.1.31</code>.</div>
<ul><li>Update your local repository
<ul><li>make sure <code>origin/master</code> points to the desired commit</li>
<li>switch to the <code>master</code> branch</li>
<li>make sure you have no local commits on top of <code>origin/master</code>, e.g. by using a <code>git reset --hard</code>.</li>
</ul></li>
<li>Prepare the <code>master</code>
<ul><li>In the <code>master</code>, edit <code>META-INF/MANIFEST.MF</code> for the projects Saros and Saros Whiteboard<code>,</code> and set the Bundle-Version to the next release. The format is <code>$next release id$.DEVEL</code>, so in this case it's <code><strong>14.1.31</strong>.DEVEL</code>.</li>
<li>Commit it; the commit message should be "<code>[BUILD] Master ready for development towards <strong>14.1.31</strong></code>"</li>
<li>Push the change to Gerrit, to <code>refs/for/master</code>.</li>
<li>Jenkins will run the JUnit tests; the <strong>ARM </strong>will review this patch.</li>
<li>After Jenkins and ARM approved: Submit the commit.</li>
</ul></li>
<li>Create the release branch.
<ul><li>Right click the project -> Team -> Switch To -> New Branch.</li>
<li>Call the branch <code>release/<strong>13.12.6</strong> </code> and base it off <code>refs/remotes/origin/master</code>.</li>
<li>Push this commit to <code>refs/heads/release/<strong>13.12.6</strong> </code> on Gerrit. This will create the new branch in the system.</li>
<li>In the branch
<ul><li>edit <code>META-INF/MANIFEST.MF</code> for the projects Saros and Saros Whiteboard, and set the Bundle-Version to <code>$current release id$.TESTING</code> (in this case <code> <strong>13.12.6</strong>.TESTING</code>)</li>
<li>make sure that in project Saros the file saros.properties contains the line:<br /><code>de.fu_berlin.inf.dpp.debug=true</code></li>
</ul></li>
<li>The commit message should be something like "<code>[BUILD] Open release branch <strong>13.12.6</strong></code>"</li>
<li>Push this commit to Gerrit, to <code>refs/for/release/<strong>13.12.6</strong></code></li>
<li>Jenkins will run the JUnit tests; the <strong>ARM </strong>will review this patch.</li>
<li>After Jenkins and ARM approved: Submit the commit.</li>
<li><em>Note: Gerrit's replication config needs to be amended so the new release branch is mirrored to GitHub.</em></li>
</ul></li>
<li>Announce the branch to <code>saros-devel</code> as open for testing using the following template:<br /><pre>Release Branch is open for testing
-> https://github.com/saros-project/saros/tree/release/13.12.6
* The branch is ready to be tested
* Only bug-fixes should be committed to the branch
* Remember to push to refs/for/release/13.12.6
* Bug-fixes in the branch will be merged when 13.12.6 is released
Master is open for 14.1.31.DEVEL
-> https://github.com/saros-project/saros/tree/master
* All new features should go to master
* Remember to push to refs/for/master
</pre></li>
</ul><hr /><h3 id="How_to_prepare_the_User_Acceptan">How to prepare the User Acceptance Test</h3>
<p class="yellowbox">Note: There is actually no need for the "update_beta" project. We should use the normal "update" project instead, which will then be changed twice on the release branch, and delete the update_beta project once the HowTo below is adapted.</p>
<h4>Preconditions</h4>
<div>Before you can roll-out the actual release of Saros, you need to prepare the Eclipse Update Site for the acceptance test (<a href="http://dpp.sf.net/update-beta" target="_top">http://dpp.sf.net/update-beta</a>). As for the actual release, there are some important preconditions:</div>
<div class="note">
<ul><li><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/">Eclipse 3.6</a> for building the test files.</li>
<li>Up-to-date working copy and the following projects in your Eclipse workspace
<ul><li>Saros Eclipse plugin: <code>de.fu_berlin.inf.dpp</code></li>
<li>Saros core project: <code>de.fu_berlin.inf.dpp.core</code></li>
<li>Whiteboard plugin: <code>de.fu_berlin.inf.dpp.whiteboard</code></li>
<li>Saros Eclipse Feature: <code>de.fu_berlin.inf.dpp.feature</code></li>
<li>Saros Eclipse Update Site for Beta tests: <code>de.fu_berlin.inf.dpp.update_beta</code></li>
</ul></li>
</ul></div>
<h4>Step-by-Step</h4>
<p class="yellowbox">Note: This section needs an update to include the Core project.</p>
<ol><li>In each of the projects <strong>Saros</strong> and <strong>Whiteboard</strong>:
<ul><li>File <code>META-INF/MANIFEST.MF</code>: Make sure that the version number is set to <code> <strong>13.12.6</strong></code><code>.TESTING</code></li>
</ul></li>
<li>In the <strong>Feature </strong>project:
<ul><li>File <code>feature.xml</code>: Make sure that all version numbers are set to <code> <strong>13.12.6</strong></code><code>.TESTING</code></li>
<li>Update plugin version of feature<br /><ol start="1" style="list-style-type: lower-alpha;"><li>Go to tab <em>Plug-ins</em></li>
<li>Make sure <code>de.fu_berlin.inf.dpp</code> and <code>de.fu_berlin.inf.dpp.whiteboard</code> and <code>de.fu_berlin.inf.dpp.core </code>are included</li>
<li>For all projects, click on <em>Versions...</em></li>
<li>Select <em>Copy versions from plugin and fragment manifests</em></li>
<li>Press <em>Finish</em></li>
<li>(Make sure the version in the overview tab is correct.)</li>
</ol></li>
</ul></li>
<li>Prepare the <strong>Beta Update Site</strong> project. Edit the <code>site.xml</code>.<br /><ol start="1" style="list-style-type: lower-alpha;"><li>Go to tab <em>Site Map</em></li>
<li>Remove the previous feature (right-click > "Remove")</li>
<li>Add current feature ("Add Feature" > select "<code>de.fu_berlin.inf.dpp.feature (</code><code><strong>13.12.6</strong></code><code>.TESTING)</code>")</li>
<li>Go to tab <em>Archives</em></li>
<li>In the section "Archive Mapping" adjust the version numbers in the three entries</li>
<li>Save the file <code>site.xml</code></li>
</ol></li>
<li>Build the update site<br /><ol start="1" style="list-style-type: lower-alpha;"><li>Press <em>Build </em>button on the selected new version in Site Map tab
<ul><li>This will create the two folders <code>plugins/</code> and <code>features/</code> and create jar files in them.</li>
<li>(NOTE: If they don't appear, it may help if you delete <code>artifacts.jar</code> and <code>content.jar</code>.)</li>
</ul></li>
</ol></li>
<li>Copy update-site to sourceforge<br /><ol start="1" style="list-style-type: lower-alpha;"><li>login with ssh into <code>[username],[email protected]</code> (e.g. with WinSCP)</li>
<li>copy the files <code>index.html</code> and <code>site.xml</code> as well as the folders <code>features/ </code>and <code>plugins/</code> into <code>htdocs/update-beta/</code></li>
<li>Make sure that all copied files have read/write permissions for group to allow other developers to overwrite and delete them</li>
<li>Make sure that all copied files have read permissions for everyone, otherwise users can't access our update site</li>
<li>This means the correct rights are <code>rwxrwsr-x</code> or <code>2775 </code>(folders) and <code>rw-rw-r--</code> or <code>664 </code>(files).</li>
</ol></li>
<li>Test the update-site out of an Eclipse of your choice: <a href="http://dpp.sf.net/update-beta" target="_top">http://dpp.sf.net/update-beta</a></li>
<li>Commit your changes (as "<code>[BUILD] Prepare update site for <strong>13.12.6</strong> beta test</code>") and push them to Gerrit (to <code>refs/for/release/<strong>13.12.6</strong></code>). Make sure your commit does not contain changes that go beyond these files (if it does, unstage them):
<ul><li><code>de.fu_berlin.inf.dpp.feature/feature.xml</code></li>
<li><code>de.fu_berlin.inf.dpp.update_beta/artifacts.jar</code></li>
<li><code>de.fu_berlin.inf.dpp.update_beta/content.jar</code></li>
<li><code>de.fu_berlin.inf.dpp.update_beta/site.xml</code></li>
</ul></li>
</ol><hr /><h3 id="How_to_create_a_new_release">How to create a new release</h3>
<h4>Preconditions</h4>
<div class="note">
<ul><li><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/">Eclipse 3.6</a> for building the release files.
<ul><li><strong>Do not use Eclipse 3.7</strong>! Eclipse 3.7 seems to have introduced an API incompatibility with previous versions via the method <code>org.osgi.framework.Version.compareTo()</code>. If Saros is compiled using Eclipse 3.7 it will not work on earlier versions.</li>
</ul></li>
<li>Up-to-date working copy and the following projects in your Eclipse workspace
<ul><li>Saros Eclipse plugin: <code>de.fu_berlin.inf.dpp</code></li>
<li>Saros core project: <code>de.fu_berlin.inf.dpp.core</code></li>
<li>Whiteboard plugin: <code>de.fu_berlin.inf.dpp.whiteboard</code></li>
<li>Saros Eclipse Feature: <code>de.fu_berlin.inf.dpp.feature</code></li>
<li>Saros Eclipse Update Site: <code>de.fu_berlin.inf.dpp.update</code></li>
</ul></li>
<li>A change log of all relevant changes (fixes, features and important GUI-changes) since the last release (the test manager can be asked for a compiled list of changes up until the release)</li>
<li>Eclipse with previous version of Saros installed (through update-site)</li>
</ul></div>
<h4>Step-by-Step</h4>
<p class="yellowbox">Note: This section needs an update to include the Core project.</p>
<ol><li>Prepare the release notes. For <a href="http://dfn.dl.sourceforge.net/project/dpp/saros/DPP%209.8.21.r1660/release-notes-9.8.21.r1660.txt" target="_top">an example look here</a>
<ul><li>Name the file <code>README </code>(this is necessary so it will be recognized by Sourceforge as the accompanying readme file).</li>
<li>Include
<ul><li>most important changes as a short natural-language paragraph (keep it simple)</li>
<li>notable Regressions (if any)</li>
<li>link to the update site: <code>http://dpp.sourceforge.net/update</code></li>
<li>link to the homepage: <code>.</code></li>
<li>detailed changelog in a language our <em>users </em>can understand</li>
<li>Thanks to:
<ul><li>Users who reported bugs and participated in our survey</li>
<li>Everybody who participated</li>
</ul></li>
</ul></li>
</ul></li>
<li>Make sure that you are on the release branch and that everything is up-to-date. Use <code>git reset --hard</code> followd by git clean -f to ensure that you do not have any local changes</li>
<li>In the <strong>Saros </strong>project
<ul><li>Update the <code>CHANGELOG </code>file</li>
<li>Update the <code>credits.txt</code> file</li>
<li>Go to the version compatibility configuration (file <code>version.comp</code>) and add a compatibility information</li>
<li>Make sure the <code>saros.properties</code> file sets the <code>de.fu_berlin.inf.dpp.debug</code> property to <code>false</code></li>
</ul></li>
<li>In each of the projects <strong>Saros </strong>and <strong>Whiteboard</strong>:
<ul><li>Go to <code>plugin.xml.</code> Set plugin version number (for instance <code> <strong>13.12.6</strong></code>) in the overview tab</li>
</ul></li>
<li>Prepare the <strong>Feature project</strong><br /><ol start="1" style="list-style-type: lower-alpha;"><li>Go to <code>feature.xml</code>. Set feature version number (for instance <code> <strong>13.12.6</strong> </code>)</li>
<li>Update plugin version of feature
<ol><li>Go to tab <em>Plug-ins</em></li>
<li>Make sure <code><code><span style="font-size:11px;">de.fu_berlin.inf.dpp.core</span>, </code>de.fu_berlin.inf.dpp</code>, and <code>de.fu_berlin.inf.dpp.whiteboard</code> are included</li>
<li>For all projects, click on <em>Versions...</em></li>
<li>Select <em>Copy versions from plugin and fragment manifests</em></li>
<li>Press <em>Finish</em></li>
<li>(Make sure the version in the overview tab is correct.)</li>
</ol></li>
</ol></li>
<li>Prepare the <strong>Update Site project</strong>. Edit the <code>site.xml</code> manually. We only provide the most recent Saros version.<br /><ol start="1" style="list-style-type: lower-alpha;"><li>Replace the version number in the <code>feature </code>tag; there are two version numbers.</li>
<li>Replace the version number in the three new <code>archive </code>tags (one for the <code>dpp </code>plugin, one for the core and for the <code>dpp.whiteboard</code> plugin). Each tag has two version numbers, update them too.</li>
</ol></li>
<li>Build the update site<br /><ol start="1" style="list-style-type: lower-alpha;"><li>Press <em>Build </em>button on the selected new version in <em>Site Map</em> tab
<ul><li>This will create the two folders <code>plugins </code>and <code>features </code>and create jar files in them.</li>
<li>(NOTE: If they don't appear, it may help if you delete <code>artifacts.jar</code> and <code>content.jar</code>.)</li>
</ul></li>
</ol></li>
<li>Create release on Sourceforge<br /><ol start="1" style="list-style-type: lower-alpha;"><li>Go to the <a href="http://sourceforge.net/projects/dpp/files/" target="_top">File Explorer on Sourceforge.net</a> (Admin -> File Explorer)
<ul><li>Create a new Folder "<code>DPP <strong>13.12.6</strong> </code>"</li>
<li>Upload the <code>README</code></li>
<li>Upload the jars created in the build step from the <code>plugins</code> directory</li>
</ul></li>
</ol></li>
<li>Copy update-site to Sourceforge<br /><ol start="1" style="list-style-type: lower-alpha;"><li>login with ssh as <code>[username],dpp</code> to <code>web.sourceforge.net</code> (e.g. using WinSCP)</li>
<li>copy <code>index.html</code>, <code>site.xm</code>l, and the <code>de.fu_berlin.inf.dpp.feature_<strong>13.12.6</strong>.jar</code> from the <code>features/ </code>folder into <code>htdocs/update/</code>
<ul><li>copy <code>web/</code> directory to <code>htdocs/update/</code> in the unlikely case the style files changed</li>
</ul></li>
<li>Make sure all copied files have the right permissions:
<ul><li>Make sure that all copied files have read/write permissions for group to allow other developers to overwrite or delete them</li>
<li>Make sure that all copied files have read permissions for everyone, otherwise users can't access our update site</li>
<li>This means the correct rights are <code>rwxrwsr-x</code> or <code>2775 </code>(folders) and <code>rw-rw-r--</code> or <code>664 </code>(files).</li>
</ul></li>
</ol></li>
<li>Test the update site:<br /><ol start="1" style="list-style-type: lower-alpha;"><li>Start an existing Eclipse with Saros installed.
<ul><li>Help -> Check for Updates (note that the update site may not be updated for some time...)</li>
</ul></li>
</ol></li>
<li>Create dropin archive:<br /><ol start="1" style="list-style-type: lower-alpha;"><li>File -> Export... -> Plug-in Development -> Deployable features</li>
<li>Choose feature</li>
<li>Destination: Directory</li>
<li>Choose target directory name: <code>saros-dropin-<strong>13.12.6</strong> </code></li>
<li>Check "Use class files from workspace" (otherwise JUnit won't be found which leads to compile errors)</li>
<li>Click Finish</li>
<li>In the dropin folder, <strong>delete</strong> the files <strong>artifacts.jar</strong> and <strong>content.jar</strong></li>
<li>Add the readme:<br /><span style="font-family:courier new,courier,monospace;">This is the Saros Eclipse plugin dropin archive. You can install it by unzipping it to eclipse/dropins and restarting Eclipse.</span></li>
<li>Create a .zip file from the folder</li>
<li>Upload archive to SourceForge
<ul><li>Select all operating systems (in order to make the dropin archive the default download)</li>
</ul></li>
</ol></li>
<li>Test the dropin archive. (See <a href="installation.html#installation-steps">instructions</a>.)</li>
<li>Commit your changes (as "<code>[BUILD] Changes necessary for Release <strong>13.12.6</strong></code>") and push the commit to Gerrit (on <code>refs/for/release/<strong>13.12.6</strong></code>). Make sure your commit does not contain changes that go beyond these files (unstage them otherwise):
<ul><li><span style="color:#000000;"><code>de.fu_berlin.inf.dpp.feature/feature.xml</code></span></li>
<li><span style="color:#000000;"><code>de.fu_berlin.inf.dpp.update/artifacts.jar</code></span></li>
<li><span style="color:#808080;"><code>de.fu_berlin.inf.dpp.update/</code></span><span style="color:#000000;"><code>content.jar</code></span></li>
<li><span style="color:#808080;"><code>de.fu_berlin.inf.dpp.update/</code></span><span style="color:#000000;"><code>site.xml</code></span></li>
<li><span style="color:#000000;"><code>de.fu_berlin.inf.dpp.whiteboard/META-INF/MANIFEST.MF</code></span></li>
<li><span style="color:#000000;"><code>de.fu_berlin.inf.dpp/CHANGELOG</code></span></li>
<li><span style="color:#808080;"><code>de.fu_berlin.inf.dpp/</code></span><span style="color:#000000;"><code>META-INF/MANIFEST.MF</code></span></li>
<li><span style="color:#808080;"><code>de.fu_berlin.inf.dpp/</code></span><span style="color:#000000;"><code>credits.txt</code></span></li>
<li><span style="color:#808080;"><code>de.fu_berlin.inf.dpp/</code></span><span style="color:#000000;"><code>saros.properties</code></span></li>
<li><span style="color:#808080;"><code>de.fu_berlin.inf.dpp/</code></span><span style="color:#000000;"><code>version.comp</code></span></li>
</ul></li>
</ol><hr /><h3 id="How_to_announce_a_new_release">How to announce a new release</h3>
<ul><li>The announcement mailing-list's address is <a href="mailto:[email protected]">[email protected]</a></li>
<li>Send the release notes to the list. See the <a href="https://sourceforge.net/mailarchive/forum.php?forum_name=dpp-announce" target="_top">dpp-announce archive</a> and <a href="https://groups.google.com/forum/#!forum/saros-announce">saros-announce</a> for reference.</li>
<li>Always include compatibility information:
<ul><li><em>This update breaks compatibility with previous versions of Saros. You should not use this version of Saros with previous versions.</em> <strong>OR</strong></li>
<li><em>This update is compatible with all Saros version since 10.9.19</em></li>
</ul></li>
</ul><hr /><h3 id="How_to_merge">How to merge</h3>
<ol><li>Make sure to fetch the most recent commits of the release and the master branch.</li>
<li>Use <code>git reset --hard</code> to set your working copy to the state of <code>origin/master</code>.</li>
<li>Use Git Merge to merge with the release branch (<code>git merge release/<strong>13.12.6</strong></code>), and the conflicts (<code>git mergetool</code>).
<ul><li>There should be conflicts in all <code>MANIFEST.MF</code> files because there were changes on the release branch as well as on the master branch. Always use the master version (e.g. <code> <strong>14.1.31</strong>.DEVEL</code>).</li>
<li>For all other conflicted files (if any), you may prefer the release-branch version because these changes were important bug-fixes.</li>
<li>In the unlikely case there were both bug-fixes (release-branch) <em>and </em>feature-developments (master-branch) in the same files there is no general rule. You'll have to use your software development skills to find a solution that incorporates both change types.</li>
</ul></li>
<li>Commit your changes (e.g. "<code>[BUILD] Merge 'release/<strong>13.12.6</strong>' back into 'master'</code>"), push your change to Gerrit (to <code>refs/for/master</code>), and watch for the result of the JUnit tests.
<ul><li>In case the JUnit tests or the compilation fails, fix the issue locally, amend your commit, and push it again.</li>
</ul></li>
<li>In case your conflict-resolving was trivial, you may approve your change yourself and submit it directly. The change will be integrated as a merge commit.</li>
</ol><hr /><h3 id="How_to_create_a_ssh_key_forSourc">How to create a ssh key for Sourceforge on Windows</h3>
<ol><li>Execute PuttyGen</li>
<li>select SSH-2 DSA and press Generate</li>
<li>move mouse until new key is generated</li>
<li>press Save private key and choose a filename to save private key on disk (ignore warning of empty passphrase)</li>
<li>copy public key into the clipboard</li>
<li>log in on <a href="https://sourceforge.net/account/login.php" target="_top">Sourceforge</a></li>
<li>go to <a href="https://sourceforge.net/account/ssh" target="_top">SSH Keys</a></li>
<li>paste your public key into the area labeled Authorized keys</li>
<li>click Update</li>
</ol><hr /><h3 id="How_to_make_a_re_release">How to make a re-release</h3>
<ul><li>Sometimes a critical bug is shipped with a release that just happened, that makes it necessary to re-release.</li>
<li>Since making a release is a lot of work and also is confusing to the users, we should use the following criteria to determine whether a re-release is appropriate:
<ul><li>Is the release unusable for users due to this bug?</li>
<li>Does the bug represent a regression?</li>
<li>Have less than 72 hours passed since the release?</li>
</ul></li>
<li>These rules can be bend at will, but it might also make sense to just withdraw the release, by updating site.xml</li>
</ul><ul><li>How a re-release is done:
<ul><li>The first rule is:
<ul><li>A release is always made from the release branch</li>
</ul></li>
<li>To achieve this, remember:
<ul><li>Fixes go to the release branch</li>
<li>Features go to trunk</li>
</ul></li>
<li>Once the release branch has been patched and fixed, the release is made from the branch. Afterwards the branch is merged to trunk to integrate the fixes to trunk.</li>
<li>If another bug is found, repeat:
<ul><li>Fixed go to the release branch</li>
<li>Features stay in trunk</li>
</ul></li>
<li>The second rule is:
<ul><li>Don't forget to merge back.</li>
</ul></li>
</ul></li>
</ul><hr /><h3 id="Updating_Dependencies">Updating Dependencies</h3>
<ol><li>The JARs should have their version numbers in the name.</li>
<li>Make sure you have copied the new JARs to <rootofsarosproject>/lib/</rootofsarosproject></li>
<li>right click on your Saros project in eclipse, choose "Build Path"->"Configure Build Path.."</li>
<li>click tab "Libraries"</li>
<li>click button "Add JARs" to add new JARs to the project</li>
<li>click "Ok" and you are ready, maybe you have to rebuild the project</li>
<li>update all relevant information (classpath, build properties, etc.) in the plugin.xml</li>
</ol></div></div></div> </div>
<footer>
</footer>
</div>
</div> <!-- /.block -->
</div>
<!-- /.region -->
</section> <!-- /#main -->
<aside id="sidebar-first" role="complementary" class="sidebar clearfix">
<div class="region region-sidebar-first">
<div id="block-menu-block-1" class="block block-menu-block">
<h2 >Develop on Saros</h2>
<div class="content">
<div class="menu-block-wrapper menu-block-1 menu-name-main-menu parent-mlid-0 menu-level-2">
<ul class="menu"><li class="first expanded menu-mlid-572"><a href="checkout-and-first-steps.html">Check-Out and First Steps</a><ul class="menu"><li class="first leaf has-children menu-mlid-574"><a href="setup-dev-environment.html">Set up development environment</a></li>
<li class="last leaf has-children menu-mlid-592"><a href="make-first-change.html">Making changes to Saros</a></li>
</ul></li>
<li class="expanded menu-mlid-916"><a href="ongoing-work.html">Ongoing Work</a><ul class="menu"><li class="first leaf has-children menu-mlid-694"><a href="saros-for-intellij.html">Saros for IntelliJ</a></li>
<li class="leaf menu-mlid-872"><a href="html-gui.html">Saros HTML GUI</a></li>
<li class="leaf menu-mlid-917"><a href="build-server-migration.html">Build Server Migration</a></li>
<li class="leaf menu-mlid-936"><a href="stf-cross-ide.html">STF across IDEs</a></li>
<li class="last leaf has-children menu-mlid-924"><a href="saros-for-netbeans.html">Saros for Netbeans</a></li>
</ul></li>
<li class="expanded menu-mlid-374"><a href="guidelines.html">Guidelines</a><ul class="menu"><li class="first leaf menu-mlid-375"><a href="contribution.html">Contribution Rules</a></li>
<li class="leaf has-children menu-mlid-432"><a href="coderules.1.html" title="Coding Guidelines and Rules">Coding Conventions</a></li>
<li class="leaf menu-mlid-343"><a href="usability.html" title="Guidelines to ensure Usability">Usability Guidelines</a></li>
<li class="leaf menu-mlid-433"><a href="TicketGuidelines.html">Ticket Guidelines</a></li>
<li class="last leaf menu-mlid-692"><a href="ci-rules.html">Jenkins Rules</a></li>
</ul></li>
<li class="expanded menu-mlid-931"><a href="tools.html">Tools</a><ul class="menu"><li class="first leaf menu-mlid-357"><a href="jtourbus.html" title="Get involved with JTourBus">JTourBus</a></li>
<li class="leaf menu-mlid-932"><a href="archnemesis.html">Archnemesis</a></li>
<li class="leaf menu-mlid-934"><a href="sia.html">Sia</a></li>
<li class="last leaf menu-mlid-933"><a href="sonarqube-gerrit-bridge.html">SonarQube-Gerrit-Bridge</a></li>
</ul></li>
<li class="expanded active-trail menu-mlid-341"><a href="processes.html" title="Processes in Saros" class="active-trail">Processes</a><ul class="menu"><li class="first leaf menu-mlid-351"><a href="review.html" title="Information about the review process">Review</a></li>
<li class="leaf active-trail active menu-mlid-352"><a href="ReleaseProcess.html" title="Our Release Process" class="active-trail active">Release</a></li>
<li class="leaf has-children menu-mlid-353"><a href="testing.html" title="Information about the testing process">Testing</a></li>
<li class="leaf menu-mlid-356"><a href="bugtracker.html" title="Watch the bug tracker">Bug Tracking</a></li>
<li class="last leaf menu-mlid-354"><a href="documentation.html" title="Information about the documentation process">Documentation</a></li>
</ul></li>
<li class="leaf menu-mlid-430"><a href="mailingslists.html">Mailinglists</a></li>
<li class="leaf menu-mlid-388"><a href="https://sourceforge.net/p/dpp/bugs/" title="">Bug Tracker</a></li>
<li class="leaf menu-mlid-335"><a href="https://sourceforge.net/projects/dpp/" title="Visit Saros at Sourceforge">Saros@Sourceforge</a></li>
<li class="expanded menu-mlid-915"><a href="gsoc.1.html">Google Summer of Code</a><ul class="menu"><li class="first last leaf menu-mlid-832"><a href="gsoc/2015/ideas.html">2015 - Ideas</a></li>
</ul></li>
<li class="last expanded menu-mlid-615"><a href="node/129.html">FAQ in daily practice</a><ul class="menu"><li class="first leaf menu-mlid-610"><a href="node/132.html" title="A change was integrated to master. How can I update my local code?">Update local code to master</a></li>
<li class="leaf menu-mlid-606"><a href="node/130.html" title="I messed up my local copy of Saros. How can I reset/clean up/revert my changes?">Revert local changes</a></li>
<li class="leaf menu-mlid-614"><a href="upload-new-patch-set.html" title="Someone discovered an error/failure/typo. How can I upload a new patch set?">Upload a new patch set</a></li>
<li class="leaf menu-mlid-612"><a href="node/133.html" title="My build failed. What's wrong with my change?">Building in Gerrit failed!</a></li>
<li class="leaf menu-mlid-608"><a href="gerrit-checkout-patch.html" title="Someone uploaded a change to Gerrit. How can I test this change?">Get & run someones change</a></li>
<li class="leaf menu-mlid-678"><a href="node/145.html" title="What is a Change? Patch set? Submit?">Change? Patch set? Submit?</a></li>
<li class="leaf menu-mlid-670"><a href="gerrit-groups-and-permissions.html" title="Which permissions do I have?">Check Gerrit permissions</a></li>
<li class="leaf menu-mlid-672"><a href="node/142.html" title="How to delete an unwanted local branch in EGit?">Delete local branch</a></li>
<li class="leaf menu-mlid-674"><a href="node/136.html">Duplicate Location Error</a></li>
<li class="leaf menu-mlid-630"><a href="gerrit-review.html" title="Someone wants that I review a change. How to review a change?">Review a change</a></li>
<li class="leaf menu-mlid-668"><a href="node/140.html" title="How to run Saros STF tests locally?">Run STF tests locally</a></li>
<li class="leaf menu-mlid-666"><a href="node/139.html" title="I ran an STF test (located in test/stf) and get an error! What's wrong?">STF tests fail</a></li>
<li class="leaf menu-mlid-664"><a href="node/138.html" title="How to set up Saros for running local STF tests?">Set up STF tests</a></li>
<li class="leaf menu-mlid-676"><a href="node/144.html" title="I want automate my testing process. How to write my own STF tests?">Write STF tests</a></li>
<li class="last leaf menu-mlid-874"><a href="git-recipes.html">Git use-cases</a></li>
</ul></li>
</ul></div>
</div>
</div> <!-- /.block -->
</div>
<!-- /.region -->
</aside> <!-- /#sidebar-first -->
</div> <!-- end content-body -->
<div class="clear"></div>
<div id="footer" class="clearfix">
<div class="clear"></div>
<div class="region region-footer">
<div id="block-block-2" class="block block-block">
<div class="content">
<p><a href="http://www.mi.fu-berlin.de/fb/impressum/" target="_blank">Impressum</a> — <a href="index.html%3Fq=user.html">Internal login</a></p>
</div>
</div> <!-- /.block -->
</div>
<!-- /.region -->
<div class="clear"></div>
<div id="copyright">Copyright © 2019, Saros</div>
</div> <!-- /#footer -->
</div> <!-- /#wrapper -->
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
<!--//--><![CDATA[// ><!--
jQuery(document).ready( function($) {
$( ".known-issue-box" ).accordion({
active: false,
heightStyle: "content",
collapsible: true
});
$( ".known-issue-box" ).css( "visibility", "visible" ); });
//--><!]]>
</script> </body>
</html>