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

Compare with Current View Page History

« Previous Version 39 Next »

Document of steps needed to make a Grouper release

Changes in SVN

Merge all SVN folders with previous branches

Edit all the pom.xmls <version> tags

Edit all the README.txt files

Grouper API

  • GrouperVersion.java
  • misc/version.properties
  • Run the command line utility to code generate which jars/sizes/etc are expected: GrouperCheckconfig.main() in
  • Make sure the subject jar and client jar is up to date in api lib
  • Make sure the grouper.client.example.properties is up to date in the api conf

Grouper client

  • misc/version.properties
  • conf/grouper.client.example.properties (2 places)

Grouper UI

  • misc/version.properties

Grouper WS

  • misc/version.properties
  • grouper-ws.example.properties
  • Make sure that there is no coresoap (package) in use in src/grouper_ws_v1_6, src/grouper_ws_v2_0, etc.  Take out all src/grouper_ws_vx_x except one, make sure they dont depend on each other
  • Generate the wssec aar's and commit them
  • Generate WSDLs and commit them

Tag all (API, UI, WS, QS, client, 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.

Misc

  • Make sure all tables, views, and cols (of tables and views) have comments in the DB (oracle or postgres).
  • Make sure the grouper-ws web.xml file has the security basic auth in there (didnt get accidentally overridden in commit)

Security review

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.

Testing

Run API (SuiteDefault) junit tests (set true in all junit test includes in grouper.properties).  Also run the Grouper Installer, it should end in success for the client connecting to the WS and you should be able to use the UI.

API JUnit Tests

Database

Linux

OS X (10.6)

Solaris

Windows

HSQLDB

 

 

 

 

MySQL

 

 

 

 

Oracle

 

 

 

 

PostgreSQL

 

 

 

 

MsSQL

 

 

 

 

  • (Chris) MySQL windows
  • (Chris) MySQL unix with case sensitive table names
  • (TomZ) Postgres
  • (Shilen) Oracle
    CREATE USER groupertest IDENTIFIED BY <somepass>;
    GRANT "CONNECT" TO groupertest;
    GRANT "RESOURCE" TO groupertest;
    
  • (Gary) Hsql
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 -port 9001 -database.0 file:grouper -dbname.0 grouper &
./gsh.sh -registry -runscript
./gsh.sh -test -all
  • () MsSQL (new)

Try checkConfig tests.

Upgrade from x.y-1 to x.y (e.g. 2.0 to 2.1).

  • Install 2.1.0
    • Download and run 2.1.0 installer
  • Open the UI, browse around
  • Upgrade to 2.1:  https://spaces.at.internet2.edu/pages/viewpage.action?pageId=27230523
    • Download 2.1
    • Unzip
    • Download 2.1 ui
    • Unzip
    • Configure grouper.hibernate.properties
    • Upgrade the registry: C:\temp\grouperUpgrade\grouper.apiBinary-2.0.0\bin>gsh -registry -runscript
    • Build the UI:
    • copy build.properties.template to build.properties
    • Edit the build.properties
      grouper.folder=../grouper.apiBinary-2.1.0
      should.copy.context.xml.to.metainf=false
    • C:\temp\grouperUpgrade\grouper.ui-1.6.3>ant dist
    • Map /grouper in tomcat: C:\temp\grouperUpgrade\grouper.ui-2.1.0\dist\grouper
  •  
  • Open the UI, browse around

Install the grouper installer

Database

Linux

OS X (10.6)

Solaris

Windows

HSQLDB

 

 

 

 

MySQL

 

 

 

 

Oracle

 

 

 

 

PostgreSQL

 

 

 

 

MsSQL

 

 

 

 

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

Packaging and releasing

  • ssh to i2mibuild.internet2.edu
  • cd to ~mchyzer
  • Build all with: [mchyzer@i2mibuild mchyzer]$ bin/buildGrouperAll.sh GROUPER_x_y_z

  • This is the same as these individual commands:
    • bin/buildGrouper.sh GROUPER_x_y_z
    • bin/buildGrouperWs.sh GROUPER_x_y_z
    • bin/buildGrouperClient.sh GROUPER_x_y_z
    • bin/buildGrouperUi.sh GROUPER_x_y_z
    • bin/buildGrouperQs.sh GROUPER_x_y_z
  • Note: sometimes the grouperWs doesnt build correctly due to a bug with javadoc, just try building the ws again...

Resulting .tar.gz's are in ~mchyzer/tmp/grouperAll/build_<username>. There are both source and binary tarballs for the API and Client packages.

  • scp packages to somewhere they can be unpacked, built, configured, tested, and do so.
  • scp packages built above, to:
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 *.tar.gz
  •  Build to demo server, after the release is tagged, and built on the build server in Chris' directory...

[appadmin@i2midev1 2.0.0]$ pwd
/opt/grouper/2.0.0
[appadmin@i2midev1 2.0.0]$ ./upgrade_2.0.0.sh

Packaging and releasing : provisioning

After tagging, publish to maven central by following the instructions on v2.1.0 Grouper Development Environment Using Maven.

Copy grouper.psp-version.tar.gz to the release URL.

Updates to wiki

Archive the current release

  • Create PDF of current documentation for the release archive
    • Browse -> Advanced -> Export Space
    • select PDF, uncheck save comments, clear all
    • select pages to export. try to omit non-product pages, defunct pages, and pages for future releases.
    • export, save to desktop, rename and attach to GrouperWG/Archives
  • update Archives page with info from the current vN.N+Release+Notes page and links from the Software+Download page.

Update vN.N+Release+Notes page

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.

Update Software+Download page

  • Make sure you have copied this to the archives pageper above
  • ssh to webprod0.internet2.edu to edit the page: /home/htdocs/www.internet2.edu/grouper/software.html, change the links and HTML
  • freshen links and rows in software download table
  • freshen cvs info at bottom of page
  • update release date

Swap in release-specific pages

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

  • click to view, Tools -> Info
  • check the Incoming Links and Outgoing Links sections to ensure all is well

Review product pages

  • Ensure that each page identifies which version it's current for, as in "Building the Grouper API as of v1.4.1" as an h2 at the top.
  • Review incoming and outgoing links info for each page.
  • If there's new features with new pages, update the Grouper+Product page to appropriately reference the new pages.
  • Is it all there?
  • Are there pages in the Working Group or Community areas that have graduated to being core product doc? Negotiate with originator to move them over to the product pages.

Update Grouper+Product page

  • Update version in "Welcome to the Grouper v___ Product Documentation Space"
  • Update "NEW!!" message
  • Update cvs info
  • Update javadoc labels and links

Update GrouperWG/Home

Just update the "NEW!!" message. Maybe review the Background section to see if it could use some freshening.  Maybe add a news item

Update related pages

Ask SteveO to update the following pages:

Release Numbering and Testing Period

As of Feb. 2012, these procedures were adopted regarding release numbering and testing:

- The X.X.0 release will be considered a pre-release, like a Release Candidate
- That will be the testing release
- The X.X.1 release will be the actual release, presumably after any initial bugs identified have been fixed.

Notify about the release

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.

Notes for 1.6.0

  • No labels