1. timemachine
  2. scheduler

Wiki

Clone wiki

scheduler / CommittersGuide

This page is for TimeMachine Scheduler developers/committers. If you simply want to develope your job implementation or use the scheduler as library, then please read the ReferenceManual instead.


Developer Quick Ref From Project Source Directory

## Run test and install to local maven repo
$ mvn install

## Run standalone server
$ mvn --projects timemachine-scheduler exec:java -Dexec.classpathScope=test -Dexec.mainClass=timemachine.scheduler.tool.SchedulerServer -Dexec.args=timemachine-scheduler/config/scheduler.properties

## Run web console application (http://localhost:8080/timemachine-web)
$ mvn --projects timemachine-web tomcat7:run

Project Release Instruction

Merge default to stable branch

  1. mkdir $HOME/release && cd $HOME/release
  2. hg clone https://bitbucket.org/timemachine/scheduler
  3. cd scheduler
  4. hg update stable
  5. hg merge default
  6. hg ci -m 'Merged latest default into stable branch.'

Performing Maven Release with Hg

  1. Ensure gpg command is install on the box, and have your password ready.
  2. Ensure you are on stable branch (hg update stable)
  3. mvn -Pgpg -Pexecutable-war release:prepare
  4. mvn release:perform
  5. hg push

Release to Maven Central with Sonatype

  1. Login into https://oss.sonatype.org/index.html
  2. "Close" the staged artifact
  3. "Release" the staged artifact

Upload Distribution Zip Package

  1. Upload the scheduler/target/checkout/timemachine-dist/target/timemachine-*.zip into bitbucket.org project download page.
  2. Upload the scheduler/target/checkout/timemachine-web/target/timemachine-*.war into bitbucket.org project download page.

Update Release Notes & Wiki

  1. Update ReleaseNotes
  2. Update any wiki doc for the release

Upload Maven Site Reports and Demo

  1. $HOME/release/scheduler/target/checkout
  2. scripts/scheduler-site.sh .
  3. Upload scheduler-site.war into http://scheduler-javatimemachine.rhcloud.com/site
  4. Upload timemachine-web.war into http://scheduler-javatimemachine.rhcloud.com/demo

Hg repository maintenance

Branches

We are using two branches:

  • default - Latest development
  • stable - Single maintenance branch.

Users should expect that the 'stable' branch will be as stable as we can publish, while the 'default' has our latest bleeding edge code. Developers need to regularly keep merging bugfixes in 'stable' back to 'default'. And when release is ready, we will merge 'default' into 'stable' branch.

See http://stevelosh.com/blog/2010/05/mercurial-workflows-stable-default for more on how this workflow works.

Generating Maven Site

$ mvn site site:stage
$ ls target/staging

Note that maven site is generate differently when release is performed. It will be in target/site-deploy instead.

Maven Repositories

	<distributionManagement>
		<site>
			<id>site-deploy</id>
			<name>site-deploy</name>
			<url>file:///${project.basedir}/target/site-deploy</url>
		</site>
		<repository>
			<id>sonatype-nexus-staging</id>
			<name>Nexus Staging Repository</name>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
		</repository>
		<snapshotRepository>
			<id>sonatype-nexus-snapshots</id>
			<name>Nexus Snapshot Repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>

Updated