Steps For a Release of Apache MyFaces Extensions Validator

Myfaces Extensions Validator has a module layout that allows release one or all modules together. In other words, it is possible to:

For do that, extval has a parent pom module that could be released at any time. Take into account that all artifacts must follow release procedure guidelines of the ASF (Voting, signing artifacts, LICENSE and NOTICE...).

Release Procedure All Modules at Once

0. Requirements

1. Initial steps

2. Create branches for

3. JIRA Release Management

4. Check the Release Notes

5. Preparing myfaces extensions validator <jsf-version>_<extval-version>

mvn install
mvn install -Pgenerate-assembly
cd assembly
mvn package
cd ..
mvn release:prepare -DprepareRelease=true -DtagBase=https://svn.apache.org/repos/asf/myfaces/extensions/validator/branches/ -Dusername=[user name] -Dtag="[extval version]" -DdryRun=true

mvn release:prepare -DprepareRelease=true -DtagBase=https://svn.apache.org/repos/asf/myfaces/extensions/validator/branches/ -Dusername=[user name] -Dscm.password=[svn password] -Dtag="[extval version]" -Dresume=false

build error occurred
(generally maven release plugin says something about cannot find a dependency that is building)

mvn clean install
mvn install -Pgenerate-assembly
mvn release:rollback -DprepareRelease=true

mvn release:prepare -DprepareRelease=true -DtagBase=https://svn.apache.org/repos/asf/myfaces/extensions/validator/branches/ -Dusername=[user name] -Dscm.password=[svn password] -Dtag="[extval version]" -Dresume=false

(if just the 3rd (last) commit fails, it's possible to continue - this step just increases version numbers - with a special base branch we have to do it manually at the end.)

6. Sign and copy artifacts

Switch to the prepare directory (the directory used before we switched to the generated tag directory)

cd assembly/target/assembly/out

openssl md5 myfaces-extvalXX-1.X.X-src.tar.gz > myfaces-extvalXX-1.X.X-src.tar.gz.md5
openssl md5 myfaces-extvalXX-1.X.X-src.zip > myfaces-extvalXX-1.X.X-src.zip.md5
openssl sha1 myfaces-extvalXX-1.X.X-src.tar.gz > myfaces-extvalXX-1.X.X-src.tar.gz.sha1
openssl sha1 myfaces-extvalXX-1.X.X-src.zip > myfaces-extvalXX-1.X.X-src.zip.sha1
gpg --armor --output myfaces-extvalXX-1.X.X-src.tar.gz.asc --detach-sig myfaces-extvalXX-1.X.X-src.tar.gz
gpg --armor --output myfaces-extvalXX-1.X.X-src.zip.asc --detach-sig myfaces-extvalXX-1.X.X-src.zip
openssl md5 myfaces-extvalXX-1.X.X-bin.tar.gz > myfaces-extvalXX-1.X.X-bin.tar.gz.md5
openssl md5 myfaces-extvalXX-1.X.X-bin.zip > myfaces-extvalXX-1.X.X-bin.zip.md5
openssl sha1 myfaces-extvalXX-1.X.X-bin.tar.gz > myfaces-extvalXX-1.X.X-bin.tar.gz.sha1
openssl sha1 myfaces-extvalXX-1.X.X-bin.zip > myfaces-extvalXX-1.X.X-bin.zip.sha1
gpg --armor --output myfaces-extvalXX-1.X.X-bin.tar.gz.asc --detach-sig myfaces-extvalXX-1.X.X-bin.tar.gz
gpg --armor --output myfaces-extvalXX-1.X.X-bin.zip.asc --detach-sig myfaces-extvalXX-1.X.X-bin.zip

scp *bin* [user name]@people.apache.org:/home/[user name]/public_html/myfaces/extval/release_candidate/1_1_x/website_downloads/binaries
scp *src* [user name]@people.apache.org:/home/[user name]/public_html/myfaces/extval/release_candidate/1_2_x/website_downloads/sources

switch to the project-root

cd examples/assembly/target/assembly/out

openssl md5 myfaces-extval-examples-1.X.X-src.tar.gz > myfaces-extval-examples-1.X.X-src.tar.gz.md5
openssl md5 myfaces-extval-examples-1.X.X-src.zip > myfaces-extval-examples-1.X.X-src.zip.md5
openssl sha1 myfaces-extval-examples-1.X.X-src.tar.gz > myfaces-extval-examples-1.X.X-src.tar.gz.sha1
openssl sha1 myfaces-extval-examples-1.X.X-src.zip > myfaces-extval-examples-1.X.X-src.zip.sha1
gpg --armor --output myfaces-extval-examples-1.X.X-src.tar.gz.asc --detach-sig myfaces-extval-examples-1.X.X-src.tar.gz
gpg --armor --output myfaces-extval-examples-1.X.X-src.zip.asc --detach-sig myfaces-extval-examples-1.X.X-src.zip
openssl md5 myfaces-extval-examples-1.X.X-bin.tar.gz > myfaces-extval-examples-1.X.X-bin.tar.gz.md5
openssl md5 myfaces-extval-examples-1.X.X-bin.zip > myfaces-extval-examples-1.X.X-bin.zip.md5
openssl sha1 myfaces-extval-examples-1.X.X-bin.tar.gz > myfaces-extval-examples-1.X.X-bin.tar.gz.sha1
openssl sha1 myfaces-extval-examples-1.X.X-bin.zip > myfaces-extval-examples-1.X.X-bin.zip.sha1
gpg --armor --output myfaces-extval-examples-1.X.X-bin.tar.gz.asc --detach-sig myfaces-extval-examples-1.X.X-bin.tar.gz
gpg --armor --output myfaces-extval-examples-1.X.X-bin.zip.asc --detach-sig myfaces-extval-examples-1.X.X-bin.zip

scp *bin* [user name]@people.apache.org:/home/[user name]/public_html/myfaces/extval/release_candidate/1_1_x/website_downloads/binaries
scp *src* [user name]@people.apache.org:/home/[user name]/public_html/myfaces/extval/release_candidate/1_2_x/website_downloads/sources

7. Deploy on local repo SUCCESS

mvn clean install -Pgenerate-assembly

mvn clean install deploy -DperformRelease=true  -DaltDeploymentRepository=myfaces-local-staging::default::scp://localhost/home/youraccount/toyourstagedirectory/somedirectorylikerepoextval1XX -DperformRelease=true

8. Copy on people.apache.org

scp -p -r org [user name]@people.apache.org:/home/[user name]/public_html/myfaces/extval/release_candidate/1_1_x/maven_repository/
scp -p -r org [user name]@people.apache.org:/home/[user name]/public_html/myfaces/extval/release_candidate/1_2_x/maven_repository/

9. Ask for vote

Hi,

I was running the needed tasks to get the X.X.X release of Apache MyFaces Extensions Validator out.
The artifacts are deployed to my private Apache account ([1]).

Please take a look at the "X.X.X" artifacts and vote!

Please note:
This vote is "majority approval" with a minimum of three +1 votes (see [2]).

------------------------------------------------
[ ] +1 for community members who have reviewed the bits
[ ] +0
[ ] -1 for fatal flaws that should cause these bits not to be released,
 and why..............
------------------------------------------------

Thanks,
[Your name]

[1] http://people.apache.org/~gpetracek/myfaces/extval/release_candidate/X_X_X/
[2] http://www.apache.org/foundation/voting.html#ReleaseVotes

10. If vote success, continue with the procedure

11. JIRA Release Managment

12. Deployment

mvn clean install deploy -DperformRelease=true -DaltDeploymentRepository=myfaces-staging::default::scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository  

(if there are e.g. timeouts perform the deployment module by module)

copy the downloads
ssh [user name]@people.apache.org

cp public_html/myfaces/extval/release_candidate/1_X_X/website_downloads/binaries/*  /www/www.apache.org/dist/myfaces/binaries/
cp public_html/myfaces/extval/release_candidate/1_X_X/website_downloads/sources/*  /www/www.apache.org/dist/myfaces/source/

check result at

http://repo2.maven.org/maven2/org/apache/myfaces/extensions/validator/myfaces-extval-core/

and

http://www.apache.org/dist/myfaces/binaries/
http://www.apache.org/dist/myfaces/source/

13. Delete old version at www.apache.org/dist

14. ANNOUNCE mail

[ANNOUNCE] Release of Apache MyFaces Extensions Validator 1.x.x

The Apache MyFaces team is pleased to announce the release of
Apache MyFaces Extensions Validator 1.x.x (for JSF 1.x).

Apache MyFaces Extensions Validator is an extensible framework to validate user input based on annotations.

Apache MyFaces Extensions Validator is available in both binary and source distributions:
http://myfaces.apache.org/extensions/validator/download.html

Apache MyFaces Extensions Validator is available in the central Maven repository under
Group ID "org.apache.myfaces.extensions.validator.*".

Release Notes:
[link]

Enjoy!

[Your name]

15. Add release news to

http://svn.apache.org/repos/asf/myfaces/site/trunk/src/site/apt/index.apt

16. Check working copies

Testing

Here's the procedure that anyone can do to help test the distribution.

Release Procedure For Some Module

It is the same procedure described before but point 1 and 2 should be done first on parent module and then on other modules to be released. Assemblies should be numbered against release of parent module.

Additional post site deployment steps

It is possible that we need to manually copy the apidocs for some specific version, to make it available all time on the site. The idea is make this automatically in the future:

cd /www/myfaces.apache.org/extensions/validator11
cp -r ./myfaces-extval-core/apidocs ./myfaces-extval-core/apidocs-1.0.0
cp -r ./component-support-modules-project/myfaces-extval-generic-support/apidocs ./component-support-modules-project/myfaces-extval-generic-support/apidocs-1.0.0
cp -r ./component-support-modules-project/myfaces-extval-trinidad-support/apidocs ./component-support-modules-project/myfaces-extval-trinidad-support/apidocs-1.0.0
cp -r ./validation-modules-project/myfaces-extval-property-validation/apidocs ./validation-modules-project/myfaces-extval-property-validation/apidocs-1.0.0

cd /www/myfaces.apache.org/extensions/validator12
cp -r ./myfaces-extval-core/apidocs ./myfaces-extval-core/apidocs-1.0.0
cp -r ./component-support-modules-project/myfaces-extval-generic-support/apidocs ./component-support-modules-project/myfaces-extval-generic-support/apidocs-1.0.0
cp -r ./component-support-modules-project/myfaces-extval-trinidad-support/apidocs ./component-support-modules-project/myfaces-extval-trinidad-support/apidocs-1.0.0
cp -r ./validation-modules-project/myfaces-extval-property-validation/apidocs ./validation-modules-project/myfaces-extval-property-validation/apidocs-1.0.0

Extensions/Validator/DevDoc/Steps_For_A_Release (last edited 2011-03-10 19:29:49 by GerhardPetracek)