You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

release-guide.txt 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. POI Release Guide
  2. (I) Prerequisites
  3. 1. You should read the <a href="http://apache.org/dev/release.html">Apache Release FAQ</a>
  4. 2. You must have shell access to people.apache.org
  5. 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.
  6. 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>
  7. 4. You must have <a href="java.sun.com">JDK 1.4 / 1.5</a>
  8. 5. You must have the following utilities installed on your local machine and available in your path:
  9. * <a href="www.openssh.com">ssh</a>
  10. * <a href="www.gnupg.org">gnupg</a>
  11. * <a href="www.openssl.org">openssl</a>
  12. For Windows users, install Cygwin and make sure you have the above utilities
  13. 6. The POI build system requires two components to perform a build
  14. * <a href="ant.apache.org">Ant</a>
  15. * <a href="http://forrest.apache.org/">Forrest</a>.
  16. POI 3.0.2 and 3.1 were built using Ant 1.6.2 and Forrest 0.5
  17. (II) Making release artefacts
  18. 1. Update version id in build.xml
  19. {code:xml}
  20. <property name="version.id" value="3.1-beta1"/>
  21. {code}
  22. 1a Check file permissions in SVN.
  23. There can be files in the SVN tree marked executable (have the
  24. svn:executable property set), but which should not be. Checking them out will cause
  25. the executable bit to be set for them on filesystems which support it.
  26. The flag can be removed in batch using
  27. $ svn pd 'svn:executable' $(find -name .svn -prune -or -type f ! -name \*.sh \
  28. -print0 | xargs -0 svn pg 'svn:executable' | cut -d ' ' -f 1)
  29. 2. Tag current version. Include the current revision number in the comment
  30. {code}
  31. $ svn cp https://svn.apache.org/repos/asf/poi/trunk \
  32. https://svn.apache.org/repos/asf/poi/tags/$TAG \
  33. -m "tag r649911 as 3.1-beta1"
  34. {code}
  35. where $TAG is the release tag, for example, REL_3_1_BETA1
  36. 3. Checkout the tagged version
  37. {code}
  38. cd tags
  39. svn checkout https://svn.apache.org/repos/asf/poi/tags/$TAG
  40. {code}
  41. 4. Merge (if required)
  42. {code}
  43. cd $TAG
  44. $ svn merge https://svn.apache.org/repos/asf/poi/tags/$TAG \
  45. https://svn.apache.org/repos/asf/poi/trunk
  46. {code}
  47. 5. Start a new section in sites.xml and status.xml.
  48. 6. Build as if the vote had passed. The build date must be +7 days from current.
  49. {code}
  50. ant build
  51. {code}
  52. After build you should have the following files in the build/dist:
  53. {code}
  54. poi-$TAG-$DATE.jar
  55. poi-bin-$TAG-$DATE.tar.gz
  56. poi-bin-$TAG-$DATE.zip
  57. poi-contrib-$TAG-$DATE.jar
  58. poi-scratchpad-$TAG-$DATE.jar
  59. poi-src-$TAG-$DATE.tar.gz
  60. poi-src-$TAG-$DATE.zip
  61. {code}
  62. 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).
  63. 7. Build Mavn POM files
  64. {code}
  65. ant maven-dist
  66. {code}
  67. 8. Signing the release artifacts:
  68. {code}
  69. cd build/dist
  70. for i in *.zip ; do
  71. gpg --armor --output $i.asc --detach-sig $i;
  72. done
  73. for i in *.gz ; do
  74. gpg --armor --output $i.asc --detach-sig $i;
  75. done
  76. {code}
  77. Verify the signatures:
  78. {code}
  79. gpg --multifile --verify *.asc
  80. {code}
  81. 9. Create MD5 checksums for all artifacts to be published:
  82. {code}
  83. for i in *.zip ; do
  84. openssl md5 < $i > $i.md5
  85. done
  86. for i in *.gz ; do
  87. openssl md5 < $i > $i.md5
  88. done
  89. {code}
  90. 10. Upload to your area at people.apache.org.
  91. There should be two directories:
  92. main
  93. maven
  94. Make sure that the all files have read permission.
  95. (III) After the vote:
  96. Log-in on people.apache.org
  97. 1. Go to ~/POI-3.1-BETA1
  98. zap previous version first.
  99. {code}
  100. cd ~/POI-3.1-BETA1/main
  101. {code}
  102. BETA and ALPHA releases:
  103. {code}
  104. cp *-src-* /www/www.apache.org/dist/poi/dev/src
  105. cp *-bin-* /www/www.apache.org/dist/poi/dev/bin
  106. {code}
  107. FINAL release:
  108. {code}
  109. cp *-src-* /www/www.apache.org/dist/poi/release/src
  110. cp *-bin-* /www/www.apache.org/dist/poi/release/bin
  111. {code}
  112. {code}
  113. cd ~/POI-3.1-BETA1/maven
  114. cp -r org.apache.poi /www/people.apache.org/repo/m1-ibiblio-rsync-repository/
  115. cp -r poi/poms /www/people.apache.org/repo/m1-ibiblio-rsync-repository/poi
  116. {code}
  117. 2. Make sure that the files are owned by the unix group apcvs and that they are writable by this group.
  118. 3. Wait for the distributions to appear on your favourite mirror
  119. 4. test maven
  120. create a simple project and make sure the release artifacts are accessible by maven:
  121. {code}
  122. $ mvn archetype:create -DgroupId=org.apache.poi.scratchpad -DartifactId=maven-test
  123. cd maven-test
  124. {code}
  125. edit pom.xml and add the release artefacts to the project dependencies:
  126. {code:xml}
  127. <dependency>
  128. <groupId>org.apache.poi</groupId>
  129. <artifactId>poi</artifactId>
  130. <version>3.1-beta1</version>
  131. </dependency>
  132. <dependency>
  133. <groupId>org.apache.poi</groupId>
  134. <artifactId>poi-scratchpad</artifactId>
  135. <version>3.1-beta1</version>
  136. </dependency>
  137. {code}
  138. {code}
  139. mvn compile
  140. {code}
  141. You should see [INFO] BUILD SUCCESSFUL in the end.
  142. 5. Don't forget to upload the latest version of the site and javadocs
  143. 6. Send announcements:
  144. - to poi-user and poi-dev lists
  145. - to announcement@apache.org, announcements@jakarta.apache.org
  146. Note, announcements should be sent from your @apache.org e-mail address.