blob: aea5f8fe8528f08e190c455ef78e3d8937e66081 [file] [log] [blame]
================================================================================
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.
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_VERION 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