2.7.1 branch prep
WARNING Require releases of EB, emailtemplateservice and Polls to eliminate all SNAPSHOT dependencies.
entitybroker, emailtemplateservice and polls are versioned independently and 2.6.x references SNAPSHOT versions of each. In order to eliminate all snapshot dependencies these tools require a tagged release generated from the respective 2.6.x branches
entitybroker 1.3.6.2
emailtemplateservice 0.3.4
polls 1.1.4
For each
1. change base pom <parent> master to version 2.7.1
2. delete redundant 2.7.1 release branch in each of the projects' svn /branches (using tag instead)
3. update .externals to point to tag
4. update WAS project <properties> to match tag version
5. update api dependencies in master to correct version; check all other projects for dependencies on entitybroker, ets and polls and update if necessary.
To release you will need a local 2.7.1 master/pom.xml.
PROPERTIES SETTINGS (*.sakai.properties: default, demo, sample)
Version
No Format |
---|
version.service=RELEASE
version.sakai=2.7.1
|
No Format |
---|
version.service=DEMO
version.sakai=2.7.1
|
No Format |
---|
version.service=SAMPLE
version.sakai=2.7.1
|
Stealth settings
Stealth the following tools in both release and demo:
Release
...
PROPERTIES SETTINGS (*.sakai.properties: default, demo, sample)
Version
No Format |
---|
version.service=RELEASE
version.sakai=2.7.1
|
No Format |
---|
version.service=DEMO
version.sakai=2.7.1
|
No Format |
---|
version.service=SAMPLE
version.sakai=2.7.1
|
Stealth settings
Stealth the following tools in both release and demo:
Release
No Format |
---|
# STEALTH TOOLS
# A stealth tool is a tool that is running in Sakai but is not available to be added to a site in Worksite Setup.
# For Development/QA purposes stealthTools property will be commented out; release artifacts will have the property uncommented.
stealthTools@org.sakaiproject.tool.api.ActiveToolManager=blogger,sakai.profile,sakai.reports
|
Demo
No Format |
---|
# STEALTH TOOLS. A stealth tool is a tool that is running in Sakai, but is not available to be added to a site in Worksite Setup. # For Development/QA purposes stealthTools property will be commented out; release artifacts will have the property uncommented. stealthTools@org.sakaiproject.toolstealthTools@org.sakaiproject.tool.api.ActiveToolManager=blogger,sakai.mailtoolprofile,sakai.presentation |
Demo
No Format |
---|
# STEALTH TOOLS. A stealth tool is a tool that is running in Sakai, but is not available to be added to a site in Worksite Setup.
# In the demo edition all tools will be visible for support easy evaluation of the software.
stealthTools@org.sakaiproject.tool.api.ActiveToolManager=sakai.mailtool,sakai.presentation,sakai.search
|
Review reference/docs/sakai.properties
AND reference/demo/sakai.properties
version.service
and version.sakai
. These files should not have been updated by developers. Check logs for changes.
reference/demo/sakai.properties
No Format |
---|
version.service=DEMO
version.sakai=2.7.1
|
reference/docs/sakai.properties
No Format |
---|
version.service=RELEASE
version.sakai=2.7.1
|
POM UPDATES
Update all pom.xml <version> values from 2.6.0 to 2.7.1.
Update /master/pom.xml <sakai.version> from 2.6.0 to 2.7.1.
...
<sakai.version>2.7.1</sakai.version>
Ensure that /master/pom.xml sets the correct K1 release <property>.
...
<sakai.kernel.version>1.0.13</sakai.kernel.version>
Confirm /master/pom.xml Sakai Maven plugin <version> from 1.2.0
...
<plugin>
<inherited>true</inherited>
<groupId>org.sakaiproject.maven.plugins</groupId>
<artifactId>sakai</artifactId>
<version>1.2.0</version>
. . . .
</plugin>
Comment out entitybroker, emailtemplateservice and polls base pom.xml <dependencyManagement> declarations. Do not commit changes as each of these projects represent tagged release code.
/pack-demo/pom.xml.
Confirm that pack-demo pom includes the binary artifact generation code.
PROJECT CONVERSION SCRIPTS (*runconversion.sh)
Check for presence of *runconversion.sh (in assignment, content (named content-runconversion.sh, db) and update embedded comments Sakai version to 2.7.1 and Kernel K1 version to 1.0.12.
No Format |
---|
dhcp-dc-prog13:branches arwhyte$ find 2.7.1/ -type f -name "*conversion.sh" -print
2.7.1//assignment/runconversion.sh
2.7.1//content/content-runconversion.sh
2.7.1//mailarchive/mailarchive-runconversion.sh
|
ECLIPSE METADATA FILES
Check Eclipse metadata files and ensure they include correct dependencies. If not run
No Format |
---|
mvn eclipse:clean eclipse:eclipse
|
and commit changes.
GENERATE RELEASE ARTIFACTS
Get copy of Maven2 repo
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. This takes far too long to accomplish. Just tar up maven2/org/sakaiproject
and sftp or scp across the network. The challenge here is that you need all the Maven metadata files locally so that they can be properly updated during the release. Start thinking about using rsync.
Local build machine environment
- Check out 2.7.1 branch
- clean Tomcat 5.5.26
- empty .m2/repository/org/sakaiproject
- new MySQL 5.0.x sakai db
- 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>
|
/master/pom.xml
Confirm <distributionManagement>
, maven-taglib-plugin
, wagon-webdav <build>
extensions are in place. Commit changes if necessary.
1. <distributionManagement>
Code Block | ||
---|---|---|
xml | xml | <distributionManagement> <repository> <uniqueVersion>false</uniqueVersion> <id>local</id> <name>Local Test</name> <url>file:///tmp/maven2</url>reports,sakai.search |
Review reference/docs/sakai.properties
AND reference/demo/sakai.properties
version.service
and version.sakai
. These files should not have been updated by developers. Check logs for changes.
reference/demo/sakai.properties
No Format |
---|
version.service=DEMO
version.sakai=2.7.1
|
reference/docs/sakai.properties
No Format |
---|
version.service=RELEASE
version.sakai=2.7.1
|
POM UPDATES
Update all pom.xml <version> values from 2.7.0 to 2.7.1.
Update /master/pom.xml <sakai.version> from 2.7.0 to 2.7.1.
Code Block | ||||
---|---|---|---|---|
| ||||
<sakai.version>2.7.1</sakai.version>
|
Ensure that /master/pom.xml sets the correct K1 release <property>.
Code Block | ||||
---|---|---|---|---|
| ||||
<sakai.kernel.version>1.1.9</sakai.kernel.version>
|
Confirm /master/pom.xml Sakai Maven plugin <version> from 1.2.0
Code Block | ||||
---|---|---|---|---|
| ||||
<plugin>
<inherited>true</inherited>
<groupId>org.sakaiproject.maven.plugins</groupId>
<artifactId>sakai</artifactId>
<version>1.2.0</version>
. . . .
</plugin>
|
/pack-demo/pom.xml.
Confirm that pack-demo pom includes the binary artifact generation code.
PROJECT CONVERSION SCRIPTS (*runconversion.sh)
Check for presence of *runconversion.sh (in assignment, content (named content-runconversion.sh, db) and update embedded comments Sakai version to 2.7.1 and Kernel K1 version to 1.1.9.
No Format |
---|
dhcp-dc-prog13:branches arwhyte$ find 2.7.1/ -type f -name "*conversion.sh" -print
2.7.1//assignment/runconversion.sh
2.7.1//content/content-runconversion.sh
2.7.1//mailarchive/mailarchive-runconversion.sh
|
GENERATE RELEASE ARTIFACTS
Get copy of Maven2 repo
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. This takes far too long to accomplish. Just tar up maven2/org/sakaiproject
and sftp or scp across the network. The challenge here is that you need all the Maven metadata files locally so that they can be properly updated during the release. Start thinking about using rsync.
Local build machine environment
- Check out 2.7.1 branch
- clean Tomcat 5.5.30
- empty .m2/repository/org/sakaiproject
- new MySQL 5.1.x sakai db
- 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>
|
/master/pom.xml
Confirm <distributionManagement>
, maven-taglib-plugin
, wagon-webdav <build>
extensions are in place. Commit changes if necessary.
1. <distributionManagement>
Code Block | ||||
---|---|---|---|---|
| ||||
<distributionManagement>
<repository>
<uniqueVersion>false</uniqueVersion>
<id>local</id>
<name>Local Test</name>
<url>file:///tmp/maven2</url>
<layout>default</layout>
</repository>
<site>
<id>local</id>
<name>Local Test</name>
<url>file:///tmp/site</url>
</site>
</distributionManagement>
|
...
2. Confirm that taglib profile is included.
Code Block | ||||
---|---|---|---|---|
| ||||
<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 <module>help/help-tool</module> <!-- <module>jsf/jsf-widgets</module> --> <module>metaobj/metaobj-util/tool-lib</module> <module>podcasts/podcasts <!-- <module>msgcntr/messageforums-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> --> <module>osp/common/tool-lib</module> <module>osp/glossary/tool-lib</module> </modules> <profile> |
Copy sakaiartifactgenerator.sh to local 2.7.1 branch checkout folder and run
No Format |
---|
sh sakaiartifactgenerator.sh 2.7.1 storepass keystore
|
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.7.1) 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.
No Format |
---|
sed -e "s/ -r [0-9]*/ -r 52308/" <.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"
|
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> <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> <plugin> <module>rwiki/rwiki-tool/tool</module> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <!-- <module>sam/samigo-app</module> --> <executions> <module>sections/sections-app</module> <execution> <goals><module>sections/sections-app-util</module> <goal>sign</goal><module>syllabus/syllabus-app</module> </modules> </goals> </execution> </executions> <configuration> <!-- <keystore>/somepath/your.keystore</keystore> <alias>youralias</alias> <storepass>yourpassword</storepass> --> <verify>true</verify> </configuration> </plugin> </plugins> profile> |
Copy sakaiartifactgenerator.sh to local 2.7.1 branch checkout folder and run
No Format |
---|
sh sakaiartifactgenerator.sh 2.7.1 storepass keystore
|
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.7.1) 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.
No Format |
---|
sed -e "s/ -r [0-9]*/ -r 52308/" <.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"
|
Resume script run.
5. tar up the source code
6. perform the following mvn actions:
...
WARNING do not issue clean and install goals or local repo will get wiped prematurely (Sakai maven2 repo has yet to be updated).yet to be updated).
No Format |
---|
cd master
mvn install
cd ..
mvn -o -Dmaven.test.skip=true sakai:deploy
|
1.1 Fix bin artifacts
The ant task fails to create the archives correctly, including a parent folder. Fix as follows:
No Format |
---|
cdtar master mvn install cd .. mvn -o -Dmaven.test.skip=true sakai:deploy-czvf sakai-bin-2.7.1.tgz ECLv2.text common components licenses server shared webapps |
2. Run the demo artifact.
...
No Format |
---|
bash sakaitagbuilder-2.67.bash [JIRA ISSUE] sakai-2.7.1 tags 2.7.1 |
...