Skip to content

0.0.2

Choose a tag to compare

@github-actions github-actions released this 06 Sep 22:59
· 101 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.0.2
340ab7d

Added

  • A ./.github/actions/setup-rust composite action (#33). The six gating jobs
    in ci.yml and the coverage job in sonar.yml call it instead of each
    carrying its own pinned toolchain step. The release lane keeps its own,
    because a publishing lane restores no cache, and now says so at the step.
  • The internal constraint model and the two template readers that fill it
    (#13, #14), in ferrochart-compile. Both ADL generations normalize into one
    model, so the field derivation is written once and nothing above that point
    can tell which reader produced a node: each node carries a node identity, a
    Reference Model type, an occurrences interval, a constraint payload, the
    terminology in scope, and the five parts an overlay key step needs
    (docs/architecture.md sections 3 and 6.2). The ADL 1.4 reader walks a
    parsed .opt, resolving use_node internal references the vendor flattener
    left in place and reading the constrainers only the ITS-XML family declares
    (C_DV_STATE, C_CODE_REFERENCE, T_COMPLEX_OBJECT). The ADL 2 reader
    starts from source archetypes, flattens them and generates the operational
    form itself, folding the C_PRIMITIVE_TUPLE shapes for quantity and ordinal
    into the same payloads the ADL 1.4 domain types produce, and carrying
    constraint_status, which ADL 1.4 cannot state. A node with
    occurrences matches {0} is absent from the model, and a template that
    requires content at a slot it never filled is refused with a typed error
    naming the slot rather than rendered as a guess. 121 of the 123 committed CKM
    templates read; the two refusals are required unfilled slots.
  • A crate-scoped deny.toml licence exception for openehr-term, which
    embeds the openEHR support terminology under CC-BY-SA-3.0 and reaches this
    tree through openehr-its and openehr-adl.
  • The release supply chain (#39, #34): a v* tag now publishes a container
    image, SBOMs, checksums and Sigstore attestations beside the binaries, and a
    quickstart compose.yaml a downloader can run without a clone. The binaries
    and the image are built in reusable workflows called by jobs that carry no
    steps of their own, which is what the SLSA Build Level 3 claim rests on;
    cargo auditable writes the dependency list into every shipped binary,
    CycloneDX describes it beside the archive, and syft describes each image
    platform from that embedded list. A consumer verifies with
    gh attestation verify --signer-workflow, and finalize-release refuses to
    publish a draft missing any of the 27 assets a four-target release promises.
    The compose file's demo profile starts FerroEHR and FerroTERM alongside, and
    its header says plainly that those are separately licensed products and that
    the profile is for evaluation.
  • The server's runtime surface (#41): one FERROCHART_ environment namespace
    read in one place, a loopback default bind that only the container image
    widens, a refusal to start when either upstream endpoint is missing that
    names the variable, an unauthenticated GET /health, and orderly shutdown
    on SIGTERM. The book gains an Operate section describing all of it.
  • The documentation lane (#4): a book under website/book rendered by the
    pinned mdBook toolchain that .github/actions/docs-toolchain installs, and
    docs.yml, which verifies it on every pull request and publishes it to
    GitHub Pages from main. docs/VERSIONS.md carries the three tool pins and
    scripts/checks/versions.sh stops skipping that check.
  • The vendored openEHR CKM template corpus, licence by licence (#12).

Fixed

  • Status text that had gone stale as the repository gained code: the README no
    longer says there is no code and no binary, docs/ci-cd.md no longer calls
    the Rust tier gated off, scripts/checks/versions.sh and four .claude
    rules no longer describe a design phase that closed, and a reference to
    issue #20 that meant a different repository's issue now names #33.

Changed

  • .claude/rules/ci-cd.md and docs/ci-cd.md describe the pipeline that
    exists rather than the one that was waiting for a workspace, and drop a
    stale issue reference carried over from another repository.