Skip to content

v0.8.3

Latest

Choose a tag to compare

@acgetchell acgetchell released this 26 Oct 03:22
· 12 commits to main since this release
Immutable release. Only release title and notes can be modified.
3fa8a99

⚠️ Breaking Changes

  • Replace direct notebook-check invocations with
    just notebook-check or research-repo-tools notebooks lint. Configure
    example deadlines in tooling/examples.toml instead of EXAMPLE_TIMEOUT.
  • The minimum supported Rust version is now 1.99.0.
  • Retired benchmark baseline and threshold commands and
    legacy comparison readers are removed. New retained reports use shared
    .comparison.json and .evidence.json files; historical files remain records.
  • Python tooling now requires Python 3.15. The release benchmark workflow uses the Python publication adapter in place of scripts/release_benchmarks.sh.
  • Rust 1.99.1 or newer is now required.
  • Publish benchmark-equipped drafts with
    just release-publish TAG. Use bare just instead of help-workflows or
    perf-help, changelog-release instead of changelog-unreleased, and
    update-python-dependencies instead of update-python-deps.
  • Replace the directional safe_scalar_*_f64 and
    safe_coords_*_f64 helpers with try_finite_scalar and try_finite_coords.
  • Remove the public determinant helper and its geometry prelude export. Use Matrix::det() for a floating-point estimate with typed errors, or
    Matrix::det_sign_exact() for an exact sign.

Merged Pull Requests

  • Separate public API benchmarks from diagnostics #665
  • Make paper tooling opt-in and refresh project guides #663
  • Preserve scientific correctness across triangulation workflows #660
  • Delegate remaining numerical kernels to la-stack #658
  • Promote validated Cargo artifacts and align release commands #652
  • Adopt research-repo-tools v0.2.3 #651
  • Bump the github-actions group across 1 directory with 4 updates #646
  • Enforce geometry and recovery invariants #645
  • Automate reviewed releases and command discovery #644
  • Adopt la-stack filters on Rust 1.99.1 #643
  • Delegate spherical angles to la-stack #642
  • Retire local performance orchestration #641
  • Bump the github-actions group with 2 updates #640
  • Adopt research-repo-tools v0.1.8 #639
  • Bump acgetchell/research-repo-tools/.github/workflows/dependabot-approve.yml #638
  • Raise the minimum supported Rust version to 1.99 #637
  • Replace local helpers with research-repo-tools #635
  • Bump the github-actions group across 1 directory with 5 updates #624
  • Adopt shared maintenance and review workflows #623

Changed

  • Adopt shared maintenance and review workflows #623
    894c0b8

refactor(tooling): adopt shared maintenance and review workflows

  • Pin research-repo-tools 0.1.7 and use its managed toolchain for setup and CI.

  • Delegate dependency updates, release metadata, changelog rotation, and
    Semgrep fixture checks to the shared CLI.

  • Move completed changelog series while preserving release dates and links.

  • Verify live origin/main for branch reviews and preserve local-base
    overrides and uncommitted review.

  • Refresh Rust and Python dependency locks and retain updated tool pins.

  • [breaking] Replace local helpers with research-repo-tools #635
    af2f82d

    • Delegate file selection, subprocesses, archives, worktrees, Criterion
      parsing, and atomic publication to the pinned shared package.
    • Replace notebook and example runners with shared commands and
      declarative tooling configuration while preserving notebook policies.
    • Preserve exact Git patch bytes, publication recovery artifacts, and
      subprocess failure diagnostics.
    • Add just security with managed OSV and Gitleaks scans locally and in CI.
    • Document remaining v0.1.8 capabilities and dependent adoption issues.
  • [breaking] Adopt research-repo-tools v0.1.8 #639
    bde38f4

refactor!: adopt research-repo-tools v0.1.8

  • Replace reusable paper, example, notebook, scanning, metadata, and
    publication helpers with supported shared commands and APIs.

  • Keep consumer configuration and scientific Python modules under tooling,
    with only the release benchmark shell script remaining under scripts.

  • Adopt shared comparison JSON and evidence envelopes; retire legacy
    baseline caches, text/CSV readers, threshold commands, and their workflow.

  • Preserve scientific coverage, provenance, and publication checks while
    the remaining upstream performance capabilities are developed.

  • Refresh consumer dependency locks and declared tool versions.

  • [breaking] Retire local performance orchestration #641
    06284cf

    • Adopt research-repo-tools 0.1.9 for measurement execution, canonical Criterion inventory, saved-baseline verification, and release publication.
    • Preserve heterogeneous sampling and scientific provenance while rejecting incompatible retained measurements and colliding baseline names.
    • Keep the trusted publication runtime independent of release checkouts and revalidate the bound release before publishing.
    • Update the Python tooling environment to Python 3.15 and uv 0.13.1, and adopt la-stack 0.5.0.
  • Delegate spherical angles to la-stack #642
    ca5d337

refactor: delegate spherical angles to la-stack

  • Use la-stack's allocation-free slice angle API while retaining radius validation and arc-length scaling.
  • Preserve typed upstream numerical errors and document the quadratic ambient-dimension cost.
  • Add spherical distance benchmarks with independent correctness and allocation checks.
  • [breaking] Adopt la-stack filters on Rust 1.99.1 #643
    5c6bbaa

refactor!: adopt la-stack filters on Rust 1.99.1

  • Delegate relative in-sphere interval signs and circumsphere interval
    arithmetic to la-stack, removing the private interval kernel.

  • Reuse certified shared-vertex projections for Level 4 separation while
    preserving strict unit margins and exact geometric fallbacks.

  • Align the repository toolchain, minimum Rust version, and documentation
    with Rust 1.99.1.

  • [breaking] Delegate remaining numerical kernels to la-stack #658
    2c93eb2

    • Adopt la-stack v0.5.1 in the root crate and checkpoint fixture.
    • Use backend LU, Gram construction, checked dot products, and rational rounding while retaining exact geometric certification and fallback.
    • Refresh the locked protobuf and wrapt dependencies used by development tooling.
  • Separate public API benchmarks from diagnostics #665
    5d4bded

    • Use one curated public API measurement plan for routine CI and release evidence, with internal profiling selected explicitly.
    • Remove duplicate memory profiling jobs and post-merge comparisons while retaining instrumented allocation summaries.
    • Render summaries from retained measurement metadata and reject superseded benchmark plans during release promotion.
    • Document benchmark ownership and unpublished-release recovery, with regression coverage for measurement and reporting contracts.

Fixed

  • [breaking] Enforce geometry and recovery invariants #645
    460ef68

    • Make cospherical flip decisions consistent and periodic simplex identity
      translation-invariant across equality, ordering, hashing, and deduplication.
    • Evaluate periodic quality in lifted charts, preserve vertex-only TDS
      serialization, and return typed errors for oversized point requests.
    • Preserve unfinished builders, rollback configuration, predicate and lift
      causes, checkpoint payload failures, and strict-insphere witnesses.
    • Separate layer-local validation reports, consolidate finite-coordinate
      helpers and permutation parity, and remove unnecessary payload bounds.
    • Publish JSON files atomically and restore allocation-profiler state before
      propagating a measured panic.
    • Correct release packaging, profiling and Clippy failure reporting, artifact
      retention, Semgrep enforcement, and optional-feature test coverage.
    • Preserve benchmark confidence levels, derive conclusions from retained
      measurements, improve CLI and notebook diagnostics, and refresh tooling pins.
    • Align documentation, citations, immutable release evidence, and generated
      validation figures with the implementation.
  • Preserve scientific correctness across triangulation workflows #660
    e365c53

    • Complete exterior insertion conflict cavities and certify hull-corner
      deletion while preserving valid geometry and failure-atomic recovery.
    • Select periodic k=1 insertion images by exact containment, preserve caller
      coordinates and identities, and report ambiguity, range, and search limits.
    • Correct nonconvex point location, conservative spatial duplicate detection,
      and spatial-index restoration after failed bootstrap insertion.
    • Detect genuine nonflippable Delaunay violations, reject unsupported periodic
      location and exact intersection dimensions, and improve typed diagnostics
      for arity, incidence, orientation, and construction failures.
    • Relax snapshot and checkpoint payload bounds to the required Clone and
      serialization traits.
    • Use explicit benchmark fixtures and repair workloads, exclude owner
      destruction from operation timing, and correct profiling scope and quoting.
    • Require scientific report provenance, preserve artifacts on publication
      failure, and improve missing-tool diagnostics and cross-platform fixtures.
    • Prevent overflow in extreme-coordinate visualizations and keep notebook
      Semgrep checks within individual cell boundaries.
    • Remove vacuous and duplicate checks, strengthen invariant and API-contract
      coverage, and retain expensive exact checks with focused timeout allowances.
    • Align kernel documentation, scientific references, and development guidance;
      require production fixes for legitimate regressions and independent evidence
      before changing a test's contract.
  • Allow five-to-three benchmark plan transitions 5d85097

    • Accept the supported historical five-target baseline alongside the
      active three-target public API plan.
    • Preserve retired workloads as baseline-only evidence while retaining
      strict current-plan and shared-workload comparability requirements.
    • Reject incomplete, reordered, or unknown historical target plans.

Maintenance

ci!: automate reviewed releases and command discovery

  • Publish stable, immutable GitHub Releases through shared release gates,
    clean Cargo verification, deployment approval, and crates.io OIDC.
  • Leave verified benchmark assets on the draft for maintainer publication.
  • Generate complete Just help and align documentation ownership and release
    instructions with la-stack, including declared release dates.
  • Refresh Cargo dependencies, Python resolution, and managed tooling pins.
  • Bump the github-actions group across 1 directory with 4 updates #646
    bdde9d3

build(deps): bump the github-actions group across 1 directory with 4 updates

Bumps the github-actions group with 4 updates in the / directory: github/codeql-action/upload-sarif,
astral-sh/setup-uv, github/codeql-action/init and
github/codeql-action/analyze.

Updates github/codeql-action/upload-sarif from 4.38.2 to 4.38.3

Updates astral-sh/setup-uv from 10.0.1 to 10.3.0

Updates github/codeql-action/init from 4.38.2 to 4.38.3

Updates github/codeql-action/analyze from 4.38.2 to 4.38.3

  • Release notes

  • Changelog

  • Commits

  • Adopt research-repo-tools v0.2.3 #651
    d98d835

    • Pin shared tooling to v0.2.3 and refresh locked Python dependencies and managed tool versions.
    • Delegate Python dependency updates to the shared all-projects workflow and expose optional maintenance commands.
    • Use prebuilt formatters, prohibit notebook install cells, and report per-file coverage in CI.
    • Add an opt-in Actions updater policy while retaining the publishing restrictions and scientific validation contracts.
  • Promote validated Cargo artifacts and align release commands #652
    dba358a

ci: promote validated main Cargo artifacts for releases

  • Retain exact-commit Cargo packages after native and default/all-feature validation.
  • Revalidate immutable artifacts and frozen approval evidence before OIDC publication.
  • Use shared Actions output transport and bound archive inspection and diagnostics.
  • Document promotion recovery and refresh uv and locked Python tooling.
  • Make paper tooling opt-in and refresh project guides #663
    5fd85e0

build: make paper tooling opt-in and refresh project guides

  • Keep paper dependencies, tool pins, recipes, and checks opt-in while sharing the root Python environment and lockfile.
  • Move paper CI helpers under papers and run the paper workflow only by manual dispatch.
  • Refresh README scope, limitations, roadmap, security badges, contributor guidance, and project provenance for the v0.8.3 preparation.
  • Update the locked sse-starlette and starlette dependencies while retaining compatibility overrides and historical release evidence.

Refs acgetchell/Papers#1

ci: align Codacy checks with test and badge conventions

  • Apply the existing Codacy test exclusion to the optional paper tests while retaining local Python validation.
  • Scope the inline-HTML exception to the compact README badge rows.
  • Link contributor command discovery to the canonical README Quickstart.

docs: clarify the upstream tooling adoption condition

  • Describe the published upstream capabilities required before retiring local orchestration.