Versions Compared

Key

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

Local build machine environment

  1. Check out 2.5.3 branch
  2. clean Tomcat 5.5.26
  3. empty .m2/repository/org/sakaiproject
  4. new MySQL 5.0.51 sakai db
  5. Confirm maven-taglib is defined in .M2/settings.xml
No Format
<!-- Reference plugins in order to use <goalPrefix> short-hand -->
<pluginGroups>
    <pluginGroup>net.sourceforge.maven-taglib</pluginGroup>
</pluginGroups>

Tag preparation

Create .externals_2-5-xto2-5-3 file

Do this for people interested in what 2-5-x project revisions were used to intitially build the 2.5.3 branch.

No Format
svn add .externals_2-5-xto2-5-3
svn commit -m "add .externals_2-5-xto2-5-3"
sakai.properties

1. Update component/component-api/component/src/config/org/sakaiproject/config/sakai.properties updating version.service, version.sakai and uncommenting stealthToolsstealthTools@org.sakaiproject.tool.api.ActiveToolManager. Commit changes.

...

No Format
version.service=DEMO
version.sakai=2.5.3
favicon

Replace Tomcat favicon.ico with Sakai favicon. Add it to reference library. Pack-demo pom.xml snippet below:

No Format
<!-- Replace the favorite icon from tomcat -->
<copy file="${basedir}/../reference/library/src/webapp/icon/favicon.ico"
tofile="${basedir}/target/pack/webapps/ROOT/favicon.ico"
overwrite="true" />
conversion scripts (runconversion.sh)

Check for presence of *runconversion.sh (in assignment, content (named content-runconversion.sh, db) and make sure names get trapped by artifact generation script.

/master/pom.xml

Confirm <distributionManagement>, maven-taglib-plugin, wagon-webdav <build> extensions are in place and that the org.sakaiproject.maven.plugins <version> is set to 1.0. Commit changes if necessary.

...

No Format
<plugin>
<inherited>true</inherited>
<groupId>org.sakaiproject.maven.plugins</groupId>
<artifactId>sakai</artifactId>
<version>1.0</version>
. . . .
/pack-demo/pom.xml

Confirm that pack-demo pom includes the binary artifact generation code.

entitybroker/pom.xml

Remove <distributionManagement> directive which disrupts build process as well as other extraneous definitions. Commit changes.

Update .svnignore

Add

No Format
Sakai.keystore
sakaiartifactgenerator.sh

Commit changes.

WARNING /reference/conversion

Review sql conversion scripts, update and commit as necessary.

base pom.xml

1. Confirm javadoc plugin definition. Should be configured as follows:

...

No Format
<profile>
      	<id>taglib</id>
      	<modules>
		 <module>gradebook/app/ui</module>
		 <module>help/help-tool</module>
		 <module>jsf/widgets</module>
		 <module>mailtool/mailtool</module>
		 <module>metaobj/metaobj-util/tool-lib</module>
		 <module>msgcntr/messageforums-app</module>
		 <module>osp/common/tool-lib</module>
		 <module>osp/glossary/tool-lib</module>
		 <module>osp/jsf/widgets</module>
		 <module>osp/presentation/tool-lib</module>
		 <module>podcasts/podcasts-app</module>
		 <module>postem/postem-app</module>
		 <module>profile/profile-app</module>
		 <module>roster/roster-app</module>
		 <module>rwiki/rwiki-tool/tool</module>
		 <module>sam/samigo-app</module>
		 <module>sections/sections-app</module>
		 <module>sections/sections-app-util</module>
		 <module>syllabus/syllabus-app</module>
      	</modules>
<profile>

Update .externals

Check out 2.5.3 branch .externals to local tag prep folder and update revision numbers to last tag prep commit. This ensures that the next checkout will include all tag prep commits.

...

Check out 2.5.3 branch again and confirm checkout includes all tag prep commits as well as updated .externals.

Generate Release artifacts

1. Mount Sakai Maven2 Repo using DAV (https:/source.sakaiproject.org/maven2 -> /Volumes/maven2). WARNING: create backup folder of maven2 so that only one copy operation is required in event of a generation failure.
2. Copy sakaiartifactgenerator.sh to local 2.5.3 branch checkout folder and run

...

The artifactgenerator script performs the following steps

...

1. clean out previous builds
2. clean out target, m2-target,

...

bin

...


3. clean

...

out

...

/tmp/maven2

...

4. updates <version> (M2 to 2.5.3) in
all pom.xml
all .classpath
all runconversion.sh,

...

also

...

content-runconversion.sh

...

The script pauses to allow the changes to be committed. Once the commits are completed, update the .externals file (all projects) to r52308 in preparation for cutting the final release tag.

sed -e "s/ -r0-9*/ -r52308/" <.externals >.externals.tmp

...


cp

...

.externals.tmp

...

.externals

...


rm

...

-f

...

.externals.tmp

...

svn

...

propset

...

-F

...

.externals

...

svn:externals

...

.

...


svn

...

propget

...

svn:externals

...


svn

...

commit

...

-m

...

"tag

...

prep

...

for

...

next

...

release"

...

Signing the Samigo audio jar. Uncomment the maven-jar-plugin. Comment out <keystore>, <alias> and <storepass>. DO NOT COMMIT.

...

Resume script run.

5. tar up the source code (samigo-audio jar is not signed)

The script then pauses to allow a manual modification of samigo-audio pom.xml to uncomment the jar sign execution goal. Uncomment the maven-jar-plugin. Comment out <keystore>, <alias> and <storepass>.

WARNING DO NOT COMMIT this change to the samigo-audio pom.xml file.

No Format


    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-jar-plugin</artifactId>
        <executions>
           <execution>
           <plugin>   <goals>
     <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-jar-plugin</artifactId><goal>sign</goal>
        <executions>      </goals>
     <execution>      </execution>
        <goals></executions>
        <configuration>
<!--
        <goal>sign</goal>   <keystore>/somepath/your.keystore</keystore>
           <<alias>youralias</goals>alias>
           <<storepass>yourpassword</execution>storepass>
-->
       </executions>    <verify>true</verify>
    <configuration> <!--   </configuration>
        <keystore>/somepath/your.keystore</keystore></plugin>
    </plugins>

6. perform the following mvn actions:

No Format
mvn install (in   <alias>youralias</alias>master)
mvn -Ppack-demo          <storepass>yourpassword</storepass>
-->
           <verify>true</verify>
        </configuration>
      </plugin>
    </plugins>

Update Sakai Maven2 repo

1. Make backup copy of current /org/sakaiproject folder where x.x.x equals the previous Sakai release number.

No Format

sudo cp -R sakaiproject sakaiproject.x.x.x

Generate checksums (example)

No Format

md5sum sakai-bin-2.5.3.tar.gz > sakai-bin-2.5.3_tar_gz.md5

CutCut release tag from 2.5.3 branch

release tag from 2.5.3 branch

...

install -Dkeystore=${location}/Sakai.keystore -Dalias=sakai -Dstorepass=${KEYSTOREPASS}
mvn install source:jar source:test-jar deploy -Dkeystore=${location}/Sakai.keystore -Dalias=sakai -Dstorepass=${KEYSTOREPASS}
mvn javadoc:javadoc
mvn -Ptaglib taglib:taglibdocjar deploy

where ${KEYSTOREPASS} is the keystore password and Sakai.keystore contains the certificates.

7. then package up
the maven repo in /tmp/maven2
the javadoc
the sakai-demo and sakai-bin artifacts
the taglibsdocs

Check samigo audio jar for signature

No Format

jarsigner -verify sakai-samigo-audio-2.5.3.jar

Check artifacts

1. Build and deploy the sakai-src artifact.

WARNING do not issue clean and install goals or local repo will get wiped prematurely (Sakai maven2 repo has yet to be updated).

No Format

cd master
mvn install
cd ..
mvn -o -Dmaven.test.skip=true sakai:deploy

2. Run the demo artifact.
3. Checkout 2.5.3 branch and import into Eclipse. Check pom.xml files for correct revision.

Update Sakai Maven2 repo

1. Make backup copy of current /org/sakaiproject folder where x.x.x equals the previous Sakai release number.

No Format

sudo cp -R sakaiproject sakaiproject.x.x.x

Generate checksums (example)

No Format

md5sum sakai-bin-2.5.3.tar.gz > sakai-bin-2.5.3_tar_gz.md5

Cut release tag from 2.5.3 branch

The sakaitagbuilder.bash script accepts two arguments: Sakai version and tag suffix (e.g., blank, beta01, rc01, qa01). In this case no tag suffix is required.

No Format

bash sakaitagbuilder.bash 2-5-3

After the release is generated, backup .m2/repository/org/sakaiproject, whack original (to ensure someone new can populate their repo from scratch), download the release tag and build and deploy it to a fresh Tomcat and fresh MySQL database.

Build release page

Make sure that external links to Confluence release pages are updated.