Changes for page Release Process

Last modified by Simon Urli on 2023/10/10 11:52

<
From version < 56.1 >
edited by Vincent Massol
on 2010/11/05 14:30
To version < 57.1 >
edited by Vincent Massol
on 2010/11/05 14:52
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -38,7 +38,7 @@
38 38  The ##profiles## and ##activeProfiles## settings are the one described on the [[Building page>>Community.Building]].
39 39  {{/info}}
40 40  
41 -== Pre-Release Steps ==
41 +== Release Steps ==
42 42  
43 43  * Start by verifying that the [[Continuous Integration>>Community.ContinuousBuild]] build succeeds before starting any release. If not fix it first.
44 44  * Create the [[release plan>>#HReleasePlan]], i.e. list the full dependency chain of modules to release.
... ... @@ -50,14 +50,20 @@
50 50  ** Example for ##enterprise##: ##mvn release:branch -DbranchName=xwiki-enterprise-2.6 -DautoVersionSubmodules=true -Pci,hsqldb,mysql,pgsql,derby,jetty,glassfish##
51 51  ** Example for ##manager##: ##mvn release:branch -DbranchName=xwiki-enterprise-manager-2.6 -DautoVersionSubmodules=true -Pci,hsqldb,mysql,pgsql,derby,jetty,glassfish## (note the discrepancy in branch name...)
52 52  
53 -== Release Steps ==
54 -
55 55  * For each module to release perform the following:
56 56  ** Resolve all SNAPSHOT dependencies. The Release plugin will not let you release the module if it has SNAPSHOT dependencies. So if that module is depending on some other XWiki module that has not been released, you'll need to release that module first.
57 -** cd to the directory of the module you wish to release and type ##mvn release:prepare -Pci -DautoVersionSubmodules=true## (the ##ci## profile is there to ensure the full build is executed as some build things are only activated when running on the CI server and need them to run when doing a release). Maven will ask questions about the version of the release, the tag name, etc. {{warning}}Maven (2.0.9 or 2.1 it's same) has trouble with svn 1.5 and more precisely on svn tag creation. See http://jira.codehaus.org/browse/SCM-406 for details.{{/warning}}
58 -** Run ##mvn release:perform -Pci##
59 -** Edit the Release Notes to add the API breakage. To do so:
60 -*** Edit the ##platform/core/pom.xml## file and remove the CLIRR exclusion, then run the following below and then copy paste the result in the Release Notes(((
55 +** Go to the directory of the module you wish to release and use ##mvn release:prepare -DautoVersionSubmodules=true -P<profiles to activate>## (the profiles are there to ensure the full build is executed as, for example, some modules are only activated when running on the CI server and need them to run when doing a release). Maven will ask questions about the version of the release, the tag name, etc. {{warning}}Maven (2.0.9 or 2.1 it's same) has trouble with SVN 1.5 and more precisely on svn tag creation. See http://jira.codehaus.org/browse/SCM-406 for details.{{/warning}}
56 +*** For all modules except ##enterprise## and ##manager##: ##mvn release:prepare -DautoVersionSubmodules=true -Pci##
57 +*** For ##enterprise## and ##manager##: ##mvn release:prepare -DautoVersionSubmodules=true -Pci,hsqldb,mysql,pgsql,derby,jetty,glassfish##
58 +*** For parent POMs to be released (for example in ##applications##, ##skins##, etc): ##mvn release:prepare -Pci -N -Darguments=-N## + Remove directories copied in the tag using a subversion client
59 +*** {{info}}It's a good practice to do a dry run before running ##mvn release:prepare##. You can do that using ##mvn release:prepare ... -DdryRun=true##.{{/info}}
60 +** Run ##mvn release:perform -P<profiles to activate>##:
61 +*** For all modules except ##enterprise## and ##manager##: ##mvn release:perform -Pci##
62 +*** For ##enterprise## and ##manager##: ##mvn release:perform -Pci,hsqldb,mysql,pgsql,derby,jetty,glassfish##
63 +*** For parent POMs to be released (for example in ##applications##, ##skins##, etc): ##mvn release:perform -Pci -N -Darguments=-N##
64 +
65 +* Edit the Release Notes to add the API breakage. To do so:
66 +** Edit the ##platform/core/pom.xml## file and remove the CLIRR exclusion, then run the following below and then copy paste the result in the Release Notes(((
61 61  {{code language="none"}}
62 62  $ mvn clirr:check -DfailOnError=false -DtextOutputFile=clirr-result.txt
63 63  $ find . -name clirr-result.txt | xargs cat | grep ERROR
... ... @@ -64,25 +64,17 @@
64 64  $ find . -name clirr-result.txt -delete
65 65  {{/code}}
66 66  )))
67 -*** Update ##platform/core/pom.xml## on trunk by removing all the CLIRR exclusions and updating the comparison version (##<clirr.previous.version>##) to the just released core version
68 -
69 -{{info}}
70 -It's a good practice to do a dry run before running ##mvn release:prepare##. You can do that using ##mvn release:prepare -DdryRun=true##.
71 -{{/info}}
72 -
73 -Once all modules you wish to release have been released you'll need to perform other actions:
74 -
75 -* Upload all the files on ObjectWeb's forge (till we serve the files from our Maven repository)
73 +** Update ##platform/core/pom.xml## on trunk by removing all the CLIRR exclusions and updating the comparison version (##<clirr.previous.version>##) to the just released core version
74 +* Upload the files found on the [[Download page>>Main.Download]]) the OW2
76 76  * Release the versions in JIRA
77 77  * Update xwiki.org:
78 -** Write the release notes
79 -** For each item in the release notes, ensure that there's a corresponding documentation update or addition on xwiki.org
80 -** Update code.xwiki.org with the new downloads (for eg for plugins and applications)
81 -** Update the Download page with the new links to ObjectWeb
77 +** Write the [[release notes>>xwiki:Main.ReleaseNotes]]
78 +*** For each item in the release notes, ensure that there's a corresponding documentation update or addition on xwiki.org
79 +** Update the Download page with the new links to OW2
82 82  ** Write an announcement [[blog post on xwiki.org>>xwiki:Blog.WebHome]]
83 83  ** Update the [[Javadoc page>>platform:DevGuide.API]] to link to the new javadoc
84 84  * Send an [[announcement email>>#HAnnouncementEmailExample]] on the XWiki mailing lists (devs and users)
85 -* Post a news announcement on https://forge.objectweb.org/
83 +* Post a news announcement on https://forge.ow2.org/
86 86  * Updates sites about XWiki releases:
87 87  ** [[Wikimatrix>>http://www.wikimatrix.org/edit/XWiki]]
88 88  ** [[Wikipedia (English)>>http://en.wikipedia.org/wiki/XWiki]] (and [[this>>http://en.wikipedia.org/wiki/Comparison_of_wiki_software]], too)
... ... @@ -92,103 +92,6 @@
92 92  * Enjoy some rest and pray that nobody discovers a blocking bug... :)
93 93  * Start improving the build so that next time all this is done in mere seconds and automatically...
94 94  
95 -== Detailed Maven2 process for releasing XE ==
96 -
97 -Do the releases in the order below. For each step ask yourself whether it's required to release a new version or if the previous released version can be used instead. You can use [[fisheye>>http://fisheye2.cenqua.com/browse/xwiki/]] to check the commit log and see if there have been any changes affecting a module since the previous release.
98 -
99 -1. Top level POM
100 -1*. Directory: ##xwiki-platform/pom##
101 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
102 -1. Tools Parent POM
103 -1*. Directory: ##xwiki-platform/xwiki-tools/##
104 -1*. Commands: ##mvn release:prepare -Pci -N -Darguments=-N## (remove directories copied in the tag using subversion client) followed by ##mvn release:perform -Pci -N -Darguments=-N##.
105 -1. Configuration Resources Tool
106 -1*. Directory: ##xwiki-platform/xwiki-tools/xwiki-configuration-resources##
107 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
108 -1. Jetty Resources Tool
109 -1*. Directory: ##xwiki-platform/xwiki-tools/xwiki-jetty-resources##
110 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
111 -1. Core
112 -1*. Directory: ##xwiki-platform/core##
113 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
114 -1. Packager Tool
115 -1*. Directory: ##xwiki-platform/xwiki-tools/packager##
116 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
117 -1. Plugins POM
118 -1*. Directory: ##xwiki-platform/xwiki-plugins/##
119 -1*. Commands: ##mvn release:prepare -Pci -N -Darguments=-N## (remove directories copied in the tag using subversion client) followed by ##mvn release:perform -Pci -N -Darguments=-N##.
120 -1. Scheduler Plugin
121 -1*. Directory: ##xwiki-platform/xwiki-plugins/scheduler##
122 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
123 -1. Lucene Plugin
124 -1*. Directory: ##xwiki-platform/xwiki-plugins/lucene##
125 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
126 -1. Mail Sender Plugin
127 -1*. Directory: ##xwiki-platform/xwiki-plugins/mailsender##
128 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
129 -1. WatchList Plugin
130 -1*. Directory: ##xwiki-platform/xwiki-plugins/watchlist##
131 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
132 -1. JODA Time Plugin
133 -1*. Directory: ##xwiki-platform/xwiki-plugins/jodatime##
134 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
135 -1. Applications Parent POM
136 -1*. Directory: ##xwiki-platform/xwiki-applications/##
137 -1*. Commands: ##mvn release:prepare -Pci -N -Darguments=-N## (remove directories copied in the tag using subversion client) followed by ##mvn release:perform -Pci -N -Darguments=-N##.
138 -1. Panels Application
139 -1*. Directory: ##xwiki-platform/xwiki-applications/panels##
140 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
141 -1. Scheduler Application
142 -1*. Directory: ##xwiki-platform/xwiki-applications/scheduler##
143 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
144 -1. Statistics Application
145 -1*. Directory: ##xwiki-platform/xwiki-applications/statistics##
146 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
147 -1. Skins Parent POM
148 -1*. Directory: ##xwiki-platform/skins/##
149 -1*. Commands: ##mvn release:prepare -Pci -N -Darguments=-N## (remove directories copied in the tag using subversion client) followed by ##mvn release:perform -Pci -N -Darguments=-N##.
150 -1. Albatross Skin
151 -1*. Directory: ##xwiki-platform/skins/albatross##
152 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
153 -1. Toucan Skin
154 -1*. Directory: ##xwiki-platform/skins/albatross##
155 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
156 -1. Web
157 -1*. Directory: ##xwiki-platform/web##
158 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##. {{warning}}The buildnumber plugin used in the build of the web module doesn't work with the French locale. You'll need to momentarily configure your locale to English to make it work.{{/warning}}
159 -1. XE
160 -1*. Directory: ##xwiki-products/xwiki-enterprise##
161 -1*. Commands: ##mvn release:prepare -Pci,hsqldb,mysql,pgsql,derby,jetty,glassfish -Darguments="-Phsqldb,jetty" -DautoVersionSubmodules=true -DreleaseVersion=2.3 -DdevelopmentVersion=2.3-SNAPSHOT## followed by ##mvn release:perform -Pci,hsqldb,jetty -Darguments=-Pci,hsqldb,jetty##.
162 -
163 -== Detailed Maven2 process for releasing XEM ==
164 -
165 -Do the releases in the following order:
166 -
167 -1. Top level POM. See the instructions for XE above.
168 -1. Tools Modules. See the instructions for XE above.
169 -1. Plugins POM. See the instructions for XE above.
170 -1. Scheduler Plugin. See the instructions for XE above.
171 -1. Mail Sender Plugin. See the instructions for XE above.
172 -1. WatchList Plugin. See the instructions for XE above.
173 -1. Application Manager Plugin
174 -1*. Directory: ##xwiki-platform/xwiki-plugins/application-manager##
175 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
176 -1. JODA Time Plugin. See the instructions for XE above.
177 -1. Applications POM. See the instructions for XE above.
178 -1. Scheduler Application. See the instructions for XE above.
179 -1. Application Manager Application
180 -1*. Directory: ##xwiki-platform/xwiki-applications/application-manager##
181 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
182 -1. Wiki Manager Plugin
183 -1*. Directory: ##xwiki-platform/xwiki-plugins/wiki-manager##
184 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
185 -1. Wiki Manager Application
186 -1*. Directory: ##xwiki-platform/xwiki-applications/wiki-manager##
187 -1*. Commands: ##mvn release:prepare -Pci## followed by ##mvn release:perform -Pci##.
188 -1. Enterprise Manager Product
189 -1*. Directory: ##xwiki-products/xwiki-enterprise-manager##
190 -1*. Commands: ##mvn release:prepare -Pci,mysql,derby,hsqldb,pgsql -Darguments=-Pmysql## followed by ##mvn release:perform -Pmysql,ci -Darguments=-Pmysql##. {{warning}}The buildnumber plugin used in the build of the web module doesn't work with the French locale. You'll need to momentarily configure your locale to English to make it work.{{/warning}}
191 -
192 192  == Detailed Maven2 process for releasing XEclipse ==
193 193  
194 194  Due to some difficulties in integrating Eclipse PDE Builds and Maven, XEclipse uses a different release process:
... ... @@ -206,11 +206,9 @@
206 206  
207 207  == Tips and Troubleshooting ==
208 208  
209 -* If you get an out of sync error from OW's SVN when you run ##mvn release:prepare## you'll need to svn up and rerun ##release:prepare##.
210 -* If Maven fails when you runt ##release:prepare## run first ##mvn clean install##.
110 +* If Maven fails when you run ##release:prepare## run first ##mvn clean install##.
211 211  * The Maven release plugin stores some properties files to keep track of where it is in the release process. If you need to start over and clean those files you can run ##mvn release:clean##
212 -* If you want to be sure, use ##-Pci## on all maven commands. It's supposed to be triggered automatically by the release process but it's not been tested yet.
213 -* If Maven fails to upload an artifact to the XWiki remote repository, it's possible there's a problem of permissions in that repository. In that case you'll need to log on laam.xpertnet.biz, go in ##/home/maven/public_html/repository/*## and fix the permission.
112 +* If Maven fails to upload an artifact to the XWiki remote repository, it's possible there's a problem of permissions in that repository. In that case you'll need to log on maven.xwiki.org, go in ##/home/maven/public_html/repository/*## and fix the permission.
214 214  * If you are running Mac OS X 10.5 and have errors while checking in files in SVN during the release process, you might want to read [[this thread>>http://www.nabble.com/Possible-Bug-with-%22--non-interactive%22-mode-on-OS-X-Leopard-to14338652.html]]. A workaround is to store your password in clear text in your subversion configuration files.
215 215  
216 216  == Announcement Email Example ==

Get Connected