Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Steps needed to make a Grouper release

Changes in

...

git

Check git to make sure all commits in 2.2 3 are in master (DONE from Aug 2, 2015 - April 5, 2016)

Edit all the pom.xmls <version> tags (DONE for 2.3)

Edit all the README.txt files (DONE for 2.3)

Edit all misc/version.properties (DONE for 2.3)

Update software requirements page

Grouper client (DONE for 2.3)

  • conf/grouper.client*.properties (DONE for 2.3)

Look for other occurrences of grouper.client*.properties and refresh them (should only be grouper API, wsSourceAdapter, subject) (DONE for 2.3)

Look for grouperClient.jar in SVN, and update it after build and copy to release server (should only be grouper API)

Grouper API

  • GrouperVersion.java (DONE for 2.3)
  • Make sure the subject jar up to date in api lib (DONE for 2.3)lib
  • Run the command line utility to code generate which jars/sizes/etc are expected: GrouperCheckconfig.main() (DONE for 2.3)

...

  • ()

Grouper installerDONE for 2.3)

  • grouper.installer.example.properties (DONE for 2.3)
  • GiGrouperVersion.java (DONE for 2.3)

Grouper UI

  • translate the Grouper UI text to French (our French partners have agreed to do this, as of discussion with Chris in Fall 2012)

Grouper WS (DONE for 2.3)WS

  • grouper-ws.base.properties (DONE for 2.3)
  • If there is a new minor version with changes to the wsdl, add a new source folder for that version, copy the coresoap *.javas over to it, refactor to change the package, change the build.xml to build a WSDL for that version.  Change GrouperService to be like a previous version but add new methods or change methods in it (DONE for 2.3)
  • 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 (DONE for 2.3)
  • Generate the wssec aar's and commit them (DONE for 2.3)
  • Generate WSDLs and commit them (DONE for 2.3)commit them

Search for the old version (e.g. 2.2.2 or 2_2_2 or 2_2_002) in all the files (DONE for 2.3)

Tag all (API, UI, WS, QS, client, etc) (DONE for 2.3)

  • In git, the tag should be something like: GROUPER_1_2_12, tag for last commit in branch, and push tag (DONE for 2.3)

For a major release, do a branch for all (API, UI, WS, QS, client) as e.g. GROUPER_1_4_BRANCH (won't do until we start work on 2.4.0)

...

If its a minor release, change the release version policy page (DONE for 2.3)

Handle Copyright According to Policy

...

Make sure the subjects.sql and quickstart.xml file are in the release directory (copy from 2.3.0) (DONE for 2.3.0)

Misc Checks

  • Make sure all tables, views, and cols (of tables and views) have comments in the DB (oracle or postgres). (dont do 2.3.0)
  • Make sure the grouper-ws web.xml file has the security basic auth in there (didn't get accidentally overridden in commit) (done for 2.3.0in 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. (dont do for 2.3.0)

If possible run a security scan against a test instance - University of Pennsylvania via Chris? (dont do for 2.3.0)

*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. (dont do for 2.3.0)

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.

...

Database

Linux

OS X (10.6)

Solaris

Windows

HSQLDB

HSQLDB

Done by Chris
Time: 14,667.86 (4 hours)
OK (2232 tests)

In progress by Chris





MySQL (with utf/bin collation table types)





OracleDone by Shilen.  All tests pass.





PostgreSQL





MsSQL





  • MySQL windows
  • MySQL unix with case sensitive table names
  • Postgres
  • Oracle

    Code Block
    create role GrouperRole;
    GRANT connect, resource, CREATE view TO GrouperRole;
    CREATE USER groupertest IDENTIFIED BY <pass>;
    GRANT connect, resource, GrouperRole TO groupertest;
    
  • Hsql
Code Block
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

...

Try the UI with a few different languages in the browser request (en without US, french, something not common)

...

Upgrade from x.y-1 to x.y (e.g. 2.2 3 to 2.34).

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

...

  • Download grouper installer
  • Run: java -jar grouperInstaller.jar
  • Try the UI that was installed
  • Make sure gsh.sh and gsh works in api, ws, ui for 2.34.0

Database

Linux

OS X (10.6)

Solaris

Windows

HSQLDB

HSQLDB

DONE for 2.3 (chris)





MySQL





Oracle





PostgreSQL





MsSQL





Web Service JUnit Tests (Grouper WS and Grouper Client) (DONE for 2.34.0, though 9 errors in client tests)

WS samples (DONE for 2.34.0) (note: still need to code/run new SOAP samples)

...

  • ssh to i2mibuild.internet2.edu (DONE for 2.3.0)
  • cd to ~mchyzer (DONE for 2.3.0)
  • Build all with: [mchyzer@i2mibuild mchyzer]$ bin/buildGrouperAll.sh GROUPER_x_y_z (DONE for 2.3.0)
  • 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...

...

  • scp packages built above, to: (DONE for 2.3.0)
Code Block
sftp webprod0.internet2.edu
lcd /home/mchyzer/tmp/grouperAll/build_username
mkdir /home/htdocs/home/htdocs/software.internet2.edu/grouper/release/1.2.12
cd /home/htdocs/software.internet2.edu/grouper/release/1.2.12
mput *.tar.gz

...

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

Publish to maven central here

Copy grouper.psp-version.tar.gz to the release URL. (DONE for 2.3.0)

Archive the current release

...