| Building HttpComponents Parent |
| ============================== |
| |
| (1) Requisites |
| -------------- |
| |
| JDK 1.7 or later is required in order to compile and run HttpComponents Parent. |
| |
| HttpComponents Parent utilizes Apache Maven as a distribution management and packaging tool. |
| Version 3.0.5 or later is required. |
| Version 3.5.0 is recommended (this is what I am running.) |
| |
| Maven installation and configuration instructions can be found here: |
| |
| http://maven.apache.org/run-maven/index.html |
| |
| You will also need Apache Subversion and Git: |
| |
| - Apache Subversion: https://subversion.apache.org/ |
| - Git: https://git-scm.com/ |
| |
| These instructions were last used with: |
| |
| Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T13:39:06-06:00) |
| Maven home: C:\Java\apache-maven-3.5.0\bin\.. |
| Java version: 1.7.0_80, vendor: Oracle Corporation |
| Java home: C:\Program Files\Java\jdk1.7.0_80\jre |
| Default locale: en_US, platform encoding: Cp1252 |
| OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows" |
| |
| svn, version 1.9.7-SlikSvn (SlikSvn/1.9.7) |
| compiled Aug 13 2017, 14:10:40 on x86_64-microsoft-windows6.2.9200 |
| |
| git version 2.14.1.windows.1 |
| |
| gpg (GnuPG) 2.0.30 (Gpg4win 2.3.4) |
| libgcrypt 1.7.8 |
| |
| (2) Check local build |
| --------------------- |
| |
| Run the following to make sure all is well: |
| |
| mvn clean package |
| |
| (3) Consider plugin updates |
| --------------------------- |
| |
| Run the following to see which plugins you could update: |
| |
| mvn versions:display-plugin-updates -U |
| |
| (4) Test deploying the SNAPSHOT |
| ------------------------------- |
| |
| Try deploying the current SNAPSHOT as a sanity check: |
| |
| mvn clean deploy |
| |
| (5) Creating a release candidate |
| -------------------------------- |
| |
| Check the license headers: |
| |
| mvn apache-rat:check |
| |
| Check that we have a LICENSE.txt file. |
| |
| Check that we have a NOTICE.txt file and that it has the proper copyright end year, which should be the current year. |
| |
| Make sure the POM shows the correct version and that it is not a SNAPSHOT. |
| |
| Tag the release candidate: |
| |
| git commit -am "Update version numbers for release 9" |
| git tag -s 9-RC1 -m "Tag release 9-RC1" |
| git push origin 9-RC1 |
| |
| Dry-run the release: |
| |
| mvn release:prepare -DdryRun=true |
| |
| Run the release: |
| |
| mvn release:prepare |
| |
| Deploy: |
| |
| mvn deploy -Prelease |
| |
| Login to https://repository.apache.org and close the RC. |
| Keep note of the repository location, for example: https://repository.apache.org/content/repositories/orgapachehttpcomponents-1065 |
| |
| Publish to dist folder: |
| |
| Check out the dist folder for this component: |
| |
| set VERSION=9 |
| set RC_VERSION=9-RC1 |
| set REPO_PATH=%USERPROFILE%\.m2\repository\org\apache\httpcomponents\httpcomponents-parent\%VERSION% |
| svn checkout https://dist.apache.org/repos/dist/dev/httpcomponents/ |
| cd httpcomponents\httpcomponents-parent |
| mkdir %RC_VERSION% |
| cd %RC_VERSION% |
| set RC_DIR=%cd% |
| copy %REPO_PATH%\httpcomponents-parent-%VERSION%.pom . |
| copy %REPO_PATH%\httpcomponents-parent-%VERSION%.pom.asc . |
| ALSO: Copy SHA1 and MD5 files from https://repository.apache.org/content/repositories/orgapachehttpcomponents-???? |
| svn commit -m "Apache HttpComponents Parent %RC_VERSION%" |
| |
| (6) Call for a VOTE |
| ------------------- |
| |
| Email dev@hc.apache.org, for example: |
| |
| Subject: [VOTE] Release HttpComponents Parent version 9 based on RC1 |
| |
| Please vote to release HttpComponents Parent version 9 based on RC1. |
| |
| The changes since version 8 are: |
| |
| - Removed obsolete notice plugin |
| - Removed obsolete svn-buildnumber plugin and profiles |
| - Removed obsolete clover plugin and profile |
| - build-helper-maven-plugin 1.12 -> 3.0.0 |
| - maven-gpg-plugin 1.4 -> 1.6 |
| - maven-assembly-plugin 3.0.0 -> 3.1.0 |
| - maven-compiler-plugin 3.6.0 -> 3.6.1 |
| - maven-compiler-plugin 3.6.1 -> 3.6.2 |
| - maven-compiler-plugin 3.6.2 -> 3.7.0 |
| - maven-surefire-plugin 2.19.1 -> 2.20 |
| - maven-resources-plugin 3.0.1 -> 3.0.2 |
| - maven-bundle-plugin 3.2.0 -> 3.3.0 |
| - jacaoco-maven-plugin 0.7.7.201606060606 -> 0.7.9 |
| - Renamed artifactId to httpcomponents-parent |
| - Added use-toolchains profile; activated if ~/.m2/toolchains.xml exists |
| - maven-javadoc-plugin 2.10.4 -> 3.0.0-M1 (allows building on Java 9.) |
| - animal-sniffer-maven-plugin 1.15 -> 1.16 |
| |
| The vote is open for at least 72 hours. |
| Anyone may vote, but 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. |
| |
| Maven artefacts: |
| https://repository.apache.org/content/repositories/orgapachehttpcomponents-????/ |
| |
| Git tag: |
| https://git-wip-us.apache.org/repos/asf?p=httpcomponents-parent.git;a=commit;h=215ae373d047e2fa886642de24de9a905dbbe7cb |
| |
| Dev dist: |
| https://dist.apache.org/repos/dist/dev/httpcomponents/httpcomponents-parent/9-RC1/ |
| |
| -------------------------------------------------------------------------- |
| Vote: HttpComponents parent pom 5 release based on RC1 |
| [ ] +1 Release the packages as HttpComponents parent pom 5 |
| [ ] -1 I am against releasing the packages (must include a reason). |
| |
| (7) Gather the VOTE result |
| -------------------------- |
| |
| Count and send to dev@hc.apache.org: |
| |
| Subject: [VOTE][RESULT] Release HttpComponents Parent version 9 based on RC1 |
| |
| (8) Publish |
| ----------- |
| |
| Publish to https://dist.apache.org/repos/dist/release/httpcomponents/httpcomponents-parent/ |
| |
| set VERSION=9 |
| set RC_VERSION=9-RC1 |
| set REPO_PATH=%USERPROFILE%\.m2\repository\org\apache\httpcomponents\httpcomponents-parent\%VERSION% |
| svn checkout https://dist.apache.org/repos/dist/release/httpcomponents/ |
| cd httpcomponents\httpcomponents-parent |
| mkdir %VERSION% |
| cd %VERSION% |
| copy %REPO_PATH%\httpcomponents-parent-%VERSION%.pom . |
| copy %REPO_PATH%\httpcomponents-parent-%VERSION%.pom.sha1 . |
| svn commit -m "Apache HttpComponents Parent %VERSION%" |
| |
| Login to https://repository.apache.org and delete any extraneous checksum files: BE CAREFUL WHICH FILES YOU DELETE. |
| Then release the RC. |
| |
| (9) Clean up |
| ------------ |
| |
| Remove the RC form https://dist.apache.org/repos/dist/dev/httpcomponents/ |
| |
| (10) Send Announcement Email |
| ---------------------------- |
| |
| Since this is an internal component, announcing the release to dev@hc.apache.org should be enough. |
| |