Skip to content

S0a: project build — Gradle, engine pin, boundary test, CI #2

Closed

Description

@david-Darkcollective

Part of #17. Design: docs/design.md §7.

Scope

The build every other slice compiles in.

  • Gradle (wrapper checked in) with a Java 21 toolchain. Not raised, no --enable-preview, no gradle.properties overriding the toolchain.
  • The engine pin. One relixEngineVersion in the root build.
    • develop tracks 1.0.0-SNAPSHOT from Central's snapshot repository (https://central.sonatype.com/repository/maven-snapshots/), which relix-core publishes on every push to its develop. The CLI's needs then reach the engine before 1.0.0-rc8 is cut (relix-core milestone 1.0.0-rc8). The snapshot repository is added only when the pin is a snapshot.
    • Releases resolve from Maven Central.
    • A checkEnginePin task in check fails a release build that pins a -SNAPSHOT.
  • The engine's artifacts (Publish the engine as smaller artifacts: relix, relix-docs, relix-solver-ojalgo, and a relix-all bundle relix-core#84): relix for the command and the library; relix-docs for relix-console's reference-page index; relix-solver-ojalgo at runtime only, so the command's OPTIMIZE and COVER EXACT work.
  • Building against a local engine checkout documented as a Gradle composite build (includeBuild).
  • A boundary test. Every source set, tests included, may use only the packages the engine jar's module descriptor exports. The modular build gets this from the compiler; the test covers what runs on a class path.
  • CI on GitHub Actions for every pull request and every push to main/develop:
    • ./gradlew clean build on Linux, macOS and Windows
    • Dependabot for Gradle and Actions
  • Javadoc in check, with dangling references an error.
  • Coverage through JaCoCo.
  • CONTRIBUTING.md gains the build gate commands.

Dependencies

Acceptance

  • A clean checkout builds green on all three platforms in CI.
  • The boundary test fails on a deliberate import of a non-exported engine package; that is probed once when written.
  • checkEnginePin fails a release version pinned to a snapshot.

Activity

  1. david-Darkcollective commented on Oct 7, 2026

    @david-Darkcollective
    MemberAuthor

    Done in #19, merged to develop as 1bb35e6.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:buildGradle, CI, packaging, releasebacklogNot yet scheduledenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions