This page was moved to https://cwiki.apache.org/confluence/display/CAUSEWAY/ReleaseProcess
Click in the link above if you are not automatically redirected in 10 seconds.


You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Overview

(with thanks to Zoe Slattery)

Release notes summary (to tidy up)

Prereqs
~~~~~~~

GPG keys

  • create key
  • KEYS
  • isis trunk
  • foaf
  • id.apache.org
  • Signing party
  • create subkey

gpg --edit-key xxxxxxxx
gpg> addkey
Key is protected.
enter your secret passphrase

You need a passphrase to unlock the secret key for
user: "Dan Haywood (CODE SIGNING KEY) <danhaywood@apache.org>"
4096-bit RSA key, ID xxxxxxxx, created 2011-02-01

Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
Your selection? 4

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096

Requested keysize is 4096 bits

Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 1y

Key expires at xx/xx/xx xx:xx:xx
Is this correct? (y/N) y
Really create? (y/N) y
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
...+++++
.+++++

pub 4096R/xxxxxxxx created: yyyy-mm-dd expires: never usage: SC
trust: ultimate validity: ultimate
sub 4096R/xxxxxxxx created: yyyy-mm-dd expires: never usage: E
sub 4096R/xxxxxxxx created: yyyy-mm-dd expires: yyYY-mm-dd usage: S
ultimate (1). Dan Haywood (CODE SIGNING KEY) <danhaywood@apache.org>

gpg>

  • mvn settings
  • edit settings.xml with passphrase.

~~~~~~~~~~~~~~~~~
JIRA

Changes.txt

mvn license:download-licenses

  • target/generated-resources/licenses.xml
  • checklicenses.groovy
  • update src/main/appended-resources/supplemental-dataModels.xml

RAT tool

Release Practice
~~~~~~~~~~~~~~~~

svn mkdir https://svn.apache.org/repos/asf/incubator/isis/branches/release-practice3 -m "branching in order to practice release process"

svn copy https://svn.apache.org/repos/asf/incubator/isis/trunk https://svn.apache.org/repos/asf/incubator/isis/branches/release-practice3/trunk -m "branching in order to practice release process"

cd .../trunk # your local workspace for isis/trunk
cd ..
mkdir branches/release-practice3
cp -R trunk branches/release-practice3/trunk

cd branches/release-practice3/trunk
svn switch https://svn.apache.org/repos/asf/incubator/isis/branches/release-practice3/trunk

edit pom.xml, change 'trunk' -> 'branches/release-practice3/trunk'

  • scm/connection
  • scm/developerConnection
  • scm/url

and commit pom.xml

mvn release:clean release:prepare -P apache-release -D dryRun=true

  • suggest specify version as 0.x.x-RCn-incubating

Release Proper
~~~~~~~~~~~~~~
mvn release:clean release:prepare -P apache-release -D skipTests=true

  • suggest specify version as 0.x.x-RCn-incubating

(and then do the whole process over once vote is in)

Deploy for voting
~~~~~~~~~~~~~~
yada yada

Earlier notes made while at Knockree

Release notes

1. discovered that the mvn release:prepare will fail if try to run on cygwin in Windows

  • so don't do this! use CMD.EXE on Windows, or regular shell on Ubuntu/Mac.
    2. need to verify all licenses. After a bit of experimentation, found the following worked:
  • mvn license:download-licenses
    • generates target/generated-resources/licenses.xml for every module
    • indicates the license (taken from the dependencies' pom)
  • groovy checkmissinglicenses.groovy
    • parses the output and lists those dependencies
      3. updated .../trunk/src/main/appended-resources/supplemental-models.xml
  • which has licenses for almost all of those dependencies where the license info is missing
  • for the remainder, have manually created some xxx.LICENSE.txt files in appended-resources

4. have added maven-remote-resources-plugin

  • which will process the above licenses and generate
  • also references the apache-incubator-disclaimer-resource-bundle, needed for incubator projects

TODO: need to figure out how to add the xxx.LICENSE.txt files. Think the easiest might be to add our own custom resource bundle and use to generate.

1. suggestion made was to manually create a branch and experiment with what the mvn release does. So...
2. svn mkdir https://svn.apache.org/repos/asf/incubator/isis/branches/release-practice -m "yada yada"
3. svn copy https://svn.apache.org/repos/asf/incubator/isis/trunk https://svn.apache.org/repos/asf/incubator/isis/branches/release-practice/trunk
4. in workspace, cp -R the trunk to a new dir, and svn switch
5. recommendation from Zoe Slattery:

  • updated parent pom's <scm>/<url> to reflect this dir.

Do a dry run
5. mvn -Papache-release release:prepare -DdryRun=true


Running the RAT Tool (from Nour)

Here's how I used RAT 1:

1. mvn clean eclipse:clean

This step to move any files which are not part of source code and
any binary file as a result of a build.

2. I checked out the source code of RAT tool and built a JAR.

3- I have an updated source code working copy of Isis trunk.

4- java -jar apache-rat-0.8-SNAPSHOT.jar ./
Out of that command I got the attached RAT report.

I could interpret the information there by comparing it with a report
I generated for Apache OpenEJB 2, but I still need someone to have a
look at it more specifically for files IDK what they are used for, for
example the *.hsp files and like.

But as a general note, I believe we need to add ASL header for each
and every file which going to be included in our source tar-ball and
which is not generated as generated files don't need to have that
header, if we can add it thats better but if not then no problem.

Releases "Proper"

There's an official write-up of the process for publishing maven artifacts at http://www.apache.org/dev/publishing-maven-artifacts.html.

There's also a fantastic write-up (so Mark tells us) about how to release using the stuff inherited from org.apache:apache-parent:7 (as we do). It was put together by Donald Woods, and can be found at http://incubator.apache.org/bval/cwiki/release-process.html

Nour's notes

I found these resources as start to get a hands on experience about
Apache release process.

General release process rules:
--------------------------------------------
1- http://www.apache.org/dev/release-publishing.html
2- http://www.apache.org/dev/release.html

Podling release management:
-------------------------------------------
1- http://incubator.apache.org/incubation/Incubation_Policy.html#Releases
2- http://incubator.apache.org/guides/releasemanagement.html

  • No labels