Skip to content

Commit cb7f311

Browse files
This closes apache#3250
2 parents e19af8e + 729f86e commit cb7f311

1 file changed

Lines changed: 70 additions & 34 deletions

File tree

RELEASING.md

Lines changed: 70 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ gpg --list-sigs username@apache.org > /tmp/key; gpg --armor --export username@ap
3737

3838
Then send the key information in `/tmp/key` to `private@activemq.apache.org` so it can be added.
3939

40-
Add your key id (available via `gpg --fingerprint <key>`) to the `OpenPGP Public Key Primary Fingerprint` field at
40+
Ensure that your key is listed at https://home.apache.org/keys/committer/.
41+
If not add your key id (available via `gpg --fingerprint <key>`) to the `OpenPGP Public Key Primary Fingerprint` field at
4142
https://id.apache.org/. Note: this is just the key id, not the whole fingerprint.
4243

4344
## Checking out a new empty git repository
@@ -106,20 +107,31 @@ bump the version in the test/extra-tests/pom.xml to the next development version
106107

107108
## Uploading to nexus
108109

110+
Ensure that your environment is ready to deploy to the ASF Nexus repository as described at
111+
[Publishing Maven Artifacts](https://infra.apache.org/publishing-maven-artifacts.html)
112+
113+
Copy the file release.properties, that is generated at the root of the project during the release,
114+
before starting the upload. You could need it if the upload fails.
115+
109116
To upload it to nexus, perform this command:
110117

111118
```sh
112119
mvn release:perform -Prelease
113120
```
114121

115-
Note: this can take quite awhile depending on the speed for your Internet connection.
116-
122+
Note: this can take quite a while depending on the speed for your Internet connection.
123+
If the upload fails or is interrupted, remove the incomplete repository
124+
using the "Drop" button on [Nexus website](https://repository.apache.org/#stagingRepositories).
125+
Before starting the upload again, check the release.properties at the root of the project.
117126

118127
### Resuming release upload
119128

120129
If something happened during the release upload to nexus, you may need to eventually redo the upload.
130+
Remove the incomplete repository using the "Drop" button on [Nexus website](https://repository.apache.org/#stagingRepositories).
131+
Before starting the upload again, check the release.properties at the root of the project.
121132

122-
There is a release.properties file that is generated at the root of the project during the release. In case you want to upload a previously tagged release, add this file as follows:
133+
There is a release.properties file that is generated at the root of the project during the release.
134+
In case you want to upload a previously tagged release, add this file as follows:
123135

124136
- release.properties
125137
```
@@ -130,7 +142,7 @@ scm.tag=1.4.0
130142

131143
## Removing additional files
132144

133-
The last step before closing the staging repository is removing the activemq-pom-&lt;version>-source-release.zip. At
145+
The last step before closing the staging repository is removing the `artemis-pom-&lt;version>-source-release.zip` file. At
134146
the moment this artifact is uploaded automatically by the Apache release plugin. In future versions the ActiveMQ Artemis
135147
pom will be updated to take this into account.
136148

@@ -143,7 +155,7 @@ Once the file is removed close the staging repo using the "Close" button on Nexu
143155

144156
## Stage the release to the dist dev area
145157

146-
Use the closed staging repo contents to populate the the dist dev svn area
158+
Use the closed staging repo contents to populate the dist dev svn area
147159
with the official release artifacts for voting. Use the script already present
148160
in the repo to download the files and populate a new ${CURRENT-RELEASE} dir:
149161

@@ -161,9 +173,10 @@ svn commit
161173

162174
Old staged releases can be cleaned out periodically.
163175

164-
## Generate the git-report and cleanup JIRA
165176

166-
Please, include the git-commit-report as part of the release proces. To generate it follow these steps:
177+
## Generate the git-report
178+
179+
Please, include the git-commit-report as part of the release process. To generate it, follow these steps:
167180

168181
- Download [git-release-report](https://github.com/clebertsuconic/git-release-report/releases)
169182
- Execute the following command:
@@ -176,8 +189,19 @@ real example used on [2.6.1](http://activemq.apache.org/artemis/commit-report-2.
176189
$ java -jar git-release-report.jar /work/apache-checkout/activemq-artemis commit-report-2.6.1.html 2.6.0 2.6.1 true
177190
```
178191
- This will parse all the git commits between the previous release, and current release tags while looking at current JIRA status.
179-
- Use this report to do some JIRA cleanup making sure your commits and JIRA are accurate.
180-
- Regenerate the report once you cleared JIRA.
192+
193+
194+
## Cleanup JIRA
195+
196+
Use the git-report to do some JIRA cleanup making sure your commits and JIRA are accurate:
197+
- Close as done all JIRA related at the commits included in the git-report
198+
but exclude all JIRA related to a commit reverted by a commit included in the same git-report.
199+
You can execute a bulk change on all JIRA related at the commits included in the git-report
200+
using the link `JIRAS on this Report` at the bottom of the report.
201+
- Ensure that the version next the version being released exists checking the [ActiveMQ Artemis Releases page](https://issues.apache.org/jira/projects/ARTEMIS?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page).
202+
If not, you need an administrator account to create it using the `Manage Versions` button at the [ActiveMQ Artemis Releases page](https://issues.apache.org/jira/projects/ARTEMIS?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page)
203+
- Move all JIRA not closed to the next release setting the `Fix Version` field.
204+
- Regenerate the report once you cleared JIRA, to check your job.
181205

182206

183207
## Locate Release Notes
@@ -241,7 +265,7 @@ informing the list about the voting results, e.g.:
241265
```
242266
Results of the Apache ActiveMQ Artemis <version> release vote.
243267
244-
Vote passes with 2 +1 binding votes.
268+
Vote passes with 3 votes, 2 binding and 1 non binding.
245269
246270
The following votes were received:
247271
@@ -255,8 +279,8 @@ Non Binding:
255279
Thank you to everyone who contributed and took the time to review the
256280
release candidates and vote.
257281
258-
I'll move forward with the getting the release out and updating the
259-
relevant documentation.
282+
I'll update the website as soon as the mirrors are updated (I will
283+
wait 24 hours after I update SVN).
260284
261285
Regards
262286
```
@@ -268,8 +292,13 @@ After a successful vote, populate the dist release area using the staged
268292
files from the dist dev area to allow them to mirror. Note: this can only
269293
be done by a PMC member.
270294

295+
Use the script already present in the repo to copy the staged files
296+
from the dist dev area to the dist release area:
297+
271298
```sh
272-
svn cp -m "add files for activemq-artemis-${CURRENT-RELEASE}" https://dist.apache.org/repos/dist/dev/activemq/activemq-artemis/${CURRENT-RELEASE} https://dist.apache.org/repos/dist/release/activemq/activemq-artemis/${CURRENT-RELEASE}
299+
svn co https://dist.apache.org/repos/dist/dev/activemq/activemq-artemis/
300+
cd activemq-artemis
301+
./promote-release.sh ${CURRENT-RELEASE}
273302
```
274303

275304
Good mirror coverage can take up to 24 hours. Mirror status can be viewed [here](https://www.apache.org/mirrors/).
@@ -282,36 +311,43 @@ Go to https://repository.apache.org/#stagingRepositories and click the "Release"
282311

283312
## Web site update:
284313

285-
Clone the website repository from:
314+
Wait 24 hours after updating SVN to get a good mirror coverage, before proceeding.
315+
Mirror status can be viewed [here](https://www.apache.org/mirrors/).
286316

287-
https://gitbox.apache.org/repos/asf/activemq-website.git
317+
Clone the website repository from:
288318

319+
```sh
320+
git clone https://gitbox.apache.org/repos/asf/activemq-website.git
321+
```
289322

290323
Once the mirrors are up-to-date then update the following:
291-
1. Copy release-notes-<old-version>.html to release-notes-<new-version>.html.
292-
2. Update release-notes-<new-version>.html. Delete the existing list of bugs, features, improvements, etc. and replace it
293-
with the HTML from the bottom of the release notes link you sent out with your VOTE email.
294-
3. Update past-releases.html. Copy the block of HTML dealing with the 2nd-to-last release, paste it above the original,
324+
1. Copy `src/components/artemis/download/release-notes-<old-version>.md` to `src/components/artemis/download/release-notes-<new-version>.md`
325+
and update it deleting the existing list of bugs, features, improvements, etc. and replacing it
326+
with the HTML from the bottom of the release notes url you sent out with your VOTE email (appending `&styleName=Text`).
327+
2. Update `src/components/artemis/download/past-releases.md`. Copy the block of HTML dealing with the 2nd-to-last release, paste it above the original,
295328
and modify the version numbers for the last release.
296-
4. Update download.html. Modify the block of HTML dealing with the last release so that the version numbers are for
329+
3. Update `src/components/artemis/download/index.md`. Modify the block of HTML dealing with the last release so that the version numbers are for
297330
the new release.
298-
5. Copy docs/latest to docs/<old-version>.
299-
6. Create docs/latest and copy these files into it:
300-
1. contents of user-manual from <new-version>
301-
2. book.pdf version of user-manual (generated with `gitbook pdf`)
302-
3. book.epub version of user-manual (generated with `gitbook epub`)
303-
4. book.mobi version of user-manual (generated with `gitbook mobi`)
304-
5. hacking-guide directory from <new-version>
305-
6. book.pdf version of hacking-guide (generated with `gitbook pdf`)
306-
7. Copy docs/javadocs/javadoc-latest to docs/javadocs/javadoc-<old-version>.
307-
8. Create docs/javadocs/javadoc-latest and copy the contents of <new-release>/web/api into it.
308-
9. Update previous-docs.html. Copy the block of HTML dealing with the 2nd-to-last release, paste it above the original,
331+
4. Copy `src/components/artemis/documentation/latest` to `src/components/artemis/documentation/<old-version>`.
332+
5. Create `src/components/artemis/documentation/latest` and copy these files into it:
333+
1. the contents of user-manual from `apache-artemis-<new-version>/web/user-manual`
334+
2. book.pdf version of user-manual (generated from the new version sources with the command `gitbook pdf`)
335+
3. book.epub version of user-manual (generated from the new version sources with the command `gitbook epub`)
336+
4. book.mobi version of user-manual (generated from the new version sources with the command `gitbook mobi`)
337+
6. Create `src/components/artemis/documentation/hacking-guide` and copy these files into it:
338+
1. the contents of user-manual from `apache-artemis-<new-version>/web/hacking-guide`
339+
2. book.pdf version of hacking-guide (generated with `gitbook pdf`)
340+
7. Copy `src/components/artemis/documentation/javadocs/javadoc-latest` to `src/components/artemis/documentation/javadocs/javadoc-<old-version>`.
341+
8. Create `src/components/artemis/documentation/javadocs/javadoc-latest` and copy the contents of `apache-artemis-<new-version>/web/api` into it.
342+
9. Update `src/components/artemis/documentation/previous-docs.md`. Copy the block of HTML dealing with the 2nd-to-last release, paste it above the original,
309343
and modify the version numbers for the last release.
310344

311345
Run `svn add` for all the added directories & files and then `svn commit -m "updates for <version> release"`.
346+
The changes should be published automatically by the `jekyll_websites` builder of the [apache buildbot](https://ci2.apache.org/#/builders).
312347

313-
Note: Generating PDFs, etc. with gitbook requires the installation of [Calibre](https://calibre-ebook.com). You can
314-
install this manually, but it is recommended you use your platform's package management to install (e.g. `sudo apt-get install calibre`).
348+
Note: Generating PDFs, etc. with gitbook requires the installation of [Calibre](https://calibre-ebook.com).
349+
You can install this manually, but it is recommended you use your platform's package management to install
350+
(e.g. `sudo apt-get install calibre`).
315351

316352

317353
## Send announcement to user list

0 commit comments

Comments
 (0)