Document of steps needed to make a release
Merge all SVN folders with previous branches
Edit all the pom.xmls <version> tags
Grouper API
Grouper client
Grouper UI
Grouper WS
Tag all (API, UI, WS, QS, client, ldappc\[ng\], etc) |
For a major release, do a branch for all (API, UI, WS, QS, client) as e.g. GROUPER_1_4_BRANCH
See which config files / jar files / ddl changed since last release, make sure there are entries in the change log.
Review UI / WS code changes* from the previous version with respect to Open Web Application Security Project (OWASP) top 10 web application security vulnerabilities.
If possible run a security scan against a test instance - University of Pennsylvania via Chris?
*We have not carried out a thorough security review of the existing code base for any version of Grouper. We should do that in order for the incremental reviews to be adequate.
Run API (SuiteDefault) junit tests (set true in all junit test includes in grouper.properties):
API JUnit Tests
Database |
Linux |
OS X (10.6) |
Solaris |
Windows |
---|---|---|---|---|
HSQLDB |
|
|
|
|
MySQL |
|
|
|
|
Oracle |
|
|
|
|
PostgreSQL |
|
|
|
|
MsSQL |
|
|
|
|
ps -ef | grep java --- kill hsql wget http://www.internet2.edu/grouper/release/x.y.z/grouper.apiBinary-x.y.z.tar.gz cd grouper.apiBinary-2.0.0 cd bin java -cp ../lib/jdbcSamples/hsqldb.jar org.hsqldb.Server -database.0 file:grouper -dbname.0 grouper & ./gsh.sh -registry -runscript ./gsh.sh -test -all |
Try checkConfig tests.
Upgrade from x.y-1 to x.y (e.g. 1.6 to 2.0).
Database |
Linux |
OS X (10.6) |
Solaris |
Windows |
---|---|---|---|---|
HSQLDB |
|
|
|
|
MySQL |
|
|
|
|
Oracle |
|
|
|
|
PostgreSQL |
|
|
|
|
MsSQL |
|
|
|
|
LDAPPC JUnit Tests
LDAP DSA |
Linux |
OS X (10.6) |
Solaris |
Windows |
---|---|---|---|---|
Active Directory |
|
|
|
|
ApacheDS |
|
|
|
|
OpenLDAP |
|
|
|
|
RedHat DS |
|
|
|
|
Sun DS |
|
|
|
|
Web Service JUnit Tests (Grouper WS and Grouper Client)
WS samples
WS javadoc (generate, commit, test). Make sure new operations / args / etc are documented in the WS doc page
Build all with: \[mchyzer@i2mibuild mchyzer\]$ bin/buildGrouperAll.sh GROUPER_x_y_z |
Resulting .tar.gz's are in ~mchyzer/tmp/grouperAll/build_<username>. There are both source and binary tarballs for the API and Client packages.
sftp webprod0.internet2.edu lcd /home/mchyzer/tmp/grouperAll/build_username mkdir /home/htdocs/www.internet2.edu/grouper/release/1.2.12 cd /home/htdocs/www.internet2.edu/grouper/release/1.2.12 mput grouper*.tar.gz |
\[appadmin@i2midev1 2.0.0\]$ pwd /opt/grouper/2.0.0 \[appadmin@i2midev1 2.0.0\]$ ./upgrade_2.0.0.sh |
Generally roll notes from the oldest release off and add notes for the new release. Keep previous release notes in there, so that we always have current + previous.
Feature releases tend to have a fair number of pages with info that's new for the new version, and that doc is kept in pages named vN.N-Some+Page+Name so that current pages always document the current release. Further, these pages may contain a custom replacement for the top- and bottom-of-page nav info, so that new release doc is linked together by the nav, separate from current release doc. And of course they may contain links to other v.Next-specific pages, or be linked to from such.
To swap a v.Next page in for the one it replaces, open both old and new for edit, copy the wiki text for the new, omitting the top and bottom nav includes, paste into the old page, leaving the top and bottom nav stuff in place, remove the old wiki text. Then go through and update any outbound links referring to v.Next pages to omit the v.Next part of their name.
When this is all done, double-check on the status of links within all pages by going to Browser -> Pages -> Alphabetical -> V, and for each v.Next page
Just update the "NEW!!" message. Maybe review the Background section to see if it could use some freshening. Maybe add a news item
Ask SteveO to update the following pages:
Compose email to grouper-dev and grouper-users with highlights of the new release and link to the Grouper+Product page. Highlights should resemble those on the vN.N Release Notes page and maybe even be identical. If it's especially enlightening, also include a direct link to the changelog (vN.N+Release+Notes#vN.NReleaseNotes-changelog) or to an appropriate Jira report.