Skip to content

refactor: rename darnit-reproducibility to darnit-amber - #532

Open
Marc-cn wants to merge 1 commit into
mainfrom
feat/rename-reproducibility-to-amber
Open

Marc-cn wants to merge 1 commit into
mainfrom
feat/rename-reproducibility-to-amber

Conversation

@Marc-cn

@Marc-cn Marc-cn commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator

The reproducibility module is becoming Amber. This renames it in place - it stays a darnit plugin under packages/, same as the others.

Names chosen to match existing conventions: package darnit-amber (every other plugin is darnit-*), framework amber (every other framework is the bare domain - openssf-baseline, community-spec, gittuf).

What changed

  • packages/darnit-reproducibility → packages/darnit-amber, module darnit_reproducibility → darnit_amber, class ReproducibilityImplementation → AmberImplementation
  • reproducibility.toml → amber.toml; framework and MCP server name reproducibility → amber
  • Entry points under darnit.frameworks and darnit.implementations, plus the implementation's name property - that last one is what discovery.py keys the registry by, so the rename doesn't work without it
  • docs/design/reproducibility-attestation-system.md → amber-attestation-system.md
  • Display name is now "Amber - Scientific Reproducibility Checks"

Breaking

--framework reproducibility becomes --framework amber. darnit-reproducibility on PyPI is superseded by darnit-amber (neither name exists on TestPyPI yet; see #519).

Upgrading in place needs uv sync --reinstall, not plain uv sync. The old editable install leaves a darnit_reproducibility entry point behind, which then fails to load and masks the new one. Clean environments (CI) aren't affected.

Type of Change

  • Refactoring (no functional changes)
  • Breaking change (framework name and package name)

Testing

  • Tests pass locally
  • Linting passes

tests/darnit_amber + tests/darnit/sieve + tests/darnit/test_plugin_handler_registration.py + tests/packaging: 293 passed, 4 skipped. darnit list shows amber with its 5 controls; darnit audit --framework amber runs them end to end.

AI assistance

  • No AI assistance was used
  • AI assistance was used

Left alone deliberately

  • specs/ - 20 files mention the old name, but they're records of what was built at the time. Rewriting them would double the diff
  • The audit_reproducibility MCP tool in amber.toml - renaming a tool breaks any agent config that references it. Separate change if we want it.
  • Prose about reproducibility as a concept - the plugin still checks reproducibility; only its name changed

@Marc-cn
Marc-cn requested a review from mlieberman85 as a code owner October 1, 2026 18:42
The reproducibility module is becoming Amber. Package
is darnit-amber (keeping the darnit-* convention); framework name is
amber (matching the bare-domain convention of openssf-baseline,
community-spec, gittuf).

- packages/darnit-reproducibility -> packages/darnit-amber
- darnit_reproducibility -> darnit_amber, ReproducibilityImplementation
  -> AmberImplementation
- reproducibility.toml -> amber.toml; framework and MCP server name
  reproducibility -> amber
- entry points under darnit.frameworks and darnit.implementations
  renamed, and the implementation's name property, which is what
  discovery keys the registry by
- docs/design/reproducibility-attestation-system.md ->
  amber-attestation-system.md
- display name now 'Amber - Scientific Reproducibility Checks'

Breaking: --framework reproducibility becomes --framework amber, and
darnit-reproducibility on PyPI is superseded by darnit-amber.

Left alone: specs/ (historical records of what was built at the time)
and the audit_reproducibility MCP tool name (renaming it would break
agent configs that reference it).

Assisted-by: Claude
Signed-off-by: Marc-cn <md6796@nyu.edu>

@mlieberman85 mlieberman85 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This now conflicts with 0.1.1 and 044: reproducibility.toml gained effects/ceiling declarations, and its tests reference the framework by name. Before merge:

  1. packaging/pypi/public-packages.txt still lists darnit-reproducibility, so the release preflight and build fail.
  2. Upgrade path: pip install -U darnit-mcp would leave darnit-reproducibility installed and failing to load. It needs a final darnit-reproducibility release that depends on darnit-amber, or the distribution name kept.
  3. Update the tests that still expect the reproducibility framework name (test_plan_contract.py and the 044 reproducibility tests), and docs/getting-started/using-skills.md.
  4. Add a CHANGELOG entry (breaking) and a linked issue or decision record.
  5. Rebase after #519 lands; its Dockerfile loop and smoke matrix need the new name.

Drafted with Claude Code; reviewed and posted by me.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants