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/

## 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
  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
  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 project download page.
  2. Upload the scheduler/target/checkout/timemachine-web/target/timemachine-*.war into 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/ .
  3. Upload scheduler-site.war into
  4. Upload timemachine-web.war into

Hg repository maintenance


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 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

			<name>Nexus Staging Repository</name>
			<name>Nexus Snapshot Repository</name>