You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@infra.apache.org by "Jason van Zyl (JIRA)" <ji...@apache.org> on 2009/01/31 17:51:59 UTC

[jira] Updated: (INFRA-1885) Install Nexus on people.apache.org so Maven projects can stage and promote releases

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

Jason van Zyl updated INFRA-1885:
---------------------------------

    Description: 
The staging and promotion features in Nexus would allow Maven project to easily deploy a release to a staging repository for voting, and then simply press a button in the Web UI to promote it to the production Apache repository for releases. Here is the proposal from Brian:

It seems that many circumstances are converging at the same time to show 
that we need to make the next step and use active repository management 
on the Apache repository. The increased pace of releases lately is 
showing the flaws in the current system and it's not even possible to 
deploy a release right now on p.a.o[1]. That's only a temporary issue, 
but more noticeable is that we require all releases be staged and using 
the maven-staging-plugin has always been a stop gap measure. It's slow 
and inconvenient to use and often breaks down in the middle of a release 
due to uncorrected permissions on the file system from a previous 
release, or simply from transport errors due to the large amount of data 
pulled down and pushed back up. 

  

I'm proposing that we use Nexus Pro to manage the repository because of 
the staging support. The staging and promotion suite of Nexus allows you 
to stage release artifacts before they go live in a release repository. 
A single URL for all projects is all you need in your 
distributionManagement and Nexus can sort out where they go based on 
profiles you define. These profiles allow you to control which artifacts 
get staged together, who gets notified, who can see them, etc. These 
staged artifacts go into a temporary repository that is created on the 
fly when you deploy. This repository is then used for testing and 
subsequently dropped or promoted in a single transaction to your release 
repository. We've been using this for the Nexus OSS releases for a few 
months and it saves us tons of time when we stage / test / restage 
releases, and completely eliminates the manual artifact and metadata 
manipulation previously required. This will also make it much easier to 
stage dependent releases together into a single repository. You can read 
more details about staging here[2] 

  

Besides the staging support, having an repository manager will provide 
us additional benefits: 

 We won't have to deal with people forgetting to reset the permissions. 

 The metadata will always be corrected, even from non-maven native 
projects. 

 The snapshot repository will be actively managed to reduce overall disk 
use creep that requires drastic measures like dumping the whole thing. 

 The plugin API will allow us to evolve and tailor the system to meet 
future Apache processes and requirements (such as enforcing valid 
signatures, licensing requirements, packaging requirements, etc). 

  

There are other MRMs out there (including one here at Apache), but none 
of them support the staging process the we need right now.  Nexus also 
requires the least overhead in terms of resources and external 
dependencies (none). Using the new LDAP setup being piloted at ASF Infra 
will make it finally possible to tie all the correct user accounts 
together for committers. Sonatype is making free Nexus Pro licenses 
available to OSS projects and naturally Apache qualifies. This is 
similar to the existing Jira and Confluence installations being used by 
Apache projects via a free OSS license from Atlassian[4],[5] 

  

The Apache repository is an organization-wide resource used for all 
Apache releases that then get synced to Central. I'm proposing it here 
as the Maven team is in the best position to get it setup and worked out 
before rolling it out to the rest of the organization, but there's no 
doubt that this will be useful to all Apache projects built with Maven. 

  

In the interest of full disclosure, I work at Sonatype and manage the 
engineering team that produces Nexus. We will support and manage the 
installation as required. 

  

[1] https://issues.apache.org/jira/browse/INFRA-1886

[2] http://books.sonatype.com/nexus-book/reference/staging.html

[3] http://nexus.sonatype.org

[4] http://www.atlassian.com

[5] https://issues.apache.org



  was:The staging and promotion features in Nexus would allow Maven project to easily deploy a release to a staging repository for voting, and then simply press a button in the Web UI to promote it to the production Apache repository for releases.


> Install Nexus on people.apache.org so Maven projects can stage and promote releases
> -----------------------------------------------------------------------------------
>
>                 Key: INFRA-1885
>                 URL: https://issues.apache.org/jira/browse/INFRA-1885
>             Project: Infrastructure
>          Issue Type: New Feature
>      Security Level: public(Regular issues) 
>            Reporter: Jason van Zyl
>            Priority: Minor
>
> The staging and promotion features in Nexus would allow Maven project to easily deploy a release to a staging repository for voting, and then simply press a button in the Web UI to promote it to the production Apache repository for releases. Here is the proposal from Brian:
> It seems that many circumstances are converging at the same time to show 
> that we need to make the next step and use active repository management 
> on the Apache repository. The increased pace of releases lately is 
> showing the flaws in the current system and it's not even possible to 
> deploy a release right now on p.a.o[1]. That's only a temporary issue, 
> but more noticeable is that we require all releases be staged and using 
> the maven-staging-plugin has always been a stop gap measure. It's slow 
> and inconvenient to use and often breaks down in the middle of a release 
> due to uncorrected permissions on the file system from a previous 
> release, or simply from transport errors due to the large amount of data 
> pulled down and pushed back up. 
>   
> I'm proposing that we use Nexus Pro to manage the repository because of 
> the staging support. The staging and promotion suite of Nexus allows you 
> to stage release artifacts before they go live in a release repository. 
> A single URL for all projects is all you need in your 
> distributionManagement and Nexus can sort out where they go based on 
> profiles you define. These profiles allow you to control which artifacts 
> get staged together, who gets notified, who can see them, etc. These 
> staged artifacts go into a temporary repository that is created on the 
> fly when you deploy. This repository is then used for testing and 
> subsequently dropped or promoted in a single transaction to your release 
> repository. We've been using this for the Nexus OSS releases for a few 
> months and it saves us tons of time when we stage / test / restage 
> releases, and completely eliminates the manual artifact and metadata 
> manipulation previously required. This will also make it much easier to 
> stage dependent releases together into a single repository. You can read 
> more details about staging here[2] 
>   
> Besides the staging support, having an repository manager will provide 
> us additional benefits: 
>  We won't have to deal with people forgetting to reset the permissions. 
>  The metadata will always be corrected, even from non-maven native 
> projects. 
>  The snapshot repository will be actively managed to reduce overall disk 
> use creep that requires drastic measures like dumping the whole thing. 
>  The plugin API will allow us to evolve and tailor the system to meet 
> future Apache processes and requirements (such as enforcing valid 
> signatures, licensing requirements, packaging requirements, etc). 
>   
> There are other MRMs out there (including one here at Apache), but none 
> of them support the staging process the we need right now.  Nexus also 
> requires the least overhead in terms of resources and external 
> dependencies (none). Using the new LDAP setup being piloted at ASF Infra 
> will make it finally possible to tie all the correct user accounts 
> together for committers. Sonatype is making free Nexus Pro licenses 
> available to OSS projects and naturally Apache qualifies. This is 
> similar to the existing Jira and Confluence installations being used by 
> Apache projects via a free OSS license from Atlassian[4],[5] 
>   
> The Apache repository is an organization-wide resource used for all 
> Apache releases that then get synced to Central. I'm proposing it here 
> as the Maven team is in the best position to get it setup and worked out 
> before rolling it out to the rest of the organization, but there's no 
> doubt that this will be useful to all Apache projects built with Maven. 
>   
> In the interest of full disclosure, I work at Sonatype and manage the 
> engineering team that produces Nexus. We will support and manage the 
> installation as required. 
>   
> [1] https://issues.apache.org/jira/browse/INFRA-1886
> [2] http://books.sonatype.com/nexus-book/reference/staging.html
> [3] http://nexus.sonatype.org
> [4] http://www.atlassian.com
> [5] https://issues.apache.org

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.