[ 
https://issues.apache.org/jira/browse/FELIX-4818?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre De Rop updated FELIX-4818:
---------------------------------
    Description: 
The new Dependency Manager 4.0 is now built using gradle and bndtools (see 
FELIX-4816). But this has an impact on the release process because we are not 
using Maven anymore. So, this issue describes a new release process for DM, 
which is for now minimal: we don't use the nexus staging repository and we 
don't release to maven central (this is optional). But we'll try to refine and 
improve the release process gradually, in next DM releases.

So, here is the new release process description:
 * it is based mostly on the basic Apache release process (see [1]), and is 
also inspired from the Apache Ace release process (see [2]), and the Amdatu 
release process (see [3]) which are also using bndtools.

 * the DM4 release will be in the form of three archives: a source based 
archive (org.apache.felix.dependencymanager-r<n>src.zip), a source binary 
dependencies archive (org.apache.felix.dependencymanager-r<n>deps.zip) 
containing all build-time binary dependencies, and a binary archive 
(org.apache.felix.dependencymanager-r<n>bin.zip) containing all DM bundles for 
convenience.

 * Each released artifacts (-src, -deps, -bin) has the same unique release 
version number, regardless of the outcome of the vote. This implies that 
release version used for releases are not to be reused. By convention, a 
release version is defined as "r<N>", where <N> is a positive integer number 
starting at 1 and is incremented upon each release.

 * To verify the integrity of archives, .asc, .md5, and .sha (512) checksum 
files are provided for all archives.

 * Before making a release, the dependency manager source will be tagged to 
felix-dev git repo, usingĀ 
[org.apache.felix.dependencymanager-r|https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.dependencymanager-r]<n>
 tag name.

 * Then a staging release is put in 
[https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r]<n>/
 directory which will contain the three -src.zip, -deps.zip and -bin.zip 
archives.

 * Then a vote starts, and vote participants must then use a custom 
check_staged_release.sh (see [4]). This script, unlike the original Felix 
check_stage_release.sh, will download staging from 
[https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r]<n>
 instead of
 [http://repository.apache.org/content/repositories]

The usage of this command is:
{code:java}
sh check_staged_release.sh r<n> /tmp/felix-staging
(replace r<n> by the actual staging release reversion, like "r1")
{code}
 * Then if the vote has passed, the staging release is promoted and moved to:
 ** 
[https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r]<n>-src.zip
 ** 
[https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r]<n>-deps.zip
 ** 
[https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r]<n>-bin.zip

 * Else, if the vote has failed, the staging release is simply deleted from the 
staging area 
([https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r]<n>)

More informations can be found in [5] concerning how to use the gradle script, 
when making a release.

[1] [http://www.apache.org/dev/release.html]
 [2] [https://ace.apache.org/docs/release-guide.html]
 [3] 
[https://amdatu.atlassian.net/wiki/display/AMDATUDEV/Amdatu+Release+Procedure]
 [4] 
[http://svn.apache.org/repos/asf/felix/trunk/dependencymanager/release/check_staged_release.sh]
 [5] 
[http://svn.apache.org/repos/asf/felix/trunk/dependencymanager/release/README.release]

  was:
The new Dependency Manager 4.0  is now built using gradle and bndtools (see 
FELIX-4816). But this has an impact on the release process because we are not 
using Maven anymore. So, this issue describes a new release process for DM, 
which is for now minimal: we don't use the nexus staging repository and we 
don't release to maven central (this is optional). But we'll try to refine and 
improve the release process gradually, in next DM releases.

So, here is the new release process description:

* it is based mostly on the basic Apache release process (see [1]), and is also 
inspired from the Apache Ace release process (see [2]), and the Amdatu release 
process (see [3]) which are also using bndtools.

* the DM4 release will be in the form of three archives: a source based archive 
(org.apache.felix.dependencymanager-r<n>src.zip), a source binary dependencies 
archive (org.apache.felix.dependencymanager-r<n>deps.zip) containing all 
build-time binary dependencies, and a binary archive  
(org.apache.felix.dependencymanager-r<n>bin.zip) containing all DM bundles for 
convenience.

* Each released artifacts (-src, -deps, -bin) has the same unique release 
version number, regardless of the outcome of the vote. This implies that 
release version used for releases are not to be reused.  By convention, a 
release version is defined as "r<N>", where <N> is a positive integer number 
starting at 1 and is incremented upon each release.

* To verify the integrity of archives, .asc, .md5, and .sha (512) checksum 
files are provided for all archives.

* Before making a release, the dependency manager source will be tagged to 
https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.dependencymanager-r<n>

* Then a staging release is put in 
https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r<n>/
 directory which will contain the three -src.zip, -deps.zip and -bin.zip 
archives.

* Then a vote starts, and vote participants must then use a custom 
check_staged_release.sh (see [4]). This script, unlike the original Felix 
check_stage_release.sh, will download staging from 
https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r<n>
 instead of 
http://repository.apache.org/content/repositories

The usage of this command is:

{code}
sh check_staged_release.sh r<n> /tmp/felix-staging
(replace r<n> by the actual staging release reversion, like "r1")
{code}

* Then if the vote has passed, the staging release is promoted and moved to: 
** 
https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r<n>-src.zip
** 
https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r<n>-deps.zip
** 
https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r<n>-bin.zip

* Else, if the vote has failed, the staging release is simply deleted from the 
staging area 
(https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r<n>)

More informations can be found in [5] concerning how to use the gradle script, 
when making a release.

[1] http://www.apache.org/dev/release.html
[2] https://ace.apache.org/docs/release-guide.html
[3] https://amdatu.atlassian.net/wiki/display/AMDATUDEV/Amdatu+Release+Procedure
[4] 
http://svn.apache.org/repos/asf/felix/trunk/dependencymanager/release/check_staged_release.sh
[5] 
http://svn.apache.org/repos/asf/felix/trunk/dependencymanager/release/README.release



> New release process for Dependency Manager
> ------------------------------------------
>
>                 Key: FELIX-4818
>                 URL: https://issues.apache.org/jira/browse/FELIX-4818
>             Project: Felix
>          Issue Type: Wish
>          Components: Dependency Manager
>            Reporter: Pierre De Rop
>            Assignee: Pierre De Rop
>            Priority: Major
>             Fix For: org.apache.felix.dependencymanager-r1
>
>
> The new Dependency Manager 4.0 is now built using gradle and bndtools (see 
> FELIX-4816). But this has an impact on the release process because we are not 
> using Maven anymore. So, this issue describes a new release process for DM, 
> which is for now minimal: we don't use the nexus staging repository and we 
> don't release to maven central (this is optional). But we'll try to refine 
> and improve the release process gradually, in next DM releases.
> So, here is the new release process description:
>  * it is based mostly on the basic Apache release process (see [1]), and is 
> also inspired from the Apache Ace release process (see [2]), and the Amdatu 
> release process (see [3]) which are also using bndtools.
>  * the DM4 release will be in the form of three archives: a source based 
> archive (org.apache.felix.dependencymanager-r<n>src.zip), a source binary 
> dependencies archive (org.apache.felix.dependencymanager-r<n>deps.zip) 
> containing all build-time binary dependencies, and a binary archive 
> (org.apache.felix.dependencymanager-r<n>bin.zip) containing all DM bundles 
> for convenience.
>  * Each released artifacts (-src, -deps, -bin) has the same unique release 
> version number, regardless of the outcome of the vote. This implies that 
> release version used for releases are not to be reused. By convention, a 
> release version is defined as "r<N>", where <N> is a positive integer number 
> starting at 1 and is incremented upon each release.
>  * To verify the integrity of archives, .asc, .md5, and .sha (512) checksum 
> files are provided for all archives.
>  * Before making a release, the dependency manager source will be tagged to 
> felix-dev git repo, usingĀ 
> [org.apache.felix.dependencymanager-r|https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.dependencymanager-r]<n>
>  tag name.
>  * Then a staging release is put in 
> [https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r]<n>/
>  directory which will contain the three -src.zip, -deps.zip and -bin.zip 
> archives.
>  * Then a vote starts, and vote participants must then use a custom 
> check_staged_release.sh (see [4]). This script, unlike the original Felix 
> check_stage_release.sh, will download staging from 
> [https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r]<n>
>  instead of
>  [http://repository.apache.org/content/repositories]
> The usage of this command is:
> {code:java}
> sh check_staged_release.sh r<n> /tmp/felix-staging
> (replace r<n> by the actual staging release reversion, like "r1")
> {code}
>  * Then if the vote has passed, the staging release is promoted and moved to:
>  ** 
> [https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r]<n>-src.zip
>  ** 
> [https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r]<n>-deps.zip
>  ** 
> [https://dist.apache.org/repos/dist/release/felix/org.apache.felix.dependencymanager-r]<n>-bin.zip
>  * Else, if the vote has failed, the staging release is simply deleted from 
> the staging area 
> ([https://dist.apache.org/repos/dist/dev/felix/org.apache.felix.dependencymanager-r]<n>)
> More informations can be found in [5] concerning how to use the gradle 
> script, when making a release.
> [1] [http://www.apache.org/dev/release.html]
>  [2] [https://ace.apache.org/docs/release-guide.html]
>  [3] 
> [https://amdatu.atlassian.net/wiki/display/AMDATUDEV/Amdatu+Release+Procedure]
>  [4] 
> [http://svn.apache.org/repos/asf/felix/trunk/dependencymanager/release/check_staged_release.sh]
>  [5] 
> [http://svn.apache.org/repos/asf/felix/trunk/dependencymanager/release/README.release]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to