Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

1.

...

Review Jira

Confirm that all merges scheduled for the next kernel release have been merged to the 1.0.x branch. Tidy up KNL issues associated with release.

Kernel (K1) versions

2. Backup Sakai Maven2 Repo /kernel

(warning) Be conservative. Back up https://source.sakaiproject.org/maven2/org/sakaiproject/kernel/ until we are sure that Maven properly pushes the new release to the repo.

No Format
cd /var/www/html/maven2/org/sakaiproject
tar -czvf  kernel-[YEARMONTHDAYHOURMINSEC].tgz kernel

...

3. Check out the kernel project

Checkout a clean version of the project using SVN not git.

...

(warning) Avoid opening 1.0.x in Eclipse; otherwise you will pollute the projects with Eclipse metadata files that will have to be deleted before performing the release. Checkout with svn (not git)

4. Clean out local repo

Verify that a clean build works ok with no external dependencies. Issuing mvn -o clean install ensures that .m2 repo is populated, a requirement for the assembly plugin. If the build fails because external dependencies are missing in .m2 run mvn clean install, then delete /kernel and run mvn -o clean install again.

...

Note: check for Eclipse metadata files (.classpath, .project) and remove. Uncommitted versions of these files will cause mvn release:prepare to fail.

5. Run integration tests

(warning) Note: not sure if we are ready for this step.

See integration test set up instructions at https://source.sakaiproject.org/svn/test-harness/trunk/xdocs/README-INTEGRATION-TESTING.txt

...

6. Generate release

Issue the following release plugin goals. Perform a dry run first.

No Format
mvn release:prepare -DdryRun=true
mvn release:clean release:prepare release:perform

(warning) ~arwhyte Former user (Deleted): the combination of Maven 2.0.10 (or 2.1.0), Subversion 1.5.6 and maven-release-plugin 2.0-beta-9 on Mac 10.5.7 (Leopard) resulted in a svn commit failure during the release:perform phase when attempting to update the branch pom <version>. I resolved this issue by first performing a rollback and then added my username and password as arguments to the clean/prepare/perform goals. This problem occurred despite my ability to commit to our SVN SCM system normally using either my username/password or SSH private/public key.

...

When prompted for new versions:

No Format
 
#set the released version to 1.0.[THIS REVISION VERSION

...

]
#set the tag to kernel-1.0.[THIS REVISION VERSION

...

]
#set the the new version to 1.0.[NEXT REVISION VERSION]-SNAPSHOT

Should the build fail rerun the following mvn goals to restart the build:

No Format
mvn clean install 
mvn release:prepare

7.1 Trunk vs Branch releases

When releasing from trunk, issue the branch goal to create a new branch. The release plugin will then branch the current trunk to branches/kernel-1.NEXT MINOR VERSION.x.

No Format
mvn release:clean  (clean up release)  
mvn release:branch -DbranchName=kernel-1.1.x

...

7.2 Tag releases

(warning) If the release:perform should hang for some reason you can check out the tag do the following:

...

No Format
cd 1.0.10
mvn release:perform -DconnectionUrl=scm:svn:https://source.sakaiproject.org/svn/kernel/tags/kernel-1.0.10

Check out and test tag

The release plugin will generate a tag. Check it out and make sure it works, binding it against a local working copy of Sakai.

Refresh Maven Repo with 1.0.10, 1.0.11-SNAPSHOT and 1.1-SNAPSHOT artifacts

...

8. Update trunk and snapshot artifacts

When the release has finished, check out the release branch and perform a snapshot deployment of it from the root folder:If a release:

No Format

mvn

...

 clean

...

if a SNAPSHOT:

...

 install javadoc:jar source:jar

...

1. Check out 1.0.x branch (1.0.11-SNAPSHOT) and perform

No Format

mvn deploy

2. Check out kernel trunk (1.1-SHAPSHOT) and performDo the same for trunk if appropriate.

If a release:

No Format
mvn -Prelease clean install javadoc:jar source:jar deploydeploy -DupdateReleaseInfo=true

Maven will deploy the new artifacts to the Sakai Maven2 SNAPSHOT Repo automatically.

Confirmation

...

9. Generate kernel site

10. Confirm that repo is populated with new release artifacts

11. Confirm repo permissions are correct

No Format
sudo chown -R apache:apache kernel

...

12. Clean up repo

Move old /kernel backup archive to /var/www/html/tarball. Delete kernel-1.0.10.tgz.

Base pom.xml updates

Update 2.6.x and 2.6.0 branch poms to bind to kernel-1.0.10. these when performing next release.

13. Update Sakai master/pom.xml property <sakai.kernel.version>

Update current *.x branch and release branch master/pom.xml <sakai.kernel.version> property. File a Jira on this in order to document pom updates. Buld and deploy branch(es) to Tomcat.

...

14. Jira: release version

Go to "manage versions" console at http://bugs.sakaiproject.org/jira/secure/project/ManageVersions.jspa?pid=10410Set 1. 0Release version. 10 Add next version to released; add 1.0.10 (tentative).

...

version list if appropriate.

15. Update Confluence Release Mgmt space.

Update home page and Kernel page.

16. Inform community of release with email

...

.

Example:

No Format
I've released sakai-kernel-1.0.10 and updated both the Sakai maven2 release and snapshot repositories with fresh artifacts (1.0.10, 1.0.11-SNAPSHOT; 1.1-SNAPSHOT was refreshed yesterday).  Both Sakai 2.6.x and the upcoming sakai-2.6.0-rc05 will bind to 1.0.10.  The issues addressed by 1.0.10 can be reviewed in Jira at

http://jira.sakaiproject.org/jira/browse/KNL/fixforversion/11505

Issues addressed by earlier releases can also be reviewed in Jira at

http://jira.sakaiproject.org/jira/browse/KNL?report=com.atlassian.jira.plugin.system.project:versions-panel

KERNEL (K1) PROJECT INFO

Jira: http://bugs.sakaiproject.org/jira/browse/KNL
Confluence: http://bugs.sakaiproject.org/confluence/display/REL/Kernel+1+(K1)

NOTICE: TRUNK/CONTRIB DEVELOPERS DEVELOPING AGAINST K1

Please refresh your local development environment.

1. MVN: Backup/delete the .m2/repository/org/sakaiproject/kernel of
your repo
2. SVN: perform an svn update on sakai trunk code (this will pick up
Sakai updates that complement the K1 updates)
3. MVN: perform a clean and install on your sakai trunk code to
refresh your .m2 repo with updated kernel 1.1-SNAPSHOT artifacts.
4. Build and deploy to Tomcat.

cd master
mvn clean install
cd ..
mvn clean install sakai:deploy

cheers,

Anthony

...