blob: b51a6408657d0f858d250bfa9c3b709fc3a8769d [file] [log] [blame]
Pierre De Rop3a00a212015-03-01 09:27:46 +00001
2
3
4Apache Felix Dependency Manager Release Guide
5This document describes how to do a source release. It is based on the Release FAQ [1]
6
7Prerequisites
8=============
9
10To create a release you must:
11
12* Have Subversion installed on your system;
13* Have gpg installed on your system;
14* Have a public key added to the keys file, and committed to [2]
15* If you are using an http proxy, configure the following:
16
17 export GRADLE_OPTS="-Dhttps.proxyHost=www.somehost.org -Dhttps.proxyPort=8080"
18
19Before you can start staging a release candidate, you must:
20
Pierre De Rop41a1a582015-06-04 20:41:36 +000021* increment the ext.dmRelease parameter in release/build.gradle, if not already done.
Pierre De Rop3a00a212015-03-01 09:27:46 +000022* make sure there are no dependencies on snapshots/unreleased versions;
23* create a tagged version of the sources in preparation of the release candidate.
24
25Creating a tagged version of the sources can be done directly through svn (replace r<n> by the actual release number, like "r1"):
26
27svn copy https://svn.apache.org/repos/asf/felix/trunk/dependencymanager https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.dependencymanager-r<n> -m "Release of Apache Felix Dependency Manager r<n>"
28
29Staging a release candidate
30===========================
31
32Staging a release starts by checking out a tagged version of the sources (replace r<n> by the actual release number, like "r1"):
33
34svn co https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.dependencymanager-r<n>
35
36The next step is to build/test the software and create the release/staging/ directory (where the source/jars will be packaged):
37(replace r<n> by the actual release number, like "r1")
38
39Use a Java7 JDK
40
41$ cd org.apache.felix.dependencymanager-r<n>
42$ ./gradlew rat
43$ ./gradlew org.apache.felix.dependencymanager.annotation:jar
44$ ./gradlew jar
45$ ./gradlew test
46$ ./gradlew check
47
Pierre De Ropa20b7582015-03-05 07:30:49 +000048create the staging:
Pierre De Rop3a00a212015-03-01 09:27:46 +000049
50$ ./gradlew makeStaging (this will create ./release/staging/ directory)
51
52Then you sign archives by invoking the following task:
53
54$ ./gradlew signStaging
55
56You can upload the archives and the signatures to our development area, which we use to stage this release candidate. This development area can be found at
57https://dist.apache.org/repos/dist/dev/felix and adding files to it can be done using "svnpubsub" which is taken care of by the following target:
58
59$ ./gradlew commitToStaging
60
61Voting on the release
62=====================
63
64Start a vote on the dev@felix.apache.org list, for example (be sure to replace r<n> with the correct release number, like "r1"):
65
66>>>
67To: "Felix Developers List" <dev@felix.apache.org>
68Subject: [VOTE] Release of Apache Felix Dependency Manager release r<n>
69
70Hi,
71
72We solved N issues in this release:
73http://issues.apache.org/jira/...
74
75There are still some outstanding issues:
76http://issues.apache.org/jira/...
77
78Staging repository:
79https://dist.apache.org/repos/dist/dev/felix/apache-felix-dependencymanager-r<n>/
80
81You can use this UNIX script to download the release and verify the signatures:
82http://svn.apache.org/repos/asf/felix/trunk/dependencymanager/release/check_staged_release.sh
83
84Usage:
85sh check_staged_release.sh r<n> /tmp/felix-staging
86
87This script, unlike the original Felix check_stage_release.sh, will download staging from https://dist.apache.org/repos/dist/dev/felix instead of
88http://repository.apache.org/content/repositories.
89
90
91Please vote to approve this release:
92
93[ ] +1 Approve the release
94[ ] -1 Veto the release (please provide specific comments)
95
96This vote will be open for 72 hours.
97<<<
98
99Promoting the release:
100=====================
101
102Move the artifacts from the development area to the final release location at
103https://dist.apache.org/repos/dist/release/felix by invoking the following target:
104
105$ ./gradlew promoteToRelease
106
Pierre De Ropa20b7582015-03-05 07:30:49 +0000107Then Edit the ./release/build.gradle script, increment the "ext.dmRelease" property, and commit.
108
Pierre De Rop3a00a212015-03-01 09:27:46 +0000109Cancelling the release
110======================
111
112$ ./gradlew deleteFromStaging
113
114[1] http://www.apache.org/dev/release.html
115[2] http://www.apache.org/dist/felix/KEYS