Versions Compared

Key

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

...

None.

Performing the release

Backup https://source.sakaiproject.org/maven2/org/sakaiproject/kernel/

(warning) Be conservative. Back up the target 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

(minus) 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.

...

Backup Sakai Maven2 Repo /kernel

(warning) Create a backup copy of /kernel.

No Format
cd /var/www/html/maven2/org/sakaiproject
sudo cp -R kernel kernel-[current version]

Remove old 1.0.X SNAPSHOTS and <version> references in maven-metadata.xml files

\

noformat

bash deletesakaiartifact.bash  1.0.6-SNAPSHOT /tmp/maven2/org/sakaiproject/kernel

Checkout the kernel project

...

No Format
svn co https://source.sakaiproject.org/svn/kernel/branches/kernel-1.0.x/ kernel-1.0.x

(warning) Avoid opening it 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)

...

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

(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

...

Issue the following release plugin goals:. Do a dry run first.

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

...

#set the released version to 1.0.8
#set the tag to kernel-1.0.8
#set the the new version to 1.0.69-SNAPSHOT

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

No Format
mvn clean install 
mvn release:prepare

to restart the build.

...

Trunk vs Branch releases

(warning) Not applicable for this release.

When releasing from trunk, issue the branch goal to create a new branch:

...

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

Each new release will require placement of corresponding kernel artifacts in the Maven2 repo.
Steps:

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

No Format
mvn deploy

...

mvn -Prelease clean install deploy -DupdateReleaseInfo=true

if a SNAPSHOT:

mvn deploy

Maven will populate /tmp/maven2/org/sakaiproject/kernel with updated artifacts

SNAPSHOT refreshes

When refreshing SNAPSHOT artifacts, delete the existing artifact folder and contents before running mvn deploy.

bash deletesakaiartifact.bash 1.1-SNAPSHOT /tmp/maven2/org/sakaiproject/kernel

No Format

#!/bin/sh
# Delete artifact folders prior to deploying Maven snapshot artifacts.
# This is necessary as Maven does not update it's metadata files correctly when an old artifact exists in the repo.
# bash deletesakaiartifact.bash [TARGET FOLDER NAME] (e.g., 1.1-SNAPSHOT) [LOCATION] (e.g. /tmp/maven2/org/sakaiproject/kernel)
# author=Anthony Whyte, arwhyte@umich.edu

TARGET=$1
LOCATION=$2

cd $LOCATION
echo "Removing ${TARGET} folders and content recursively from ${LOCATION}"
rm -rf `find . -type d -name ${TARGET}`

Populate Maven Repo

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

Populate Maven Repo

(warning) 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. Explode tar fileDelete existing /kernel for a clean refresh. Unpack kernel-1.0.8.tgz.

No Format
tar -cvzf  kernelrepo.tgz /tmpcd /var/www/html/maven2/org/sakaiproject/kernel}}

copy 
tar -czvf  kernel-[YEARMONTHDAYHOURMINSEC].tgz kernel

copy kernelrepo.tgz

...

to

...

Maven2

...

repo

No Format

cd /var/www/maven2/org/sakaiproject
rm -rf kernel
tar xvzf kernelrepo-xzvf kernel-1.0.8.tgz

Repo permissions

(warning) Make sure repo permissions are correct

...

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.

Jira Kernel project

Set 1.0.8 version to released; add 1.0.8 (tentative).

...

Update home page and Kernel page.

Inform community with email.

Example:

References

Maven Release Plugin
Maven mini-guide
J. Ferguson, "Using the Maven Release Plugin"