123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- POI Release Guide
-
-
- (I) Prerequisites
-
- 1. You should read the <a href="http://apache.org/dev/release.html">Apache Release FAQ</a>
- 2. You must have shell access to people.apache.org
- 3. Release manager must have his public key appended to the KEYS file checked in to SVN and the key published on one of the public key servers.
- More info can be found here: <a href="http://www.apache.org/dev/release-signing.html">http://www.apache.org/dev/release-signing.html</a>
- 4. You must have <a href="java.sun.com">JDK 1.4 / 1.5</a>
- 5. You must have the following utilities installed on your local machine and available in your path:
- * <a href="www.openssh.com">ssh</a>
- * <a href="www.gnupg.org">gnupg</a>
- * <a href="www.openssl.org">openssl</a>
- For Windows users, install Cygwin and make sure you have the above utilities
- 6. The POI build system requires two components to perform a build
- * <a href="ant.apache.org">Ant</a>
- * <a href="http://forrest.apache.org/">Forrest</a>.
- POI 3.0.2 and 3.1 were built using Ant 1.6.2 and Forrest 0.5
-
- (II) Making release artefacts
- 1. Update version id in build.xml
- {code:xml}
- <property name="version.id" value="3.1-beta1"/>
- {code}
-
-
- 1a Check file permissions in SVN.
- There can be files in the SVN tree marked executable (have the
- svn:executable property set), but which should not be. Checking them out will cause
- the executable bit to be set for them on filesystems which support it.
- The flag can be removed in batch using
-
- $ svn pd 'svn:executable' $(find -name .svn -prune -or -type f ! -name \*.sh \
- -print0 | xargs -0 svn pg 'svn:executable' | cut -d ' ' -f 1)
-
-
- 2. Tag current version. Include the current revision number in the comment
-
- {code}
- $ svn cp https://svn.apache.org/repos/asf/poi/trunk \
- https://svn.apache.org/repos/asf/poi/tags/$TAG \
- -m "tag r649911 as 3.1-beta1"
- {code}
-
- where $TAG is the release tag, for example, REL_3_1_BETA1
-
- 3. Checkout the tagged version
- {code}
- cd tags
- svn checkout https://svn.apache.org/repos/asf/poi/tags/$TAG
- {code}
-
- 4. Merge (if required)
-
- {code}
- cd $TAG
- $ svn merge https://svn.apache.org/repos/asf/poi/tags/$TAG \
- https://svn.apache.org/repos/asf/poi/trunk
- {code}
-
- 5. Start a new section in sites.xml and status.xml.
-
- 6. Build as if the vote had passed. The build date must be +7 days from current.
- {code}
- ant build
- {code}
- After build you should have the following files in the build/dist:
-
- {code}
- poi-$TAG-$DATE.jar
- poi-bin-$TAG-$DATE.tar.gz
- poi-bin-$TAG-$DATE.zip
- poi-contrib-$TAG-$DATE.jar
- poi-scratchpad-$TAG-$DATE.jar
- poi-src-$TAG-$DATE.tar.gz
- poi-src-$TAG-$DATE.zip
- {code}
-
- where $TAG is the release tag specified in build.xml in the version.id property, $DATE is the release date (typically +7 days from the actual build date).
- 7. Build Mavn POM files
- {code}
- ant maven-dist
- {code}
-
- 8. Signing the release artifacts:
- {code}
- cd build/dist
- for i in *.zip ; do
- gpg --armor --output $i.asc --detach-sig $i;
- done
- for i in *.gz ; do
- gpg --armor --output $i.asc --detach-sig $i;
- done
- {code}
-
- Verify the signatures:
-
- {code}
- gpg --multifile --verify *.asc
- {code}
-
- 9. Create MD5 checksums for all artifacts to be published:
-
- {code}
- for i in *.zip ; do
- openssl md5 < $i > $i.md5
- done
- for i in *.gz ; do
- openssl md5 < $i > $i.md5
- done
- {code}
-
- 10. Upload to your area at people.apache.org.
- There should be two directories:
- main
- maven
-
- Make sure that the all files have read permission.
-
- (III) After the vote:
-
- Log-in on people.apache.org
-
- 1. Go to ~/POI-3.1-BETA1
-
- zap previous version first.
-
- {code}
- cd ~/POI-3.1-BETA1/main
- {code}
-
- BETA and ALPHA releases:
-
- {code}
- cp *-src-* /www/www.apache.org/dist/poi/dev/src
- cp *-bin-* /www/www.apache.org/dist/poi/dev/bin
- {code}
-
- FINAL release:
- {code}
- cp *-src-* /www/www.apache.org/dist/poi/release/src
- cp *-bin-* /www/www.apache.org/dist/poi/release/bin
- {code}
-
- {code}
- cd ~/POI-3.1-BETA1/maven
- cp -r org.apache.poi /www/people.apache.org/repo/m1-ibiblio-rsync-repository/
- cp -r poi/poms /www/people.apache.org/repo/m1-ibiblio-rsync-repository/poi
- {code}
-
- 2. Make sure that the files are owned by the unix group apcvs and that they are writable by this group.
-
- 3. Wait for the distributions to appear on your favourite mirror
-
- 4. test maven
- create a simple project and make sure the release artifacts are accessible by maven:
-
- {code}
- $ mvn archetype:create -DgroupId=org.apache.poi.scratchpad -DartifactId=maven-test
- cd maven-test
- {code}
- edit pom.xml and add the release artefacts to the project dependencies:
-
- {code:xml}
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi</artifactId>
- <version>3.1-beta1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi-scratchpad</artifactId>
- <version>3.1-beta1</version>
- </dependency>
- {code}
-
- {code}
- mvn compile
- {code}
-
- You should see [INFO] BUILD SUCCESSFUL in the end.
-
- 5. Don't forget to upload the latest version of the site and javadocs
-
- 6. Send announcements:
- - to poi-user and poi-dev lists
- - to announcement@apache.org, announcements@jakarta.apache.org
-
- Note, announcements should be sent from your @apache.org e-mail address.
|