Skip to content

Latest commit

 

History

History
90 lines (65 loc) · 2.35 KB

developer_guide.md

File metadata and controls

90 lines (65 loc) · 2.35 KB

Developer Guide

Clone and configure

mkdir time-recording-data
git clone https://github.com/itsallcode/white-rabbit.git
cd white-rabbit
# Configure
echo "data = $HOME/time-recording-data/" > $HOME/.whiterabbit.properties

Using Build Scripts

Build and launch

# Build WhiteRabbit and install plugins to $HOME/.whiterabbit/plugins/
./gradlew build installPlugins
# To skip unit and ui-tests, run
./gradlew build installPlugins -x test -x uiTest
# Run
java -jar product/build/libs/white-rabbit-fx-<version>[-SNAPSHOT].jar

# Build and run, loading plugins from $HOME/.whiterabbit/plugins/
./gradlew run

# Build and run including plugins. Useful when developing plugins.
# Make sure to remove unwanted plugins from $HOME/.whiterabbit/plugins/
./gradlew runWithPlugins

# Build and run the shadowJar of the final product.
./gradlew runProduct

Running Tests

Run all tests:

./gradlew check

Run only UI-Tests:

# Headless (default)
./gradlew check
# Not Headless (don't move mouse while running!)
./gradlew check -PuiTestsHeadless=false

Run a single test:

./gradlew uiTest -i --tests AboutDialogUiTest

Check that dependencies are up-to-date

./gradlew dependencyUpdates

Build Native Packages

Precondition for Windows: Install the WiX Toolset and add it to the PATH.

./gradlew jpackage --info

Creating a Release

Preparations

  1. Checkout the main branch, create a new branch.
  2. Update version number in build.gradle and README.md.
  3. Add changes in new version to CHANGELOG.md.
  4. Commit and push changes.
  5. Create a new pull request, have it reviewed and merged to main.

Perform the Release

  1. Start the release workflow
  • Run command gh workflow run release.yml --repo itsallcode/white-rabbit --ref main
  • or go to GitHub Actions and start the release.yml workflow on branch main.
  1. Update title and description of the newly created GitHub release.
  2. Close the milestone in GitHub.
  3. After some time the release will be available at Maven Central.