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
|
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE- 2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<!-- generateKeywords macro -->
<META name="description" content="Apache Tuscany">
<META name="keywords" content="apache, apache tuscany, tuscany, service, services, fabric, soa, service oriented architecture, sca, service component architecture, das, sdo, csa, ruby, opensource">
<!-- generateKeywords macro end -->
<LINK type="text/css" rel="stylesheet" href="http://tuscany.apache.org/stylesheets/default.css">
<LINK rel="SHORTCUT ICON" href="https://cwiki.apache.org/confluence/display/TUSCANY/$images/favicon.ico">
<TITLE>Apache Tuscany : M3 Process Notes</TITLE>
<META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
<BODY onload="init()">
<!-- topNav macro -->
<TABLE valign="top" border="0" cellspacing="0" cellpadding="0" width="100%" background="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg">
<TR>
<TD valing="top" align="left">
<A href="https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=TUSCANY&title=$siteroot"><IMG src="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg" height="91" width="25" border="0"></A>
</TD>
<TD>
<A href="http://tuscany.apache.org/"><IMG src="http://tuscany.apache.org/images/TuscanyLogo.jpg" border="0"></A>
</TD>
<TD width="100%">
</TD>
<!-- Adds the edit page link to the top banner-->
<TD valign="bottom">
<DIV style="padding: 2px 10px; margin: 0px;">
<A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=48869">
<IMG src="http://tuscany.apache.org/images/notep_16.gif" height="16" width="16" border="0" align="absmiddle" title="Edit Page"></A>
</DIV>
</TD>
</TR>
</TABLE>
<!-- topNav macro end -->
<!-- breadCrumbs macro -->
<TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
<TR class="topBar">
<TD align="left" valign="middle" class="topBarDiv" nowrap="true" width="100%">
<A href="home.html" title="Apache Tuscany">Apache Tuscany</A> > <A href="home.html" title="Home">Home</A> > <A href="sdo-overview.html" title="SDO Overview">SDO Overview</A> > <A href="sdo-java.html" title="SDO Java">SDO Java</A> > <A href="sdo-java-m3.html" title="SDO Java M3">SDO Java M3</A> > <A href="" title="M3 Process Notes">M3 Process Notes</A>
</TD>
<TD align="right" valign="middle" class="topBarDiv" align="left" nowrap="true">
<A href="http://mail-archives.apache.org/mod_mbox/tuscany-user">User List</A> | <A href="http://mail-archives.apache.org/mod_mbox/tuscany-dev">Dev List</A> | <A href="http://issues.apache.org/jira/browse/Tuscany">Issue Tracker</A>
</TD>
</TR>
</TABLE>
<!-- breadCrumbs macro end -->
<TABLE border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
<TR>
<TD align="left" valign="top">
<!-- pageContent macro -->
<DIV id="PageContent">
<DIV class="pagecontent">
<DIV class="wiki-content">
<H3><A name="M3ProcessNotes-ReleasingSDOJava"></A>Releasing SDO Java</H3>
<P>Note, this is information captured from my own experiences of doing a release for the first time.<BR>
If any of what I say here is at odds with apache policies as stated elsewhere then clearly they<BR>
win (Please let me know of any cases).</P>
<P><B>This is still work in progress</B> Many items need another level of depth of explanation</P>
<H4><A name="M3ProcessNotes-Links"></A>Links</H4>
<OL>
<LI>draft asf guidlines: <A href="http://incubator.apache.org/guides/releasemanagement.html" class="external-link" rel="nofollow">http://incubator.apache.org/guides/releasemanagement.html</A></LI>
<LI>here's how axis2 do it: <A href="http://wiki.apache.org/ws/FrontPage/Axis2C/releases/steps" class="external-link" rel="nofollow">http://wiki.apache.org/ws/FrontPage/Axis2C/releases/steps</A></LI>
</OL>
<H4><A name="M3ProcessNotes-TaskDependencies"></A>Task Dependencies</H4>
<P>A relevant version of the Tuscany parent pom and buildtools must have been released. </P>
<H4><A name="M3ProcessNotes-Tasksthatcanbedoneaheadoftimeorwhileinwaitmodeforthesequencedtasks"></A>Tasks that can be done ahead of time or while in wait mode for the sequenced tasks</H4>
<OL>
<LI>understand the planned release cycles of your dependencies and have a target stable release version in mind for all such dependencies</LI>
<LI>Prepare for signing/authenticating distro files
<OL>
<LI>identify/install s/w for public key infrastructure stuff and MD5 message digest generation</LI>
<LI>Create a PGP key for signing files</LI>
<LI>Lodge your PGP key with a keyserver</LI>
<LI>Put your public key in the svn KEYS file</LI>
</OL>
</LI>
<LI>Get set up for easy file transfer to people.apache.org
<OL>
<LI>Identify/Install clients for ssh, secure copying and secure ftping</LI>
<LI>Establish authentication with people.apache.org by key</LI>
</OL>
</LI>
<LI>Prepare a downloads page section that can be added to the Tuscany downloads page</LI>
<LI>Ensure that there is inter-module understanding of how we plan to sequence releasing modules and requesting IPMC votes</LI>
<LI>ensure that our apache mentors know Tuscany's plans with respect to releases</LI>
</OL>
<H4><A name="M3ProcessNotes-BasicTaskSequenceasIrecallit"></A>Basic Task Sequence as I recall it</H4>
<P>This is a basic sequence of tasks. Clarification of details of tasks will be given below</P>
<OL>
<LI>make the trunk reference the newly released parent pom and buildtools</LI>
<LI>optionally make a branch</LI>
<LI>stabilize code in branch (or trunk if development activity can be halted in trunk)
<OL>
<LI>check LICENSE and NOTICE files in project roots and in jar manifests
<OL>
<LI>run the rat tool against the source and check for exceptions</LI>
<LI>once exceptions have been fixed, store the rat log and make a note of rat log exceptions which are there because they have to be</LI>
<LI>repeat this as necessary during the release process if new files are included</LI>
</OL>
</LI>
<LI>update release notes, readmes, etc</LI>
<LI>Ensure the Tuscany project's root level svn STATUS file is up to date, and then copy/update it into the root folders of any source distribution that will be made, and to the location where the pom that creates the binary distribution will expect to find the STATUS file for packaging (may be the same location as for source distro)
<OL>
<LI>be aware that while the release process is continuing, the project STATUS file might change.</LI>
</OL>
</LI>
<LI>.....</LI>
</OL>
</LI>
<LI>Create release candidates and ask for feedback, iterating until ready for a PPMC vote ...
<OL>
<LI>Create local copies of source hierarchies, one per source distribution, using svn export <uri> <local-dir></LI>
<LI>Make archives of your clean exports in order to be able to distribute source</LI>
<LI>Follow the instructions in BUILDING.txt in the root folders of the source distributions to produce the binary distribution
<OL>
<LI>If you have to do something different from those instructions to build the binary distro, then update BUILDING.txt in appropriate places in svn(and be aware thet your source distro archive is now out of date, so you'll need to iterate before going public)</LI>
</OL>
</LI>
<LI>Test your binary distro; take the outputs of your build process and use them as if you were a new user who had just downloaded them</LI>
<LI>create your sample programs source distribution
<OL>
<LI>...... fill this in</LI>
<LI>....</LI>
</OL>
</LI>
<LI>At this point you will need to have put in place distro signing capabilities (see "Ahead of Time" above)
<OL>
<LI>Sign and create md5 checksums for each of the source and binary distribution archives</LI>
<LI>transfer the archives to a logical place under your public_html people.apache.org space and arrange suitably</LI>
<LI>create a suitable readme for the root level of your release candidate folder, and ensure the readme names the release candidate version</LI>
<LI>advertise the release candidate on tuscany-dev and tuscany-user and ask for feedback</LI>
</OL>
</LI>
<LI>fix issues and repeat the release candidate process</LI>
</OL>
</LI>
<LI>When ready for the PPMC to vote on your release candidate, create a tag from the branch (or trunk if no branch)
<OL>
<LI>Note that a release must have a referenceable tag from which it was built and that this may not be the end to your updates, so you have the option of creating new tags if the PPMC vote throws up more issues, or updating a single tag, you may like to bear your choice in mind when naming the tag</LI>
<LI>Note also that svn will complain when you try to do an svn commit into a tag, which is a warning only, and during this phase of the release process, updates to a tag are justifiable</LI>
</OL>
</LI>
<LI>Update the version elements of the poms to define the version of the parent pom and buildtools that should be used (CHECK where and when this should be done)</LI>
<LI>Update the tags version names of the distributable artifacts to non SNAPSHOT titles that match the release name</LI>
<LI>Update the tags version names of the dependencies to non SNAPSHOT versions, if not already done earlier in the release candidate process</LI>
<LI>Ideally update the tags version names of maven plugins to non SNAPSHOT versions if not already done earlier in the release candidate process (note that if the plugin behaviour changes after release, your tag or source distribution may not build in the same way as it did when you released if you rely on SNAPSHOT plugin versions)</LI>
<LI>Rebuild and upload a new release and candidate to people.apache.org</LI>
<LI>Optionally take a snapshot archive of your local maven repository for future issue resolution</LI>
<LI>Deploy the projects artifacts to the maven repository
<OL>
<LI>By this time you want to have in place easy authentication to people.apache.org (add link to apache description of how to do this), and to modify your maven ~/.m2/settings.xml file to use key based authentication, rather than password (I never got this going, so had to type in my password about 30 times per deploy) – If using pageant to make an ephermeral decrypted version of your SSL private key available to the authentication process, then make sure pageant is running, and you have lodged your private key with that invocation of pageant</LI>
<LI>Run maven deploy (supplying your password multiple times if necessary – the build will fail if a password request times out)</LI>
<LI>Check that the artifacts in the maven repository and the corresponding ones in your local repository are fresh and identical</LI>
<LI>The deploy action will have created .md5 and .sha1 message digests for all newly deployed artifacts, you must manually add signatures for the artifacts
<OL>
<LI>for every archive artifact uploaded to the remote repository (see the "mvn deploy" execution log), create a signature for the corresponding artifact on your local machine</LI>
<LI>upload that signature to sit alongside the artifact on the remote repository</LI>
</OL>
</LI>
</OL>
</LI>
<LI>Request a vote on tuscany-dev on the new release candidate, and the deployed artifacts, publishing the rat log and exceptions stored earlier</LI>
<LI>Iterate through the release candidate/vote process if necessary</LI>
<LI>ask for ratification of the PPMC vote from the IPMC by posting to general@incubator.apache.org (I think you may have to use an apache.org email address to do this?)</LI>
<LI>if necessary repeat the release candidate/PPMC vote/IPMC ratification steps</LI>
<LI>Move your release candidate files to the proper people.apache.org tuscany download location</LI>
</OL>
<UL class="alternate" type="square">
<LI>/www/people.apache.org/dist/incubator/tuscany/java</LI>
</UL>
<OL>
<LI>Add your ready prepared download section to the tuscany site downloads page, rebuild and deply the site update</LI>
<LI>update the projects STATUS file and commit back to svn to say that the announcement has been made</LI>
<LI>update the tuscany site's news page</LI>
<LI>Announce the release by sending to anounce@apache.org (note that you must use an apache.org email address to do this), copying tuscany-dev, tuscany-user and general@incubator</LI>
<LI>Momentarily reflect on life's joys
<HR>
<H4><A name="M3ProcessNotes-Commandlog"></A>Command log</H4>
<P>C:\Development\JiraDev\M3Release>svn export svn\M3ApiRelease apiExportDir\apache-tuscany-sdo-incubating-1.0-M3\sdo-api<BR>
Export complete.</P></LI>
</OL>
<P>C:\Development\JiraDev\M3Release>svn export svn\M3ImplRelease implExportDir\apache-tuscany-sdo-incubating-1.0-M3\sdo<BR>
Export complete.</P>
<P>C:\Development\JiraDev\M3Release\RC1>gpg -sa --detach-sig --local-user kelvingoodson@apache.org apache-tuscany-sdo-incubating<BR>
-1.0-M3-api-src.tar.gz</P>
<P>$ for i in *<BR>
> do<BR>
> gpg -sa --detach-sig --local-user kelvingoodson@apache.org $i<BR>
> done</P>
<P>$ for i in *<BR>
> do<BR>
> gpg -sa --detach-sig --local-user kelvingoodson@apache.org $i<BR>
> done</P>
<P>$ rm *.asc.md5</P>
</DIV>
</DIV>
</DIV>
<!-- pageContent macro end -->
</TD>
</TR>
</TABLE>
<!-- footer macro -->
<SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</SCRIPT>
<SCRIPT type="text/javascript">
_uacct = "UA-1174707-5";
urchinTracker();
</SCRIPT>
<A href="http://www.statcounter.com/" target="_blank"><IMG src="http://c26.statcounter.com/counter.php?sc_project=2619156&java=0&security=94bd7e7d&invisible=0" alt="website stats" border="0"></A>
<DIV class="footer">
Copyright � 2003-2012, The Apache Software Foundation </BR>
Apache Tuscany and the Apache Tuscany project logo are trademarks of The Apache Software Foundation.
</DIV>
<!-- footer macro end -->
</BODY>
</HTML>
|