Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpcomponents Wiki" 
for change notification.

The "HttpComponentsReleaseProcess" page has been changed by OlegKalnichevski:
https://wiki.apache.org/HttpComponents/HttpComponentsReleaseProcess

New page:
##language:en
#pragma section-numbers off

= HttpComponents Release Process =

== Preparations for using Nexus and uploading files ==

See MavenConfiguration for details on how to set up Maven. This only has to be 
done once.

== Release preparation ==

 * Make sure there are no open Jira issues targeted for this release

 HttpCore - https://issues.apache.org/jira/browse/HTTPCORE
 HttpClient - https://issues.apache.org/jira/browse/HTTPCLIENT
 HttpAsyncClient - https://issues.apache.org/jira/browse/HTTPASYNC

 * Review RELEASE_NOTES.txt and make sure all important issues closed since the 
previous release are included in the release notes

 * Write an opening statement for the release highlighting the most changes, 
bug fixed and improvements

 * Make sure you are using the minimal JDK required by the release 
compatibility requirements and Maven 3.0.3 

{{{
mvn -version
}}}

 * If this is a non-ALPHA release, verify binary compatibility with the 
previous stable baseline version. Baseline version is the latest stable 
xx.yy.00 release 

{{{
mvn clirr:check
}}}

  Please note Clirr currently can't handle Java 5 constructs very well and it 
can generate bogus errors about incompatibility of {{{Enum}}}s

{{{
[INFO] [clirr:check {execution: default-cli}]
[INFO] Comparing to version: 4.0
[ERROR] org.apache.http.impl.nio.reactor.SSLMode: Method 'public 
org.apache.http.impl.nio.reactor.SSLMode[] values()' is now final
[ERROR] org.apache.http.nio.reactor.IOReactorStatus: Method 'public 
org.apache.http.nio.reactor.IOReactorStatus[] values()' is now final
}}}

 * Generate release javadocs

{{{  
mvn javadoc:aggregate
}}}

Make sure the command completes successfully and there are no warnings.

 * Generate tutorial if included in this release. Presently only HttpCore and 
HttpClient have tutorials. 

{{{  
mvn docbkx:generate-pdf docbkx:generate-html
}}}

Make sure the command completes successfully and there are no warnings.

== Release tools ==

 * Make a dedicated local copy of HttpCompoments release tools by checking out 
project source from the following location

https://svn.apache.org/repos/asf/httpcomponents/project-release-tools/trunk

{{{
svn co 
https://svn.apache.org/repos/asf/httpcomponents/project-release-tools/trunk 
release-httpcore-4.3.1
}}} 

Given that a release can span across several days or even weeks it is 
recommended to have a dedicated copy of release tools 
per ongoing release process.

Release tools are basically a collection of Gradle scripts that simplify and 
facilitate time consuming, often tedious and therefore error-prone 
tasks.

 * Prepare gradle.properties 

Make a copy of gradle.properties.template 

{{{
cp gradle.properties.template gradle.properties
}}}

Edit gradle.properties file and update MAVEN_HOME, HC_DEV and signing.keyId 
properties

'MAVEN_HOME' must refer to the local Maven installation

'HC_DEV' must refer to the trunk or a stable branch of the project being 
releases, for example

{{{
http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/
http://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.3.x/
}}} 

'signing.keyId' must contain id of the personal GPG key to be used for signing 
release artifacts. 

'signing.password' may be left empty. In this case the script will be prompting 
for a pass phrase every time access to the key is needed   

 * Make sure that the scripts are valid by listing available tasks

{{{
gradlew -q tasks
}}}

== Building release artifacts ==

 * Prepare release tag

Execute 'prepareRelease' task. 

{{{
gradlew -q prepareRelease
}}} 

Manually enter release version or hit enter to select the default based on 
pom.xml content (current version sans -SNAPSHOT qualifier)

The task will print out the location of the release tag. Please double-check 
its validity. 

{{{
Release tag to be created: 
https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.3.1
}}}

 * Prepare RC tag

Execute 'prepareRC'

{{{
gradlew -q prepareRC
}}} 

Manually enter RC qualifier or hit enter to select the default one (RC1)

The task will print out the location of the RC tag. Please double-check its 
validity. 

{{{
RC tag to be created: 
https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.3.1-RC1
}}}

Optionally run 'previewRC' task to see what changes have been made to the 
current snapshot. 
The RC tag will be created by copying those changes to the tag location 

{{{
gradlew -q previewRC
}}}

{{{
Local changes for 
https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.3.1-RC1
/home/oleg/src/apache.org/httpcomponents/release-httpcore-4.3.1/build/repos-asf-httpcomponents-httpcore-trunk
M       httpcore-osgi/pom.xm
M       httpcore-nio/pom.xm
M       httpcore/pom.xm
M       pom.xm
M       httpcore-ab/pom.xm
}}}

 * Create RC tag

Execute 'commitRC' task to commit the RC tag

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to