Building and testing
Requirements
Section titled “Requirements”- JDK 25 for the mod. Gradle runs on Java 25 too (
src/mod/gradle/gradle-daemon-jvm.properties). - .NET SDK (version in
src/cloud/global.json) and Docker for the cloud. - Node 22 for the websites, the contract lint and this site.
From src/mod:
./gradlew buildbuilds and tests both jars, heavymatica/neoforge/build/libs and heavymatica/fabric/build/libs. Builds without a
release tag report the version 0.0.0-dev. Tests of the loader-free code run in :heavymatica:common:test.
dotnet build src/cloud/Heavymatica.slnxdotnet test src/cloud/Heavymatica.slnxThe tests start MongoDB and MinIO in containers, so Docker has to run.
Contract lint
Section titled “Contract lint”npx @stoplight/spectral-cli lint src/api/heavymatica-cloud.v1.yamlfrom the repository root. The Gradle build runs it as well.
Websites
Section titled “Websites”In src/web/player and src/web/admin: npm run dev, npm run build, npm run check and npm test.
This site
Section titled “This site”In docs:
npm cinpm run dev # http://localhost:4323npm run build # fails on broken internal linksnpm run check # type check and LikeC4 model validationThe settings and keys pages read the mod’s files, so they need the whole repository, not only docs/. See
Mod projects for how they stay in sync.
Every push and pull request is built and tested by .github/workflows/build.yml. .github/workflows/docs.yml builds
this site on pull requests and publishes it on pushes to main.