Dear wiki user,

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

The page "HttpComponentsReleaseProcess" has been deleted by OlegKalnichevski:

https://wiki.apache.org/HttpComponents/HttpComponentsReleaseProcess?action=diff&rev1=30&rev2=31

Comment:
Content moved to https://github.com/ok2c/httpcomponents-release-tools/wiki

- ##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
- 
-  * Maven 3.1.1 does not work (Error: Could not find or load main class 
org.codehaus.plexus.classworlds.launcher.Launcher)
- 
-  * Maven 3.0.5 works.
- 
- {{{
- 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:
- 
- ~-Linux-~
- 
- {{{
- cp gradle.properties.template gradle.properties
- }}}
- ~-Windows-~
- 
- {{{
- copy gradle.properties.template gradle.properties
- }}}
- Edit gradle.properties file and update 'MAVEN_HOME', 'HC_DEV' and 'signing.*' 
properties
- 
- 'MAVEN_HOME' must refer to the local Maven installation. You must set 
'MAVEN_HOME' even if you have a 'MAVEN_HOME' environment variable.
- 
- ~-Linux-~
- 
- {{{
- MAVEN_HOME=opt/maven
- signing.secretKeyRingFile=$HOME/.gnupg/secring.gpg
- }}}
- ~-Windows-~
- 
- {{{
- MAVEN_HOME=C:\\Java\\apache-maven-3.0.5
- signing.secretKeyRingFile=C:/Users/ggregory/AppData/Roaming/gnupg/secring.gpg
- }}}
- 'HC_DEV' must refer to the trunk or a stable branch of the project being 
releases, for example:
- 
- {{{
- https://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/
- https://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.3.x/
- }}}
- Important: Check that you are using '''https''' and not '''http'''.
- 
- 'signing.keyId' must contain id of the personal GPG key to be used for 
signing release artifacts.
- 
- 'signing.secretKeyRingFile' must refer to the personal GPG ring file.
- 
- '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 ==
-  * Check out the latest snapshot from the release branch
- 
- {{{
- gradlew -q checkoutSnapshot
- }}}
-  * Prepare release tag
- 
- {{{
- 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
- 
- {{{
- 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 preview 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.xml
- M       httpcore-nio/pom.xml
- M       httpcore/pom.xml
- M       pom.xml
- M       httpcore-ab/pom.xml
- }}}
-  * Create RC tag
- 
- {{{
- gradlew -q commitRC
- }}}
-  * Check out RC from the RC tag
- 
- {{{
- gradlew -q checkoutRC
- }}}
-  * Build RC and install it to the local Maven repository
- 
- {{{
- gradlew -q buildRC
- }}}
- This task will execute 'maven install site' as an external command. Make sure 
the task terminates  successfully without any error.
- 
-  * If a gpg agent is present, deploy RC to the staging artifact repositor 
with:
- 
- {{{
- gradlew -q deployRC
- }}}
- This task will execute 'maven -Prelease deploy' as an external command.  Make 
sure the task terminates successfully without any error.
- 
- The 'release' profile parameter will cause release artifacts to be signed 
prior to deployment to Nexus where will be held in the staging repository until 
they are promoted or deleted.
- 
- The command assumes presence of a functional gpg setup and of a gpg agent on 
the local system.
- 
-  * If a gpg agent is ''not'' present, deploy RC to the staging artifact 
repositor with Maven manually:
- 
- {{{
- gradlew -q locateRC
- }}}
- {{{
- Please deploy HttpCore 4.3.1 based on RC1 from the following directory using 
'mvn deploy -Prelease'
- 
/home/oleg/src/apache.org/httpcomponents/project-release-tools/build/repos-asf-httpcomponents-httpcore-tags-4.3.1-RC1
- }}}
- Change to the RC location and execute 'mvn deploy -Prelease' passing 
additional parameters, if necessary, for example:
- 
- {{{
- cd 
/home/oleg/src/apache.org/httpcomponents/project-release-tools/build/repos-asf-httpcomponents-httpcore-tags-4.3.1-RC1
- mvn deploy -Prelease -Dgpg.passphrase=MySecret
- }}}
- Login to the ASF Nexus repository manager at the following location
- 
- https://repository.apache.org/index.html#welcome
- 
-  * Select 'Staging Repositories'
-  * Mark release artifacts as 'Closed' in the Nexus artifact repository
-   * Check that the correct files are present (e.g. binary, source, Javadoc), 
and "Close" the upload directory.
-   * This will allow the files to be seen publicly, but the files won't be 
added to the Central Maven repo yet.
-   * You can then delete any unwanted files (such as .asc.md5 and .asc.sha1) 
(N.B. You cannot delete files until the upload is closed).
-   * Check that the files at the public URL look OK.
-   * If not, you can delete them all and try again.
- 
- Important! The public URL, which will look something like  
https://repository.apache.org/content/repositories/orgapachehttpcomponents-nnn/,
 should be copied into the Release Vote e-mail (see below).
- 
-  * Check out staging dist repository
- 
- {{{
- gradlew -q checkoutDistStage
- }}}
-  * Assemble release dist packages
- 
- {{{
- gradlew -q assemble
- }}}
- The build script will prompt for key pass-phrase if the 'signing.password' 
parameter has been left  empty in gradle.properties.
- 
-  * Prepare dist packages for import into the staging repository
- 
- {{{
- gradlew -q prepareDist
- }}}
- Optionally run preview task to see what files have been scheduled for import 
into the staging  repository.
- 
- {{{
- gradlew -q previewDist
- }}}
- {{{
- Local changes for release dist 
https://dist.apache.org/repos/dist/dev/httpcomponents/
- 
/home/oleg/src/apache.org/httpcomponents/release-httpcore-4.3.1/build/repos-dist-dev-httpcomponents
- A       httpcore-4.3.1-RC1
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-osgi-bin.zip.md5
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-bin.zip
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-osgi-bin.tar.gz.md5
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-osgi-bin.zip
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-src.zip
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-bin.tar.gz
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-bin.tar.gz.md5
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-src.tar.gz.asc
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-bin.tar.gz.asc
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-osgi-bin.zip.asc
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-osgi-bin.tar.gz.asc
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-bin.zip.md5
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-src.tar.gz.md5
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-src.tar.gz
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-src.zip.md5
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-osgi-bin.tar.gz
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-bin.zip.asc
- A       httpcore-4.3.1-RC1/RELEASE_NOTES-4.3.x.txt
- A       httpcore-4.3.1-RC1/httpcomponents-core-4.3.1-src.zip.asc
- }}}
-  * Commit dist packages to the staging repository
- 
- {{{
- gradlew -q commitDist
- }}}
- == Release vote ==
-  * Prepare release vote content
- 
- {{{
- gradlew -q prepareVote
- }}}
- This will generate output like the following:
- 
- {{{
- ----------------8<-------------[ cut here ]------------------
- [VOTE] Release HttpComponents Core 4.3.1 based on RC1
- 
- Please vote on releasing these packages as HttpComponents Core 4.3.1.
- The vote is open for the at least 72 hours, and only votes from
- HttpComponents PMC members are binding. The vote passes if at least
- three binding +1 votes are cast and there are more +1 than -1 votes.
- 
- Packages:
- https://dist.apache.org/repos/dist/dev/httpcomponents/httpcore-4.3.1-RC1
- revision 3948
- 
- Release notes:
- 
https://dist.apache.org/repos/dist/dev/httpcomponents/httpcore-4.3.1-RC1/RELEASE_NOTES-4.3.x.txt
- 
- Maven artefacts:
- [link]
- 
- SVN tag:
- https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.3.1-RC1
- revision 1551921
- 
- --------------------------------------------------------------------------
- Vote: HttpComponents Core 4.3.1 release
- [ ] +1 Release the packages as HttpComponents Core 4.3.1.
- [ ] -1 I am against releasing the packages (must include a reason).
- ----------------8<-------------[ cut here ]------------------
- }}}
-  * Replace '[link]' with the Nexus URL from https://repository.apache.org
-  * Call release vote on [email protected] by sending the generated and edited 
text
- 
- == Release vote result ==
-  * Tally votes after the voting deadline elapsed (usually 72 hours, but may 
be extended if not
-   . enough votes have been cast)
- 
- === If the vote fails ===
-  * Cancel current RC
- 
- {{{
- gradlew -q cancelRC
- }}}
-  . This command will invalidate local RC checkout and increment RC count. It 
will _not_ remove any staged artifacts or packages.
- 
-  * Login to Nexus and "Delete" the staged uploads
- 
- https://repository.apache.org/index.html#welcome
- 
-  * Address concerns / problems stated as reasons for negative votes in your 
normal development
- 
- environment
- 
-  * Update the local snapshot from the release branch to pull the latest 
changes
- 
- {{{
- gradlew -q updateSnapshot
- }}}
-  * Restart the release process from the 'Prepare RC tag' section.
- 
- === If the vote succeeds ===
-  * Find the original original voting thread at
- 
- http://mail-archives.apache.org/mod_mbox/hc-dev/
- 
-  * Prepare vote result message using the following template
- 
- {{{
- [VOTE][RESULT] HttpComponents Core 4.3.1 release
- 
- The vote to release HttpComponents Core 4.3.1 has passed with the following 
results
- 
- +1 (4 binding votes in total)
- aaaa <aaaa -at- apache.org> *
- bbbb <bbbb -at- apache.org>
- cccc <cccc -at- apache.org> *
- dddd <dddd -at- apache.org> *
- eeee <eeee -at- apache.org> *
- 
- -1 (1 binding vote in total)
- 
- ffff <ffff -at- apache.org> *
- 
- * binding votes
- 
- Original voting thread:
- [insert link here]
- }}}
-  * Send results to [email protected] and [email protected]
- 
-  * Promote the current RC to official release
- 
- {{{
- gradlew -q promoteRC
- }}}
- {{{
- Promoting HttpCore 4.3.1 RC1 to official release
- Copying 
https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.3.1-RC1 to 
https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.3.1
- }}}
- == Release deployment ==
-  * Deploy release artifacts
- 
- Login to the Nexus repository, and "Release" the staging directory.
- 
- https://repository.apache.org/index.html#welcome
- 
- This will cause the artifacts to be released to the Central Maven repo.
- 
-  * Deploy dist packages
- 
- {{{
- gradlew -q promoteDist
- }}}
- Alternatively if some customization of the process is required one may 
generate a svnmucc input  file instead
- 
- {{{
- gradlew -q svnmucc
- }}}
- == Prepare next development cycle ==
- * Update project metadata in pom.xml files
- 
- {{{
- gradlew -q prepareNextVersion
- }}}
- Manually enter next snapshot version or hit enter to select the default based 
on pom.xml content
- 
- Optionally run preview task to see what changes have been made to the current 
snapshot.
- 
- {{{
- gradlew -q previewNextVersion
- }}}
- {{{
- Next development version: 4.3.2-SNAPSHOT
- 
/home/oleg/src/apache.org/httpcomponents/release-httpcore-4.3.1/build/repos-asf-httpcomponents-httpcore-trunk
- M       httpcore-osgi/pom.xml
- M       httpcore-nio/pom.xml
- M       httpcore/pom.xml
- M       pom.xml
- M       httpcore-ab/pom.xml
- }}}
-  * Commit updated project metadata
- 
- {{{
- gradlew -q commitNextVersion
- }}}
- == Update project website site ==
- === Update website source ===
- Project website source can be found here
- 
- http://svn.apache.org/repos/asf/httpcomponents/project-website/trunk/
- 
-  * Review and update News, Status, Download pages
- 
-  * Check that the ApacheCon advert in the css file is for the appropriate date
- 
- {{{
- src/site/apt/news.apt
- src/site/apt/status.apt
- src/site/resources/css/hc-maven.css
- src/site/xdoc/downloads.xml
- }}}
- === Prepare local stage ===
-  * Checkout the latest snapshot of the main website source and the released 
project
- 
- {{{
- gradlew -q checkoutFullWebsite
- }}}
-  * Render website content
- 
- {{{
- gradlew -q generateFullWebSite
- }}}
- You may get an error here if the parent POM is not present because the 
project uses a SNAPSHOT version. You can checkout the project trunk (for 
example 8-SNAPSHOT) at 
http://svn.apache.org/repos/asf/httpcomponents/project/trunk/ and install it 
locally by running 'mvn install -N'.
- 
- You can at any time pick up the latest changes from the repository by running
- 
- {{{
- gradlew -q updateMainWebSite generateFullWebSite
- }}}
-  * Prepare project site stage
- 
- {{{
- gradlew -q checkoutSiteStage
- }}}
-  * Stage updated website content
- 
- {{{
- gradlew -q siteStage
- }}}
-  * Preview staged website content
- 
- {{{
- gradlew -q previewSiteStage
- }}}
- {{{
- Local changes for project website
- 
/home/oleg/src/apache.org/httpcomponents/release-httpcore-4.3.1/build/repos-asf-httpcomponents-site
- ...
- }}}
- You can now use a browser to review the content located in the staging 
directory.
- 
-  * Commit staged website content
- 
- Once satisfied with the changes, commit local changes to the repository.
- 
- {{{
- gradlew -q commitSiteStage
- }}}
- Enter commit message when promted
- 
- {{{
- oleg@ubuntu:~/src/apache.org/httpcomponents/release-httpcore-4.3.1$ ./gradlew 
-q commitSiteStage
- Please enter commit message:
- ...
- }}}
- == Announce release ==
-  * Before sending out an announcement, check that the files are available 
through Maven (https://search.maven.org) and some mirrors. Waiting 24 hours 
gives the Maven repositories and mirrors a chance to distribute the files.
-  * Send out an announcement to the following lists: [email protected] , 
[email protected] ,
-   . [email protected] , [email protected]
- 
- {{{
- [ANNOUNCEMENT] HttpComponents Core 4.3.1 Released
- 
- The Apache HttpComponents project is pleased to announce 4.3.1 GA release of 
HttpComponents Core.
- 
- [release specific content]
- 
- Download -
- <http://hc.apache.org/downloads.cgi>
- Release notes -
- <http://www.apache.org/dist/httpcomponents/httpcore/RELEASE_NOTES.txt>
- HttpComponents site -
- <http://hc.apache.org/>
- 
- About HttpComponents Core
- 
- HttpCore is a set of low level HTTP transport components that can be used to 
build custom client and server side HTTP services with a minimal footprint. 
HttpCore supports two I/O models: a blocking I/O model based on the classic 
Java I/O and a non-blocking, event driven I/O model based on Java NIO.
- }}}
- == Post-release JIRA admin tasks ==
-  * Update JIRA project data: Project -> Administer project -> Versions: Manage
-   * HttpCore - https://issues.apache.org/jira/browse/HTTPCORE
-   * HttpClient - https://issues.apache.org/jira/browse/HTTPCLIENT
-   * HttpAsyncClient - https://issues.apache.org/jira/browse/HTTPASYNC
- 
-  * Mark current version as Released
- 
-  * This may also be a good moment to mark old unsupported release versions as 
Archived  and to add new release targets
- 
-  * Delete old versions from https://www.us.apache.org/dist/httpcomponents/
- 

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

Reply via email to