This project uses Mill as the build tool.
To clean the project build artifacts:
./mill cleanTo compile all the modules:
./mill __.compile
To run the project tests:
./mill fdswarm.test.testLocalThis project uses Scoverage for code coverage.
To generate an HTML coverage report:
./mill fdswarm.scoverage.htmlReportThe report will be available at: out/fdswarm/scoverage/htmlReport.dest/index.html
To create a new release with downloadable artifacts (JAR, Windows MSI, macOS PKG):
- Push a tag to the repository matching the pattern
v*(e.g.,v1.0.0). - Use three numeric version components in release tags, such as
v1.0.0. - The GitHub Action will automatically build the project, run tests, and create a GitHub Release with the artifacts.
Release tags provide the public app version (X.Y.Z). GitHub Actions provides the build number from the workflow run number. Installer metadata uses a three-part installer-safe version for MSI/PKG compatibility, while artifact filenames include the build number, for example FdSwarm-1.0.0-build123-windows-x64.msi.
Artifacts are also available as GitHub Action run artifacts for every build on the main branch.
A manager is available to manage a bunch of instances of fdswarm, on a single host.
./run-manager.sh
Running manager.run keeps that Mill process alive. Using a dedicated MILL_OUTPUT_DIR prevents it from blocking other commands (for example ./mill fdswarm.compile) in another terminal.
For information on how to configure and change log levels, see docs/logging.md.
Other coverage report formats:
- XML Report:
./mill fdswarm.scoverage.xmlReport - Console Report:
./mill fdswarm.scoverage.consoleReport - Cobertura XML:
./mill fdswarm.scoverage.xmlCoberturaReport
Documentation sources live in docs/src and are rendered with Laika.
./mill docs.siteThe generated site is available at out/docs/site.dest/site/index.html.
When fdswarm.jar is built after ./mill docs.site, the generated site is
packaged into the jar and served from the Help > FDSwarmDocs menu item.