| ================================================================================ |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ================================================================================ |
| |
| |
| How to do a Apache Commons Daemon release |
| ========================================= |
| |
| Review open issues in Jira. |
| Review open PRs on GitHub. |
| Update to latest commons-parent and fix any issues. |
| |
| Use Java 8. |
| Do not use Apache Maven 3.8.2 onwards due to |
| https://issues.apache.org/jira/browse/MNG-7316 |
| |
| If you haven't already, add your public PGP key to KEYS. |
| |
| |
| Update version numbers as needed |
| -------------------------------- |
| |
| Set the RC property (before tagging): |
| - /pom.xml (commons.rc.version) |
| |
| Update the old version property (before tagging): |
| - /pom.xml (commons.bc.version) |
| |
| Do a find for all the files which include the previous version string |
| and replace it with the new version. |
| |
| These include: |
| Before tagging: |
| - /RELEASE-NOTES.txt (version) |
| - /pom.xml (version & commons.release.version) |
| - /src/changes/changes.xml (Set date) |
| - /src/native/unix/man/jsvc1.xml (Set date & version) |
| - /src/native/unix/native/version.h (version) |
| - /src/native/windows/apps/prunmgr/prunmgr.h (version) |
| - /src/native/windows/apps/prunmgr/prunmgr.rc (version x3) |
| - /src/native/windows/apps/prunsrv/prunsrv.h (version) |
| - /src/native/windows/apps/prunsrv/prunsrv.rc (version x2) |
| - /src/samples/SimpleApplication.sh (version) |
| - /src/site/xdoc/binaries.xml (version) |
| Only in tag: |
| - /pom.xml (remove -SNAPSHOT) |
| - /src/native/unix/native/version.h (JSVC_IS_DEV_VERSION 0) |
| |
| Search for the text "THIS FILE IS GENERATED BY" and regenerate the generated |
| files. |
| |
| |
| Checkout |
| -------- |
| |
| Check out a clean copy of commons daemon from git to make sure you don't have |
| any lingering configure or build files. This will make sure that the source |
| distribution created is clean. |
| |
| We assume, that you checked out |
| https://gitbox.apache.org/repos/asf/commons-daemon.git |
| to a directory named daemon. All further path names will be relative to this |
| directory. |
| |
| If building from an existing checkout, clean the build directories: |
| mvn clean |
| |
| |
| Create native build scripts |
| --------------------------- |
| |
| cd src/native/unix |
| sh support/buildconf.sh |
| |
| |
| Native build |
| ------------ |
| |
| Build and sign the Windows binaries. |
| Place the signed Windows binaries in: |
| target/prunsrv.exe |
| target/prunmgr.exe |
| target/amd64/prunsrv.exe |
| |
| Note: `nmake -f Makefile install` will place these files in the correct |
| locations but they will be unsigned |
| |
| |
| Maven tasks |
| ----------- |
| |
| To deploy the Java jars to the Nexus staging repo: |
| |
| mvn deploy -Dcommons.release.isDistModule=true -Prelease [-Ptest-deploy] |
| |
| The test-deploy profile will deploy to target/deploy; omit for the live deploy |
| |
| Note: do not use clean in the same invocation. |
| Remove the following artifacts and associated hashes/sigs from the Nexus staging |
| repository before closing the repository: |
| - tests.jar (there are no tests, just a simple sample) |
| - test-sources.jar (there are no tests, just a simple sample) |
| Do not remove the binary distributions since some users depend on Maven Central |
| to obtain these. |
| |
| Note the Nexus repository ID (the number at the end of the repository name). |
| |
| Generate the release vote text with: |
| |
| mvn commons-release:vote-txt -Dcommons.nexus.repo.id=<repository-id> |
| |
| The following manual changes will be required to the generated VOTE.txt: |
| - remove ALv2 header |
| - transfer email headers to "To" and "Subject" |
| - edit the first line to reflect what has actually changed |
| - Correct the link to the Maven artifacts ".../org/apache/commons/..." -> |
| ".../commons-daemon/..." |
| https://repository.apache.org/content/repositories/orgapachecommons-1538/org/apache/commons/commons-daemon/1.2.4 |
| - remove comments above the hashes, hashes for .asc files, hashes for the |
| tests.jar and test-sources.jar and the comment that .asc hashes aren't |
| required |
| - if the site hasn't been added to dist, remove the sections on changes, site, |
| CLIRR, JApiCmp and RAT |
| |
| |
| Updating the site |
| ----------------- |
| |
| See https://commons.apache.org/site-publish.html |