sakai-kernel-1.0.8 release
Revisions
kernel trunk r62359 (1.1-SNAPSHOT refresh)
kernel-1.0.x r62388 (1.0.8, 1.0.9-SNAPSHOT)
New versions
Tag: 1.0.8
Branch: 1.0.9-SNAPSHOT
Trunk 1.1-SNAPSHOT
Review 1.0.x/1.0.8 (tentative) merges
Confirm that all merges scheduled for kernel-1.0.8 have been merged to the 1.0.x branch.
Testing exceptions
None.
Backup /kernel repo directory
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.
cd /var/www/html/maven2/org/sakaiproject tar -czvf kernel-[YEARMONTHDAYHOURMINSEC].tgz kernel
ACHTUNG! BASE POM <distributionManagement> RELEASE REPO TARGET HAS NOT BEEN UPDATED
David: the release repo target still points to file:///tmp/maven2. Unless, the pom is updated to automate this step you must copy the Maven2 the contents of org/sakaiproject/kernel
locally to /tmp/maven2/org/sakaiproject/kernel
.
Copy Maven2 /kernel locally
This step will be rendered obsolete if changes to <distributionManagement> to point directly at the Maven2 repo are implemented.
Start now as this can take some time. Folder copy will later serve as target for deploying artifacts generated during the deploy phase.
copy http://source.sakaiproject.org/maven2/org/sakaiproject/kernel to /tmp/maven2/org/sakaiproject/kernel
trunk/1.0.x
<repository> <uniqueVersion>false</uniqueVersion> <id>local</id> <name>Local Test</name> <url>file:///tmp/maven2</url> <layout>default</layout> </repository>
Backup Sakai Maven2 Repo /kernel
Create a backup copy of /kernel.
cd /var/www/html/maven2/org/sakaiproject sudo cp -R kernel kernel-[current version]
Checkout the kernel project
Checkout a clean version of the project using SVN not git.
svn co https://source.sakaiproject.org/svn/kernel/branches/kernel-1.0.x/ kernel-1.0.x
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)
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.
rm -rf ~/.m2/repository/org/sakaiproject/kernel mvn -o clean install
Note: check for Eclipse metadata files (.classpath, .project) and remove. Uncommitted versions of these files will cause mvn release:prepare
to fail.
Run integration tests
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
Create tag
Issue the following release plugin goals. Do a dry run first.
mvn release:prepare -DdryRun=true mvn release:clean release:prepare release:perform
When prompted for new versions:
#set the released version to 1.0.8
#set the tag to kernel-1.0.8
#set the the new version to 1.0.9-SNAPSHOT
Should the build fail rerun the following mvn goals to restart the build:
mvn clean install mvn release:prepare
Trunk vs Branch releases
Not applicable for this release.
When releasing from trunk, issue the branch goal to create a new branch:
mvn release:clean (clean up release) mvn release:branch -DbranchName=kernel-1.1.x
The release plugin will then branch the current trunk to branches/kernel-1.1.x.
Edit the poms to 1.2-SNAPSHOT and commit.
Finis
Check 1.0.8 tag
The release plugin will generate a 1.0.8 tag. Check it out and make sure it works, binding it against a local working copy of 2.6.x.
Refresh Maven Repo with 1.0.8, 1.0.9-SNAPSHOT and 1.1-SNAPSHOT artifacts
For each new version (release, SNAPSHOT) issue the following command from the root folder:
If a release:
mvn -Prelease clean install deploy -DupdateReleaseInfo=true
if a SNAPSHOT:
mvn deploy
1. Check out 1.0.x branch (1.0.9-SNAPSHOT) and perform
mvn deploy
2. Check out kernel trunk (1.1-SHAPSHOT) and perform
mvn deploy
Maven will deploy the new artifacts to the Sakai Maven2 SNAPSHOT Repo automatically.
Populate Maven Repo
This step may be rendered obsolete if Maven can push kernel-1.0.8 to the repo target as part of the release process.
Tar up kernel artifacts. Copy to https://source.sakaiproject.org/maven2/org/sakaiproject/. Make sure backup of existing /kernel directory is in place. Delete existing /kernel for a clean refresh. Unpack kernel-1.0.8.tgz.
cd /var/www/html/maven2/org/sakaiproject tar -czvf kernel-[YEARMONTHDAYHOURMINSEC].tgz kernel
copy kernelrepo.tgz to Maven2 repo
cd /var/www/maven2/org/sakaiproject rm -rf kernel tar -xzvf kernel-1.0.8.tgz
Repo permissions
Make sure repo permissions are correct
sudo chown -R apache:apache kernel
Repo cleanup
Move old /kernel backup archive to /var/www/html/tarball
. Delete kernel-1.0.8.tgz
.
Base pom.xml updates
Update 2.6.x and 2.6.0 branch poms to bind to kernel-1.0.8. File a Jira on this in order to document pom updates.
Jira Kernel project
Go to "manage versions" console at http://bugs.sakaiproject.org/jira/secure/project/ManageVersions.jspa?pid=10410
Set 1.0.8 version to released; add 1.0.9 (tentative).
Jira Release Mgmt project
Update home page and Kernel page.
Inform community with email.
links for fixforversion need to be updated to point to 1.0.8.
Example:
I've released sakai-kernel-1.0.6 and updated the Sakai maven2 repo with fresh artifacts. 1.0.6 has been released in support of the upcoming sakai-2.6.0 release. The issues addressed by 1.0.6 can be reviewed in Jira at http://bugs.sakaiproject.org/jira/browse/KNL/fixforversion/11476 Issues addressed by earlier releases can also be reviewed in Jira at http://bugs.sakaiproject.org/jira/browse/KNL?report=com.atlassian.jira.plugin.system.project:versions-panel MAVEN2 REPO The maven2 repo includes the following new or refreshed artifacts: https://source.sakaiproject.org/maven2/org/sakaiproject/kernel/ 1.0.6 1.0.7-SNAPSHOT 1.1-SNAPSHOT SVN The 1.0.6 release has been tagged and the 2.6.x branch /master/pom.xml file has been updated to bind to 1.0.7-SNAPSHOT. When the next 2.6.0 tag is cut it will bind to K1 1.0.6. 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 -Dmaven.test.skip=true sakai:deploy cheers, Anthony
References
Maven Release Plugin
Maven mini-guide
J. Ferguson, "Using the Maven Release Plugin"