...
Local
...
build
...
machine
...
environment
...
- clean
...
- Tomcat
...
- 5.5.26
...
- empty
...
- .m2/repository/org/sakaiproject
...
- new
...
- MySQL
...
- 5.0.51
...
- sakai
...
- db
...
- add
...
- to
...
- .M2/settings.xml
...
No Format |
---|
<!-- Reference plugins in order to use <goalPrefix> short-hand -->
<pluginGroups>
<pluginGroup>net.sourceforge.maven-taglib</pluginGroup>
</pluginGroups>
{noformat}
h3. Tag preparation
1. Check out RC tag.
h5. sakai.properties
2. Update {{component |
Tag preparation
Check out final RC tag.
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=RELEASE
version.sakai=2.5.2
. . .
# 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.messagecenter,sakai.podcasts,sakai.postem,sakai.rutgers.linktool,sakai.rutgers.testlink,sakai.search,sakai.site.roster
{noformat}
3. Update {{ |
2. Update reference/docs/sakai.properties
...
version.service
...
and
...
version.sakai
...
.
...
Make
...
sure
...
stealthedTools
...
property
...
is
...
commented
...
out
...
(i.e.,
...
enabling
...
all
...
provisional
...
tools
...
for
...
the
...
demo).
...
Commit
...
changes.
...
No Format |
---|
version.service=DEMO
version.sakai=2.5.2
{noformat}
h5. /master/pom.xml
1. Add
h5. /pack-demo/pom.xml
4. The current 2.5.x pack-demo pom does not include the binary artifact generation code. Replace with
{no format}
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>base</artifactId>
<groupId>org.sakaiproject</groupId>
<version>2.5.2</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupId>org.sakaiproject</groupId>
<artifactId>pack-demo</artifactId>
<packaging>pom</packaging>
<name>Sakai Pack Demo</name>
<version>2.5.2</version>
<organization>
<name>Sakai Project</name>
<url>http://sakaiproject.org/</url>
</organization>
<properties>
<sakai.plugin.version>2.2</sakai.plugin.version>
<sakai.tomcat.version>5.5.26</sakai.tomcat.version>
</properties>
<dependencies>
<dependency>
<groupId>tomcat.tomcat</groupId>
<artifactId>tomcat</artifactId>
<version>${sakai.tomcat.version}</version>
<type>zip</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>pack-demo-clean</id>
<phase>install</phase>
<configuration>
<tasks>
<!-- clear the deploy area -->
<delete dir="${basedir}/target/unpack" />
<delete dir="${basedir}/target/pack" />
<!-- expand the tomcat zip from the repo into the target -->
<unzip
src="${settings.localRepository}/tomcat/tomcat/tomcat/${sakai.tomcat.version}/tomcat-${sakai.tomcat.version}.zip"
dest="${basedir}/target/unpack" overwrite="true" />
<echo>
Executing cd ../;mvn
-Dmaven.tomcat.home=${basedir}/target/pack
-Dmaven.test.skip=true clean install
sakai:deploy
</echo>
<exec dir="../" executable="mvn"
failonerror="true">
<arg
value="-Dmaven.tomcat.home=${basedir}/target/pack" />
<arg value="-Dmaven.test.skip=true" />
<arg value="-Dkeystore=${keystore}" />
<arg value="-Dalias=${alias}" />
<arg
value="-Dstorepass=${storepass}" />
<!-- <arg value="clean"/> -->
<arg value="install" />
<arg value="sakai:deploy" /> |
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" />
|
/master/pom.xml
Add <distributionManagement>
, maven-taglib-plugin
, wagon-webdav <build>
extension.
Commit changes.
1. <distributionManagement>
No Format |
---|
<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. maven-taglib-plugin
No Format |
---|
<plugin>
<groupId>net.sourceforge.maven-taglib</groupId>
<artifactId>maven-taglib-plugin</artifactId>
<configuration>
<goalPrefix>taglib</goalPrefix>
<taglib.src.dir>src</taglib.src.dir>
<!-- <taglib.src.dir>src/webapp/WEB-INF</taglib.src.dir> -->
</configuration>
</plugin>
|
3. wagon-webdav <build>
extension
No Format |
---|
<!-- Required for Dav -->
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
|
/pack-demo/pom.xml
The current 2.5.x pack-demo pom does not include the binary artifact generation code. Replace entire pom with XML below and commit changes.
No Format |
---|
<?xml version="1.0"?> <project xmlns="http://maven.apache.org/POM/4.0.0"> <modelVersion>4.0.0</modelVersion> <parent> <artifactId>base</artifactId> <groupId>org.sakaiproject</groupId> <version>2.5.2</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.sakaiproject</groupId> <artifactId>pack-demo</artifactId> <packaging>pom</packaging> <name>Sakai Pack Demo</name> <version>2.5.2</version> <organization> <name>Sakai Project</name> <url>http://sakaiproject.org/</url> </organization> <properties> <sakai.plugin.version>2.2</sakai.plugin.version> <sakai.tomcat.version>5.5.26</sakai.tomcat.version> </properties> <dependencies> <dependency> <groupId>tomcat.tomcat</groupId> <artifactId>tomcat</artifactId> <version>${sakai.tomcat.version}</version> <type>zip</type> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>pack-demo-clean</id> <phase>install</phase> <configuration> <tasks> </exec> !-- clear the deploy area --> <copy<delete dir="${basedir}/target/unpack" /> todir<delete dir="${basedir}/target/pack" /licenses/"> <fileset <!-- expand the tomcat zip from the repo into the target --> <unzip dir src="${basedirsettings.localRepository}/tomcat/tomcat/tomcat/${sakai.tomcat./reference/licenses">version}/tomcat-${sakai.tomcat.version}.zip" <exclude namedest=".svn/**${basedir}/target/unpack" overwrite="true" /> </fileset> <echo> </copy> <copy file="${basedir}/../ECLv1.txt"Executing cd ../;mvn tofile="-Dmaven.tomcat.home=${basedir}/target/pack/ECLv1.txt" overwrite="true" /> <!-- zip it --> -Dmaven.test.skip=true clean install <deletesakai:deploy file="sakai-bin-${sakai.version}.zip" /></echo> <zip destfile="sakai-bin-${sakai.version}.zip" compress="yes"><exec dir="../" executable="mvn" <zipfilesetfailonerror="true"> dir="<arg value="-Dmaven.tomcat.home=${basedir}/target/pack" /"> prefix<arg value="sakai-bin-${sakai.version}-Dmaven.test.skip=true" /> </zip> <arg value="-Dkeystore=${keystore}" /> <echo> <arg value="-Dalias=${alias}" /> * * * sakai-bin-${sakai.version}.zip <arg </echo> value="-Dstorepass=${storepass}" /> <!-- tar it<arg value="clean"/> --> <delete <arg value="install" /> file<arg value="sakai-bin-${sakai.version}.tar.gz:deploy" /> <tar</exec> destfile="sakai-bin-${sakai.version}.tar.gz" longfile="gnu"<copy compressiontodir="gzip${basedir}/target/pack/licenses/"> <tarfileset<fileset dir="${basedir}/target../packreference/" mode="755"licenses"> prefix<exclude name="sakai-bin-${sakai.version}".svn/**" /> <include name="**/*.sh" /> </fileset> </tarfileset>copy> <tarfileset dir<copy file="${basedir}/target/pack/../ECLv1.txt" prefixtofile="sakai-bin-${sakai.version}"> <exclude name="**/*.shbasedir}/target/pack/ECLv1.txt" overwrite="true" /> </tarfileset>!-- zip it --> </tar><delete <echo>file="sakai-bin-${sakai.version}.zip" /> * * * <zip destfile="sakai-bin-${sakai.version}.tar.gzzip" compress="yes"> </echo> <zipfileset <move filedir="${basedir}/target/pack/" tofile prefix="sakai-bin-${basedir}/target/pack-stage" overwrite="true" />sakai.version}" /> </zip> <move<echo> file="${basedir}/target/unpack/apache-tomcat* * * sakai-bin-${sakai.tomcat.version}".zip tofile="${basedir}/target/pack" overwrite="true" /> </echo> <delete dir="${basedir}/target/unpack" /> <!-- tar it --> <delete <copy todir file="sakai-bin-${basedir}/target/pack"sakai.version}.tar.gz" /> <fileset<tar dirdestfile="sakai-bin-${basedir}/target/pack-stage"> sakai.version}.tar.gz" longfile="gnu" <include namecompression="**/*" /gzip"> </fileset><tarfileset </copy> dir="${basedir}/target/pack/" mode="755" <!-- add in demo stuff --prefix="sakai-bin-${sakai.version}"> <copy file="${basedir}/../reference/demo/sakai.properties"<include name="**/*.sh" /> tofile="${basedir}/target/pack/sakai/sakai.properties" /> </tarfileset> <copy<tarfileset todir dir="${basedir}/target/pack/sakai/db"> <fileset prefix="sakai-bin-${sakai.version}"> dir<exclude name="${basedir}/../reference/demo/db"**/*.sh" /> <include name="**/sakai.db.*" /></tarfileset> </fileset>tar> </copy><echo> <copy * * * file="sakai-bin-${basedirsakai.version}/../reference/demo/readme.txt"tar.gz </echo> <move file="${basedir}/target/pack" tofile="${basedir}/target/pack/demo_readme.txt-stage" overwrite="true" /> <copy<move file="${basedir}/..target/reference/docs/readme.txtunpack/apache-tomcat-${sakai.tomcat.version}" tofile="${basedir}/target/pack/sakai_readme.txt" overwrite="true" /> <copy file<delete dir="${basedir}/../reference/demo/start-sakai.bat"target/unpack" /> tofile<copy todir="${basedir}/target/pack/start-sakai.bat" /> <copy <fileset file dir="${basedir}/../reference/demo/start-sakai.sh"target/pack-stage"> tofile <include name="${basedir}/target/pack/start-sakai.sh" /**/*" /> </fileset> </copy> <!-- add in demo stuff --> <copy file="${basedir}/../reference/demo/stop-sakai.batproperties" tofile="${basedir}/target/pack/stop-sakai/sakai.batproperties" /> <copy filetodir="${basedir}/..target/referencepack/demo/stop-sakai.sh"sakai/db"> <fileset tofile dir="${basedir}/../reference/target/pack/stop-sakai.shdemo/db"> <include name="**/sakai.db.*" /> <!-- Replace the favorite icon from tomcat --> /fileset> <copy</copy> <copy file="${basedir}/../reference/library/src/webapp/icon/favicon.icodemo/readme.txt" tofile="${basedir}/target/pack/webapps/ROOT/favicon.ico" overwrite="true" /> demo_readme.txt" /> <!-- custom Tomcat mods --> <copy file="${basedir}/../reference/demodocs/indexreadme.htmltxt" tofile="${basedir}/target/pack/webapps/ROOT/index.htmlsakai_readme.txt" /> <copy overwrite="true" file="${basedir}/target../packreference/confdemo/serverstart-sakai.xmlbat" tofile="${basedir}/target/pack/conf/serverstart-origsakai.xmlbat" /> <copy overwrite="true" file="${basedir}/target../packreference/confdemo/serverstart-origsakai.xmlsh" tofile="${basedir}/target/pack/conf/server.xml"start-sakai.sh" /> <filterset<copy begintoken="maxHttpHeaderSize" endtoken=""8192"file="${basedir}/../reference/demo/stop-sakai.bat" recursetofile="false"${basedir}/target/pack/stop-sakai.bat" /> <copy <filter token="= file="${basedir}/../reference/demo/stop-sakai.sh" value="maxHttpHeaderSize="8192" URIEncoding="UTF-8"tofile="${basedir}/target/pack/stop-sakai.sh" /> </filterset>!-- Replace the favorite icon from tomcat --> </copy><copy <!-- makes all ".sh" files readable and executable for anyone on a UNIX system --> file="${basedir}/../reference/library/src/webapp/icon/favicon.ico" <chmod dirtofile="${basedir}/target/pack/webapps/ROOT/favicon.ico" permoverwrite="ugo+rxtrue" includes="**/*.sh" /> <!-- zipcustom Tomcat itmods --> <delete<copy file="sakai-demo-${sakai.version}.zip" /> <zipbasedir}/../reference/demo/index.html" destfiletofile="sakai-demo-${sakai.version}.zip" compress="yes"basedir}/target/pack/webapps/ROOT/index.html" /> <zipfileset<copy overwrite="true" dirfile="${basedir}/target/pack/conf/server.xml" prefixtofile="sakai-demo-${sakai.version}${basedir}/target/pack/conf/server-orig.xml" /> </zip> <copy overwrite="true" <echo>file="${basedir}/target/pack/conf/server-orig.xml" * * * tofile="${basedir}/target/pack/conf/server.xml"> sakai-demo-${sakai.version}.zip <filterset </echo> begintoken="maxHttpHeaderSize" endtoken=""8192"" <!-- tar it --> recurse="false"> <delete <filter token="=" file="sakai-demo-${sakai.version}.tar.gz value="maxHttpHeaderSize="8192" URIEncoding="UTF-8"" /> <tar</filterset> destfile="sakai-demo-${sakai.version}.tar.gz" longfile="gnu"</copy> compression="gzip"> <tarfileset <!-- makes all ".sh" files readable and executable for anyone on a UNIX system --> <chmod dir="${basedir}/target/pack/" mode="755" prefix="sakai-demo-${sakai.version}"> <include nameperm="ugo+rx" includes="**/*.sh" /> </tarfileset>!-- zip it --> <tarfileset<delete dirfile="sakai-demo-${basedir}/target/pack/" sakai.version}.zip" /> <zip prefix destfile="sakai-demo-${sakai.version}.zip" compress="yes"> <exclude name="**/*.sh" /> <zipfileset </tarfileset>dir="${basedir}/target/pack/" </tar> prefix="sakai-demo-${sakai.version}" /> </zip> <echo> * * * sakai-demo-${sakai.version}.tar.gzzip </echo> <delete dir="${basedir}/target/pack/" /<!-- tar it --> <delete dirfile="sakai-demo-${basedir}/target/pack-stage/" /> sakai.version}.tar.gz" /> </tasks><tar </configuration> destfile="sakai-demo-${sakai.version}.tar.gz" longfile="gnu" <goals> <goal>run</goal>compression="gzip"> </goals> </execution><tarfileset </executions> </plugin> </plugins> </build> </project> {no format} dir="${basedir}/target/pack/" mode="755" prefix="sakai-demo-${sakai.version}"> <include name="**/*.sh" /> </tarfileset> <tarfileset dir="${basedir}/target/pack/" prefix="sakai-demo-${sakai.version}"> <exclude name="**/*.sh" /> </tarfileset> </tar> <echo> * * * sakai-demo-${sakai.version}.tar.gz </echo> <delete dir="${basedir}/target/pack/" /> <delete dir="${basedir}/target/pack-stage/" /> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> |
entitybroker/pom.xml
Remove <distributionManagement> directive which disrupts build process as well as other extraneous definitions. Commit changes.
Delete the following:
No Format |
---|
<repositories>
<repository>
<id>sakai-maven</id>
<name>Sakai Maven Repo</name>
<layout>default</layout>
<url>http://source.sakaiproject.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>default</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>Sakai-Maven2</id>
<name>Sakaiproject Maven 2 repository</name>
<url>dav:https://source.sakaiproject.org/maven2</url>
</repository>
<site>
<id>local site</id>
<url>file:/tmp/entitybroker/site/</url>
</site>
</distributionManagement>
<issueManagement>
<system>JIRA</system>
<url>http://jira.sakaiproject.org/jira/browse/SAK</url>
</issueManagement>
<ciManagement>
<system>Continuum</system>
<url>http://saffron.caret.cam.ac.uk/continuum</url>
<notifiers>
<notifier>
<type>mail</type>
<sendOnError>true</sendOnError>
<sendOnFailure>true</sendOnFailure>
<sendOnSuccess>false</sendOnSuccess>
<sendOnWarning>false</sendOnWarning>
<configuration>
<address>aaron@caret.cam.ac.uk</address>
</configuration>
</notifier>
<notifier>
<type>mail</type>
<sendOnError>true</sendOnError>
<sendOnFailure>true</sendOnFailure>
<sendOnSuccess>false</sendOnSuccess>
<sendOnWarning>false</sendOnWarning>
<configuration>
<address>antranig@caret.cam.ac.uk</address>
</configuration>
</notifier>
</notifiers>
</ciManagement>
<!-- define the license -->
<licenses>
<license>
<name>Educational Community License, Version 1.0</name>
<url>http://www.opensource.org/licenses/ecl1.php</url>
<distribution>repo</distribution>
</license>
</licenses>
|
Update .svnignore
Add
No Format |
---|
Sakai.keystore
sakaiartifactgenerator.sh
|
Commit changes.
WARNING /reference/conversion
Review sql conversion scripts, update and commit as necessary.
WARNING: /master/pom.xml
Make sure sakai maven plugin <version> value does not get overwritten (e.g. "M2" gets overwritten). It should be 1.0 or later.
No Format |
---|
<plugin>
<inherited>true</inherited>
<groupId>org.sakaiproject.maven.plugins</groupId>
<artifactId>sakai</artifactId>
<version>1.0</version>
. . . .
|
WARNING base pom.xml missing javadoc plugin configuration
Artifact generation failed on default javadoc plugin definition. Update to
No Format |
---|
<plugin>
<!-- javadocs -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<debug>true</debug>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
<link>http://java.sun.com/j2ee/1.5.0/docs/api/</link>
<link>http://static.springframework.org/spring/docs/2.0.8/api/</link>
<link>http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/api/</link>
<link>http://jakarta.apache.org/velocity/api/</link>
<link>http://www.hibernate.org/hib_docs/v3/api/</link>
<link>http://james.apache.org/javadocs/</link>
<link>http://james.apache.org/mailet/</link>
</links>
<breakiterator>true</breakiterator>
<verbose>false</verbose>
<aggregate>true</aggregate>
<maxmemory>512m</maxmemory>
<additionalJOption>-J-Xms168m -J-Xmx512m -J-XX:PermSize=128m -J-XX:NewSize=64m</additionalJOption>
<version>2.3</version>
</configuration>
</plugin>
|
WARNING Base pom missing taglib <profile>. Add and commit.
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 RC tag .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.
No Format |
---|
cd /Users/arwhyte/Development/svn/sakai_tag_prep
svn co -N https://source.sakaiproject.org/svn/sakai/tags/sakai_2-5-2_rc01 sakai_2-5-2_rc01
sed -e "s/-r[0-9]*/-r50137/" <.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"
|
Check out final RC tag again and confirm checkout includes all tag prep commits as well as updated .externals.
Generate Release artifacts
1. Mount Sakai Maven2 Repo using DAV (/Volumes/maven2). WARNING: create backup folder of maven2 so that only one copy operation is required in event of a generation failure.
2. run sh sakaiartifactgenerator.sh 2.5.2 storepass keystore
The artifactgenerator script performs the following steps
No Format |
---|
clean out previous builds
clean out target, m2-target, bin
clean out /tmp/maven2
replacing the M2 version with the release version in
all pom.xml
all .classpath
all runconversion.sh, also content-runconversion.sh
tar up the source
perform the following sequence
in master mvn install
mvn -Ppack-demo 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.
then package up
the maven repo in /tmp/maven2
the javadoc
the sakai-demo and sakai-bin artifacts
the taglibsdocs
|
Signing the Samigo audio jar. Uncomment the maven-jar-plugin. Comment out <keystore>, <alias> and <storepass>. DO NOT COMMIT.
No Format |
---|
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<!--
<keystore>/somepath/your.keystore</keystore>
<alias>youralias</alias>
<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
No Format |
---|
md5sum sakai-bin-2.5.2.tar.gz > sakai-bin-2.5.2_tar_gz.md5
|