From 9fb02f58a0fc8ffb7339a0dedb50d53f720f962a Mon Sep 17 00:00:00 2001 From: ViDale Lovett <229783427+lovettsendit@users.noreply.github.com> Date: Wed, 26 Aug 2026 18:29:17 +0200 Subject: [PATCH 1/2] Release Breakcheck 2.0.0 --- .github/ISSUE_TEMPLATE/bug.yml | 92 ++ .github/ISSUE_TEMPLATE/compatibility-case.yml | 94 ++ .github/ISSUE_TEMPLATE/config.yml | 8 + .github/ISSUE_TEMPLATE/feature.yml | 40 + .../ISSUE_TEMPLATE/revision-claim-case.yml | 116 ++ .github/pull_request_template.md | 36 + .github/workflows/ci.yml | 26 +- .github/workflows/release.yml | 166 ++ AGENTS.md | 5 + CHANGELOG.md | 12 + CONTRIBUTING.md | 33 + LICENSE | 2 +- MANIFEST.in | 7 + README.md | 432 ++++-- SECURITY.md | 18 +- SKILL.md | 81 + docs/assets/breakcheck-social-preview.png | Bin 0 -> 798598 bytes examples/github-actions.yml | 17 + examples/packaging-change/app.py | 3 + examples/run_demo.sh | 142 ++ pyproject.toml | 13 +- release_evidence/fixture-viability.json | 57 + scripts/scan_artifacts.sh | 277 ++++ src/breakcheck/__init__.py | 4 +- src/breakcheck/adapters/python/coverage.py | 211 +++ src/breakcheck/adapters/python/envs.py | 4 +- src/breakcheck/adapters/python/equality.py | 69 +- src/breakcheck/adapters/python/executor.py | 383 ++++- src/breakcheck/adapters/python/fixtures.py | 728 +++++++++ src/breakcheck/adapters/python/literals.py | 573 ++++++- .../adapters/python/normalization.py | 78 +- src/breakcheck/adapters/python/protocol.py | 375 +++++ src/breakcheck/adapters/python/scanner.py | 235 ++- src/breakcheck/adapters/python/symbols.py | 353 +++++ src/breakcheck/adapters/python/worktrees.py | 349 +++++ src/breakcheck/cli.py | 984 +++++++++++- src/breakcheck/core/baselines.py | 630 ++++++++ src/breakcheck/core/claims.py | 483 ++++++ src/breakcheck/core/interfaces.py | 14 +- src/breakcheck/core/models.py | 31 + src/breakcheck/demo.py | 147 ++ src/breakcheck/report.py | 120 ++ src/breakcheck/revision_cli.py | 1373 +++++++++++++++++ src/breakcheck/revision_report.py | 45 + src/breakcheck/schema.py | 1068 +++++++++++++ src/breakcheck/verify.py | 37 +- tests/test_agent_workflow.py | 74 + tests/test_behavioral_invariants.py | 157 ++ tests/test_claim_attestation.py | 264 ++++ tests/test_cli_integration.py | 544 +++++++ tests/test_cost_contract.py | 54 + tests/test_distribution_contract.py | 96 ++ tests/test_fixtures_and_projections.py | 301 ++++ tests/test_github_community.py | 144 ++ tests/test_product_smoke.py | 18 + tests/test_production_hardening.py | 50 +- tests/test_project_metadata_and_demo.py | 168 ++ tests/test_release_automation.py | 284 ++++ tests/test_replay_protocol_and_coverage.py | 229 +++ tests/test_revision_cli.py | 666 ++++++++ tests/test_revision_diff.py | 307 ++++ tests/test_revision_executor.py | 260 ++++ tests/test_revision_freeze.py | 203 +++ tests/test_revision_symbols.py | 308 ++++ tests/test_revision_verification.py | 275 ++++ tests/test_revision_worktrees.py | 256 +++ tests/test_schema_compatibility.py | 356 +++++ tests/test_static_resolution.py | 487 ++++++ 68 files changed, 15175 insertions(+), 297 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/compatibility-case.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature.yml create mode 100644 .github/ISSUE_TEMPLATE/revision-claim-case.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/release.yml create mode 100644 AGENTS.md create mode 100644 SKILL.md create mode 100644 docs/assets/breakcheck-social-preview.png create mode 100644 examples/github-actions.yml create mode 100644 examples/packaging-change/app.py create mode 100644 examples/run_demo.sh create mode 100644 release_evidence/fixture-viability.json create mode 100644 scripts/scan_artifacts.sh create mode 100644 src/breakcheck/adapters/python/coverage.py create mode 100644 src/breakcheck/adapters/python/fixtures.py create mode 100644 src/breakcheck/adapters/python/protocol.py create mode 100644 src/breakcheck/adapters/python/symbols.py create mode 100644 src/breakcheck/adapters/python/worktrees.py create mode 100644 src/breakcheck/core/baselines.py create mode 100644 src/breakcheck/core/claims.py create mode 100644 src/breakcheck/demo.py create mode 100644 src/breakcheck/revision_cli.py create mode 100644 src/breakcheck/revision_report.py create mode 100644 src/breakcheck/schema.py create mode 100644 tests/test_agent_workflow.py create mode 100644 tests/test_behavioral_invariants.py create mode 100644 tests/test_claim_attestation.py create mode 100644 tests/test_cli_integration.py create mode 100644 tests/test_cost_contract.py create mode 100644 tests/test_distribution_contract.py create mode 100644 tests/test_fixtures_and_projections.py create mode 100644 tests/test_github_community.py create mode 100644 tests/test_project_metadata_and_demo.py create mode 100644 tests/test_release_automation.py create mode 100644 tests/test_replay_protocol_and_coverage.py create mode 100644 tests/test_revision_cli.py create mode 100644 tests/test_revision_diff.py create mode 100644 tests/test_revision_executor.py create mode 100644 tests/test_revision_freeze.py create mode 100644 tests/test_revision_symbols.py create mode 100644 tests/test_revision_verification.py create mode 100644 tests/test_revision_worktrees.py create mode 100644 tests/test_schema_compatibility.py create mode 100644 tests/test_static_resolution.py diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..887144d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,92 @@ +name: Bug report +description: Report a reproducible Breakcheck defect +title: "[Bug]: " +labels: + - bug +body: + - type: markdown + attributes: + value: | + Before posting, remove private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts from every field and attachment. + - type: input + id: version_breakcheck + attributes: + label: Breakcheck version + description: Which Breakcheck version produced this result? + placeholder: 2.0.0 + validations: + required: true + - type: input + id: python_version + attributes: + label: Python version + description: Include the exact supported Python version. + placeholder: 3.12.4 + validations: + required: true + - type: dropdown + id: operating_system + attributes: + label: Operating system + options: + - Linux + - macOS + validations: + required: true + - type: dropdown + id: mode + attributes: + label: Breakcheck mode + description: Which workflow produced the defect? + options: + - Dependency comparison + - Revision diff + - Baseline freeze + - Claim attestation + - Demo or capabilities + - Other + validations: + required: true + - type: textarea + id: sanitized_context + attributes: + label: Sanitized comparison context + description: If relevant, name safe package versions, revision refs, target symbols, or claim type. Do not paste private source or repository details. + - type: textarea + id: sanitized_command + attributes: + label: Sanitized command + description: Paste the command after removing private paths, credentials, literals, and outputs. + render: shell + validations: + required: true + - type: textarea + id: reproduction_steps + attributes: + label: Reproduction steps + description: List the smallest safe steps that reproduce the issue. + validations: + required: true + - type: textarea + id: observed_behavior + attributes: + label: Observed behavior + description: What did Breakcheck report or do? + validations: + required: true + - type: textarea + id: expected_behavior + attributes: + label: Expected behavior + description: What should Breakcheck have reported or done? + validations: + required: true + - type: checkboxes + id: privacy_confirmation + attributes: + label: Privacy and security confirmation + options: + - label: I removed private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts before posting. + required: true + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/compatibility-case.yml b/.github/ISSUE_TEMPLATE/compatibility-case.yml new file mode 100644 index 0000000..ac4dbdc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/compatibility-case.yml @@ -0,0 +1,94 @@ +name: Compatibility case +description: Report a dependency upgrade compatibility case +title: "[Compatibility]: " +labels: + - compatibility +body: + - type: markdown + attributes: + value: | + Before posting, remove private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts from every field and attachment. + - type: input + id: version_breakcheck + attributes: + label: Breakcheck version + description: Which Breakcheck version produced this result? + placeholder: 2.0.0 + validations: + required: true + - type: input + id: python_version + attributes: + label: Python version + description: Include the exact supported Python version. + placeholder: 3.12.4 + validations: + required: true + - type: dropdown + id: operating_system + attributes: + label: Operating system + options: + - Linux + - macOS + validations: + required: true + - type: input + id: package_name + attributes: + label: Package name + description: Name of the dependency being compared. + validations: + required: true + - type: input + id: current_version + attributes: + label: Current package version + description: Version currently installed in the comparison environment. + validations: + required: true + - type: input + id: proposed_version + attributes: + label: Proposed package version + description: Version being evaluated for the upgrade. + validations: + required: true + - type: textarea + id: sanitized_command + attributes: + label: Sanitized command + description: Paste the command after removing private paths, credentials, literals, and outputs. + render: shell + validations: + required: true + - type: textarea + id: reproduction_steps + attributes: + label: Reproduction steps + description: List the smallest safe steps that reproduce the compatibility case. + validations: + required: true + - type: textarea + id: observed_behavior + attributes: + label: Observed behavior + description: What changed between the current and proposed versions? + validations: + required: true + - type: textarea + id: expected_behavior + attributes: + label: Expected behavior + description: What compatibility behavior did you expect? + validations: + required: true + - type: checkboxes + id: privacy_confirmation + attributes: + label: Privacy and security confirmation + options: + - label: I removed private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts before posting. + required: true + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..e5e56b0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Private security advisory + url: https://github.com/lovettsendit/breakcheck/security/advisories/new + about: Report security vulnerabilities privately. + - name: Read the README + url: https://github.com/lovettsendit/breakcheck#readme + about: Review scope, limitations, and usage before opening an issue. diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..7d8c93e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,40 @@ +name: Feature request +description: Suggest a focused improvement to Breakcheck +title: "[Feature]: " +labels: + - enhancement +body: + - type: markdown + attributes: + value: | + Before posting, remove private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts from every field and attachment. + - type: textarea + id: problem + attributes: + label: Problem to solve + description: What user problem or workflow gap should this address? + validations: + required: true + - type: textarea + id: proposed_solution + attributes: + label: Proposed solution + description: Describe the smallest useful change. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: What other approaches or workarounds have you considered? + validations: + required: true + - type: checkboxes + id: privacy_confirmation + attributes: + label: Privacy and security confirmation + options: + - label: I removed private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts before posting. + required: true + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/revision-claim-case.yml b/.github/ISSUE_TEMPLATE/revision-claim-case.yml new file mode 100644 index 0000000..8a7fb17 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/revision-claim-case.yml @@ -0,0 +1,116 @@ +name: Revision or claim verification case +description: Report a sanitized diff, freeze, or attest result that needs investigation +title: "[Verification]: " +labels: + - verification +body: + - type: markdown + attributes: + value: | + Before posting, remove private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts from every field and attachment. Report verdicts exactly: `CLAIM_UNVERIFIABLE` is not success, and `CHANGED` does not mean bad. + - type: input + id: version_breakcheck + attributes: + label: Breakcheck version + description: Which Breakcheck version produced this result? + placeholder: 2.0.0 + validations: + required: true + - type: input + id: python_version + attributes: + label: Python version + description: Include the exact supported Python version. + placeholder: 3.12.4 + validations: + required: true + - type: dropdown + id: operating_system + attributes: + label: Operating system + options: + - Linux + - macOS + validations: + required: true + - type: dropdown + id: mode + attributes: + label: Verification mode + options: + - Revision diff + - Baseline freeze + - Claim attestation + validations: + required: true + - type: input + id: base_revision + attributes: + label: Sanitized base revision + description: Provide a public commit ID or a safe placeholder that still reproduces the case. + validations: + required: true + - type: input + id: head_revision + attributes: + label: Sanitized head revision or baseline + description: Provide a public commit ID, worktree, or baseline identifier without private paths. + validations: + required: true + - type: textarea + id: target_symbols + attributes: + label: Sanitized target symbols + description: List only public or safely renamed module and symbol names. + validations: + required: true + - type: dropdown + id: fixture_source + attributes: + label: Fixture source + description: State which revision supplied the fixtures used for verification. + options: + - Base revision + - Head revision + - Explicit fixture file + - No fixtures + validations: + required: true + - type: textarea + id: sanitized_command + attributes: + label: Sanitized command + description: Paste the command after removing private paths, credentials, literals, and outputs. + render: shell + validations: + required: true + - type: textarea + id: reproduction_steps + attributes: + label: Reproduction steps + description: List the smallest safe steps that reproduce the verification case. + validations: + required: true + - type: textarea + id: observed_behavior + attributes: + label: Observed verdicts + description: Include exact sanitized verdict names such as CLAIM_VERIFIED, CLAIM_REFUTED, CLAIM_UNVERIFIABLE, or CLAIM_OUT_OF_SCOPE and the reported coverage. + validations: + required: true + - type: textarea + id: expected_behavior + attributes: + label: Expected behavior + description: Explain the expected comparison or refusal without asserting that intentional change is a defect. + validations: + required: true + - type: checkboxes + id: privacy_confirmation + attributes: + label: Privacy and security confirmation + options: + - label: I removed private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts before posting. + required: true + validations: + required: true diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..b3f39bc --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,36 @@ +## Linked issue + + + +## Smallest change + +- [ ] This pull request is the smallest change that solves the linked issue. + +## Regression test evidence + +- [ ] I added or updated a regression test where behavior changed. +- [ ] I ran the relevant tests and included the command and result below. + +Test command and result: + +## Preserved counterexample + +- [ ] Existing counterexamples and refusal behavior remain preserved. +- [ ] If this changes a counterexample, I documented why and included evidence. + +## Privacy/security + +- [ ] I removed private paths, private source, literals, outputs, credentials, and `.breakcheck/` artifacts from the pull request. +- [ ] I considered security and privacy impact. + +## Docs/changelog + +- [ ] I updated the documentation and changelog when user-visible behavior changed. +- [ ] No documentation or changelog update is needed, because: + +## Breaking/release assessment + +- [ ] This is not a breaking change. +- [ ] I assessed release impact, including versioning and migration notes where applicable. + +Breaking/release assessment: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e1d947b..793a71f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,8 @@ -name: ci +name: Breakcheck CI on: push: + branches: [main] pull_request: permissions: @@ -9,7 +10,9 @@ permissions: jobs: test: + name: test (${{ matrix.os }}, ${{ matrix.python-version }}) runs-on: ${{ matrix.os }} + timeout-minutes: 15 strategy: fail-fast: false matrix: @@ -57,3 +60,24 @@ jobs: - name: Check CLI help working-directory: ${{ runner.temp }} run: "$RUNNER_TEMP/breakcheck-wheel/bin/breakcheck --help" + + acceptance: + name: demo and CLI acceptance + needs: test + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Check out source + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Set up Python + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: "3.13" + - name: Install the public package + run: python -m pip install --no-deps . + - name: Check machine-readable capabilities + working-directory: ${{ runner.temp }} + run: breakcheck --capabilities --json + - name: Run the offline changed-behavior demo + working-directory: ${{ runner.temp }} + run: breakcheck demo --output-root "$RUNNER_TEMP/breakcheck-demo" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a7caf64 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,166 @@ +name: Publish Breakcheck + +on: + release: + types: [published] + +permissions: {} + +concurrency: + group: pypi-${{ github.event.release.tag_name }} + cancel-in-progress: false + +jobs: + validate: + name: build and validate exact tagged source + runs-on: ubuntu-latest + timeout-minutes: 15 + permissions: + contents: read + outputs: + wheel_sha256: ${{ steps.assets.outputs.wheel_sha256 }} + sdist_sha256: ${{ steps.assets.outputs.sdist_sha256 }} + steps: + - name: Check out the exact release tag + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.release.tag_name }} + persist-credentials: false + - name: Set up Python + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: "3.13" + - name: Refuse a mismatched release identity + env: + RELEASE_DRAFT: ${{ github.event.release.draft }} + RELEASE_PRERELEASE: ${{ github.event.release.prerelease }} + RELEASE_TAG: ${{ github.event.release.tag_name }} + run: | + set -euo pipefail + if [ "$RELEASE_DRAFT" = true ] || [ "$RELEASE_PRERELEASE" = true ]; then + echo "refusing draft or prerelease" + exit 1 + fi + if [ "$RELEASE_TAG" != "v2.0.0" ]; then + echo "release tag does not match project version" + exit 1 + fi + test "$(git describe --exact-match --tags HEAD)" = "$RELEASE_TAG" + python - <<'PY' + import pathlib + import tomllib + + project = tomllib.loads(pathlib.Path("pyproject.toml").read_text(encoding="utf-8"))["project"] + if project["name"] != "breakcheck" or project["version"] != "2.0.0": + raise SystemExit("project metadata does not match v2.0.0") + if project.get("dependencies") != []: + raise SystemExit("release unexpectedly has runtime dependencies") + PY + - name: Install isolated build and validation tools + run: python -m pip install --disable-pip-version-check "build>=1.2,<2" "twine>=6,<7" + - name: Build the exact tagged source + id: assets + run: | + set -euo pipefail + if [ -n "$(git status --porcelain)" ]; then + echo "checked-out release source is not clean" + exit 1 + fi + export SOURCE_DATE_EPOCH="$(git show -s --format=%ct HEAD)" + python -m build --outdir dist . + python - <<'PY' + from pathlib import Path + + expected = { + "breakcheck-2.0.0-py3-none-any.whl", + "breakcheck-2.0.0.tar.gz", + } + actual = {path.name for path in Path("dist").iterdir() if path.is_file()} + if actual != expected: + raise SystemExit(f"unexpected distribution inventory: {sorted(actual)}") + PY + echo "wheel_sha256=$(sha256sum dist/breakcheck-2.0.0-py3-none-any.whl | awk '{print $1}')" >> "$GITHUB_OUTPUT" + echo "sdist_sha256=$(sha256sum dist/breakcheck-2.0.0.tar.gz | awk '{print $1}')" >> "$GITHUB_OUTPUT" + - name: Validate metadata, inventory, privacy, and installed CLI + run: | + set -euo pipefail + python -m twine check --strict dist/* + bash scripts/scan_artifacts.sh dist/breakcheck-2.0.0-py3-none-any.whl + bash scripts/scan_artifacts.sh dist/breakcheck-2.0.0.tar.gz + python - <<'PY' + import email + import tarfile + import zipfile + + wheel = "dist/breakcheck-2.0.0-py3-none-any.whl" + sdist = "dist/breakcheck-2.0.0.tar.gz" + with zipfile.ZipFile(wheel) as archive: + metadata_name = next(name for name in archive.namelist() if name.endswith(".dist-info/METADATA")) + metadata = email.message_from_bytes(archive.read(metadata_name)) + if metadata["Name"] != "breakcheck" or metadata["Version"] != "2.0.0": + raise SystemExit("wheel identity mismatch") + with tarfile.open(sdist, "r:gz") as archive: + names = set(archive.getnames()) + required = { + "breakcheck-2.0.0/README.md", + "breakcheck-2.0.0/SECURITY.md", + "breakcheck-2.0.0/SKILL.md", + "breakcheck-2.0.0/examples/github-actions.yml", + "breakcheck-2.0.0/scripts/scan_artifacts.sh", + } + if not required <= names: + raise SystemExit("source distribution inventory incomplete") + PY + python -m venv "$RUNNER_TEMP/breakcheck-release-smoke" + "$RUNNER_TEMP/breakcheck-release-smoke/bin/python" -m pip install --no-deps dist/breakcheck-2.0.0-py3-none-any.whl + ( + cd "$RUNNER_TEMP" + "$RUNNER_TEMP/breakcheck-release-smoke/bin/breakcheck" --help + "$RUNNER_TEMP/breakcheck-release-smoke/bin/breakcheck" --capabilities --json + "$RUNNER_TEMP/breakcheck-release-smoke/bin/breakcheck" demo --output-root "$RUNNER_TEMP/release-demo" + ) + - name: Transfer only validated distributions + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: breakcheck-2.0.0-distributions + path: | + dist/breakcheck-2.0.0-py3-none-any.whl + dist/breakcheck-2.0.0.tar.gz + if-no-files-found: error + include-hidden-files: false + retention-days: 1 + + publish: + name: publish validated distributions to PyPI + needs: validate + runs-on: ubuntu-latest + timeout-minutes: 10 + environment: + name: pypi + url: https://pypi.org/p/breakcheck + permissions: + id-token: write + steps: + - name: Receive validated distributions + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + with: + name: breakcheck-2.0.0-distributions + path: dist + digest-mismatch: error + - name: Recheck transferred artifact identity + env: + EXPECTED_WHEEL_SHA256: ${{ needs.validate.outputs.wheel_sha256 }} + EXPECTED_SDIST_SHA256: ${{ needs.validate.outputs.sdist_sha256 }} + run: | + set -euo pipefail + test "$(find dist -maxdepth 1 -type f | wc -l | tr -d ' ')" = 2 + test "$(sha256sum dist/breakcheck-2.0.0-py3-none-any.whl | awk '{print $1}')" = "$EXPECTED_WHEEL_SHA256" + test "$(sha256sum dist/breakcheck-2.0.0.tar.gz | awk '{print $1}')" = "$EXPECTED_SDIST_SHA256" + - name: Publish with Trusted Publishing and PEP 740 attestations + uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 + with: + packages-dir: dist/ + verify-metadata: true + skip-existing: false + print-hash: true + attestations: true diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..6a2475a --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,5 @@ +# Automated Change Verification + +Automated coding tools working in this repository should follow [SKILL.md](SKILL.md) whenever a dependency version changes or a code change is described as behavior-preserving. + +The required workflow keeps fixture proposals separate from deterministic replay. Never weaken coverage or separation policy, edit generated evidence, or describe an unexercised result as safe. diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cdcb40..f993215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to Breakcheck are documented here. +## 2.0.0 - 2026-08-26 + +- Added PyPI-ready project metadata and trusted release automation. +- Added a one-command changed-behavior demonstration that verifies its report and evidence before success. +- Added structured GitHub issue and pull-request intake. +- Limited push CI to main while retaining pull-request coverage. +- Added bounded static folding, module-constant resolution, and safe nested calls. +- Added operator-reviewed fixtures, projections, coverage diagnostics, and fixture suggestions. +- Added behavioral baselines, cross-revision comparison, and behavior-preservation claims. +- Kept unchanged sibling functions out of the changed-symbol set when another definition shifts their source locations. +- Added closed schema-2 reports, replay witnesses, provenance, and machine-readable capabilities. + ## 1.0.1 - 2026-08-26 - Preserve exact static submodule imports and aliases when replaying literal calls. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3577767..9cb42b6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,8 +21,41 @@ Run the test suite on Python 3.10 through 3.13 when changing runtime behavior. L - Preserve deterministic ordering and canonical JSON behavior. - Never turn malformed, missing, dynamic, or unstable evidence into an `IDENTICAL` verdict. - Keep the local-wheelhouse and no-network defaults unchanged. +- Preserve fixture authorship, source revision, argument provenance, and strict separation in every new replay path. +- Keep schema changes closed, versioned, canonical, and backward-readable where documented. +- Preserve detached-worktree cleanup and never mutate a user's checkout, index, or stash. - Do not include private source, generated `.breakcheck/` evidence, credentials, or machine-specific paths. +## Product effort budget + +Breakcheck is designed to add almost no manual work to an upgrade or review: + +- a fresh repository reaches its first report with one command in under five minutes; +- CI integration is one workflow file with fewer than 20 non-comment lines; +- a rerun after a code change is one command with no new input; +- fixture suggestions require no manual authoring before a human reviews the diff. + +A feature that cannot meet this default-path budget must remain explicitly optional. +Contributions must preserve noninteractive execution and zero runtime dependencies. + +Fail-closed behavior is mechanical: every refusal code needs a producing test, broad +adapter exceptions cannot silently continue, fixed identical and changed cases must +retain their verdicts, and every exercised observation must carry declared provenance. + +## Behavioral invariants + +Changes must preserve all of these: + +- `IDENTICAL` means both admitted observations were replayed and compared equal. +- `NOT_EXERCISED` and `CLAIM_UNVERIFIABLE` are never summarized as safe. +- Every new execution path runs twice and refuses nondeterministic observations. +- Scanning never imports or evaluates repository or dependency code. +- Fixture and claim inputs use closed, bounded formats and fail on stale or unmatched bindings. +- Machine-readable artifacts remain noninteractive, deterministically ordered, and free of hidden fallback behavior. +- Runtime package dependencies remain empty unless a reviewed design demonstrates that the benefit outweighs the embeddability and supply-chain cost. + +Add or update the fixed identical, changed, refusal, provenance, artifact-verification, and installed-CLI tests when changing these behaviors. + ## Pull requests Describe the user-visible failure, the smallest correcting change, and the tests that prove both the failure and the preserved behavior. Keep unrelated refactoring out of the same pull request. diff --git a/LICENSE b/LICENSE index b577799..1f382a9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2026 breakcheck contributors +Copyright (c) 2026 ViDale Lovett and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/MANIFEST.in b/MANIFEST.in index eb057fa..f78ee70 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,10 +3,17 @@ include CONTRIBUTING.md include LICENSE include README.md include SECURITY.md +include SKILL.md +include AGENTS.md recursive-include release_evidence *.json recursive-include src/breakcheck *.py recursive-include tests *.py +graft docs +graft examples +graft scripts global-exclude *.py[cod] global-exclude .DS_Store global-exclude ._* prune .breakcheck +prune build +prune dist diff --git a/README.md b/README.md index 967acff..489b2ee 100644 --- a/README.md +++ b/README.md @@ -1,151 +1,351 @@ # Breakcheck -Breakcheck is a deterministic behavioral compatibility checker for Python package upgrades. It finds statically discoverable calls your repository makes to a dependency, replays literal calls against exact current and proposed wheels in isolated environments, and reports whether the observed behavior changed. +Dependabot tells you a new version exists. Breakcheck tells you whether the calls your code actually makes behave differently. -Breakcheck does not update dependencies and does not guess whether a change is safe. It produces bounded evidence for a maintainer or CI system to judge. +[![CI](https://github.com/lovettsendit/breakcheck/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/lovettsendit/breakcheck/actions/workflows/ci.yml) +[![PyPI](https://img.shields.io/pypi/v/breakcheck)](https://pypi.org/project/breakcheck/) +[![Python](https://img.shields.io/pypi/pyversions/breakcheck)](https://pypi.org/project/breakcheck/) +[![License](https://img.shields.io/github/license/lovettsendit/breakcheck)](LICENSE) -## Quick start +Breakcheck is a deterministic behavioral comparison tool for Python. It answers two bounded questions: -Breakcheck evaluates one dependency upgrade in an existing Python repository. Start from the repository root, with the currently used dependency installed: +- Did a dependency upgrade change the behavior of supported calls already present in this repository? +- Did a code revision change the behavior of fixture-bound functions that were expected to remain stable? + +Breakcheck compares observations. It does not guess intent, declare code correct, replace a test suite, or decide whether a change should ship. Calls it cannot lawfully exercise are reported as `NOT_EXERCISED`, never counted as safe. + +![Breakcheck report preview](docs/assets/breakcheck-social-preview.png) + +## Install ```console -python -m pip install /path/to/breakcheck-1.0.1-py3-none-any.whl +python -m pip install breakcheck +``` + +Breakcheck supports Python 3.10 through 3.13 on Linux and macOS and has no runtime package dependencies. + +## See a real result in one command + +```console +breakcheck demo --output-root .breakcheck/demo +``` + +The offline demo builds two small local package wheels, runs the installed CLI, detects a real behavioral difference, writes a report and evidence bundle, and verifies both. It does not contact a package index. + +For the longer `packaging` 21.3 to 22.0 demonstration used by the release tests, run: + +```console +sh examples/run_demo.sh +``` + +## Where Breakcheck fits + +| Neighbor | Question it answers | Breakcheck's question | +| --- | --- | --- | +| Unit and integration tests | Does known expected behavior still pass? | Did these two observations differ? | +| Snapshot testing | Does output match an approved snapshot? | Did this specific dependency or revision change behavior? | +| Static analysis | Does this code match a rule or risk pattern? | Does supported code behave differently when replayed? | +| Traffic replay | What did recorded production requests do? | What can be compared without production traffic? | +| AI-generated tests | What should this code do, as inferred by a model? | What changed, without guessing intent? | + +Breakcheck complements these tools. Its useful property is independence: a coding tool may propose a change or fixture, while deterministic replay and comparison decide the observed result. + +## Dependency upgrades + +Breakcheck holds your repository constant and varies one dependency: + +```text +same repository calls x current wheel vs proposed wheel -> behavioral difference +``` + +### Quick start + +Start at the root of the repository you want to analyze. Install the current dependency version in the interpreter running Breakcheck, then prepare an explicit local wheelhouse: + +```console +python -m pip install 'attrs==23.2.0' mkdir -p wheelhouse .breakcheck/results python -m pip download --only-binary=:all: --dest wheelhouse 'attrs==23.2.0' python -m pip download --only-binary=:all: --dest wheelhouse 'attrs==24.2.0' +``` + +Download exact versions in separate commands. Asking `pip download` to resolve two versions of the same distribution in one command can produce a dependency-resolution error. + +Run the comparison: + +```console breakcheck attrs@24.2.0 \ --wheelhouse wheelhouse \ - --runtime-root .breakcheck/runtime-001 \ --output .breakcheck/results/report.json \ --evidence .breakcheck/results/evidence.json \ + --coverage-report .breakcheck/results/coverage.json \ --json \ --ci ``` -Replace `attrs` and the versions with the dependency you are evaluating. Breakcheck expects the current version to be installed in the Python interpreter running the command and both exact wheels, plus their installation dependencies, to be present in `wheelhouse`. +Breakcheck creates fresh replay environments, installs only from the supplied wheelhouse, runs admitted calls twice in each environment, and compares normalized observations. Environments created under the default temporary runtime are removed when the command finishes, including after a failure. Supplying `--runtime-root` preserves that explicit runtime for operator-managed retention and cleanup. -## Why use it? +Treat every wheel as executable input. Obtain wheels from a source you trust and preserve expected hashes in your own supply-chain records. -Version-update tools can tell you that a newer dependency exists. Breakcheck answers a different question: **does the newer version change behavior that this repository actually exercises?** +### Supported call surface -- Uses call sites found in your repository instead of a generic API inventory. -- Runs entirely from an explicit local wheelhouse with no network fallback. -- Produces deterministically ordered JSON, human output, and replay witnesses. -- Distinguishes changed behavior, identical behavior, and calls it could not exercise. -- Refuses malformed, dynamic, missing, or unstable evidence instead of treating it as success. +Breakcheck is strongest on pure, value-in/value-out library calls: parsing, serialization, validation, encoding, schema coercion, and deterministic numeric or string transformations. -## Where Breakcheck fits +The default static path supports: -Breakcheck is a pre-merge check for a specific Python dependency update. It complements, rather than replaces, your existing tests: +- direct imports and statically attributable package calls; +- Python literal arguments; +- bounded constant expressions and f-strings; +- safe, single-assignment module constants; +- nested calls to the target package or a small fixed allowlist of pure standard-library modules; +- normalizable values, exceptions, mappings with string keys, sequences, sets, finite numbers, strings, and bytes. -1. A maintainer, dependency bot, or coding tool proposes a version change. -2. Breakcheck finds supported calls to that dependency in the repository. -3. It runs those calls against exact old and new wheels in separate environments. -4. It records identical, changed, and not-exercised results with replay evidence. -5. A maintainer reviews the changes together with the project's ordinary tests, security checks, and release process. +It does not pretend to exercise network clients, arbitrary filesystem work, stateful object graphs, dynamic dispatch, unbounded computation, or rich return objects without an explicit projection. Those cases remain visible in the coverage report. -This is useful when reviewing automated dependency updates, preparing a framework migration, or investigating whether a version bump changes literal API calls already present in a codebase. +### Coverage diagnostics -## Using Breakcheck with AI-assisted development +Every discovered candidate reaches exactly one terminal bucket: + +- `EXERCISED` +- `G1_NOT_DISCOVERABLE` +- `G2_NONLITERAL` +- `G3_UNNORMALIZABLE` +- `G4_IMPURE` -AI coding tools can propose dependency updates and help interpret a Breakcheck report, but Breakcheck remains the deterministic measurement step: +`--coverage-report` writes the machine-readable candidate inventory, reason codes, reason details, and argument provenance. A run that exercises nothing exits nonzero unless a human explicitly passes `--allow-empty`; that choice is recorded in the artifact. -1. Let the coding tool propose the dependency change without merging it. -2. Run Breakcheck locally or in CI against trusted, exact wheels. -3. Inspect and sanitize the report before sharing it with an external AI service; reports may contain source locations, literal arguments, outputs, and local paths. -4. Ask the coding tool to address specific `CHANGED` or `NOT_EXERCISED` findings. -5. Rerun Breakcheck and the project's normal test suite. -6. Require human review before accepting the upgrade. +### Generate fixture suggestions -Breakcheck does not decide whether an upgrade should ship, and AI-generated explanations do not override its recorded observations. +When source arguments cannot be resolved statically, generate a reviewable skeleton without creating replay environments: -## Supported scope +```console +breakcheck attrs@24.2.0 \ + --suggest-fixtures breakcheck.fixtures.toml +``` -- Python 3.10 through 3.13. -- Linux and macOS. -- Python package calls discoverable through static imports. -- Calls whose positional and keyword arguments are Python literals. -- Trusted package wheels supplied by the operator. +The generated file identifies each unresolved call by repository-relative file, line, column, API, and nearby source. A human or coding tool fills in concrete expressions and changes `fixture_authored_by` from `unknown` to `human` or `agent`. + +Example: + +```toml +schema_version = 1 + +[[binding]] +fixture_authored_by = "agent" +file = "src/app/serialize.py" +line = 42 +column = 8 +api = "attrs.asdict" +args = ["Point(1, 2)"] +kwargs = {} +setup = """ +import attrs +@attrs.define +class Point: + x: int + y: int +""" +``` -Dynamic dispatch, runtime-computed arguments, setup-dependent object state, and calls hidden behind unsupported indirection are reported as not exercised. Breakcheck is not a security sandbox and must not execute untrusted package code on a sensitive host. +Review the fixture diff, then run: -## What Breakcheck does not prove +```console +breakcheck attrs@24.2.0 \ + --wheelhouse wheelhouse \ + --fixtures breakcheck.fixtures.toml \ + --fixture-policy allow \ + --output .breakcheck/results/report.json \ + --evidence .breakcheck/results/evidence.json \ + --coverage-report .breakcheck/results/coverage.json \ + --ci +``` + +Fixture expressions and setup code execute inside the same best-effort isolation as dependency calls. They are trusted executable input, not data-only configuration. + +### Project rich return values -An exit status of `0` means the supported calls Breakcheck exercised met the configured coverage threshold and produced no changed observations. It does not establish that every dependency API is compatible, that unexercised application paths are safe, or that a package is secure. Keep unit, integration, security, and platform tests in the release process. +A fixture may reduce a rich result to a stable, normalizable value: -## Install for development +```toml +[[binding]] +fixture_authored_by = "human" +file = "src/app/load.py" +line = 12 +column = 8 +api = "pandas.read_csv" +args = ["io.StringIO('a,b\\n1,2\\n')"] +kwargs = {} +setup = "import io" +projection = "(list(outcome.columns), outcome.shape, outcome.to_dict('list'))" +``` + +Projected results use explicit verdicts: `IDENTICAL_UNDER_PROJECTION` and `CHANGED_UNDER_PROJECTION`. They never imply that the complete rich object was identical. + +## Code revisions + +Breakcheck can also hold the environment constant and vary repository code: + +```text +same fixture and environment x base revision vs head revision -> behavioral difference +``` + +This mode is for claims such as "this refactor preserves behavior." It cannot establish absolute correctness, judge intentional changes as bad, or verify new functions that have no baseline. + +Revision commands create detached Git worktrees under an absent runtime path. They never check out over the user's working tree, touch the index, or stash changes. Worktrees are removed on success and on handled failure. -From a source checkout: +### Bind functions to inputs + +Revision fixtures use the same file format, but point at function definitions: + +```toml +schema_version = 1 + +[[binding]] +fixture_authored_by = "human" +file = "src/app/pricing.py" +line = 10 +column = 0 +api = "app.pricing.compute_total" +args = ["100", "0.15"] +kwargs = {} +``` + +For strict separation, commit fixtures against the base revision before making the code change. Breakcheck records fixture authorship, fixture hash, source revision, and whether the fixture predates the change. + +### Capture a baseline ```console -python -m venv .venv -source .venv/bin/activate -python -m pip install --upgrade pip -python -m pip install -e '.[test]' -breakcheck --help -python -m pytest -q +breakcheck freeze \ + --revision HEAD \ + --fixtures breakcheck.fixtures.toml \ + --output .breakcheck/baseline.json ``` -To build and install the distributable wheel: +`freeze` records repeated normalized observations, source-tree identity, fixture identity, Python version, and platform. Dirty working trees are refused because silently omitting uncommitted changes would produce a misleading baseline. + +### Compare two revisions + +Compare explicit revisions: ```console -python -m pip install 'build>=1.2,<2' -python -m build -python -m pip install dist/breakcheck-1.0.1-py3-none-any.whl -breakcheck --help +breakcheck diff \ + --base main \ + --head feature/refactor \ + --fixtures breakcheck.fixtures.toml \ + --strict-separation \ + --output .breakcheck/revision-report.json \ + --evidence .breakcheck/revision-evidence.json ``` -## Prepare an offline wheelhouse +Or compare against a verified baseline artifact: -Breakcheck requires: +```console +breakcheck diff \ + --baseline .breakcheck/baseline.json \ + --head HEAD \ + --fixtures breakcheck.fixtures.toml \ + --strict-separation \ + --output .breakcheck/revision-report.json \ + --evidence .breakcheck/revision-evidence.json +``` -1. The current distribution to be installed in the Python interpreter running `breakcheck`. -2. An exact wheel for the installed version. -3. An exact wheel for the proposed version. -4. Wheels for any dependencies that pip must install into either replay environment. +By default, Breakcheck selects top-level and class-level functions whose normalized signatures, bodies, or relevant non-callable module or class context changed. It also surfaces additions, removals, ambiguous definitions, and signature drift so structural changes cannot disappear from the comparison. Use a repeatable `--target module.path:symbol` to select targets explicitly. Missing baselines, import asymmetry, and unexercised targets remain distinct fail-closed results. -For example, if the repository currently uses `attrs==23.2.0` and you want to evaluate `attrs==24.2.0`: +To disclose fixture retuning, pass an earlier verified revision report: ```console -python -m pip install 'attrs==23.2.0' -mkdir -p wheelhouse -python -m pip download --only-binary=:all: --dest wheelhouse 'attrs==23.2.0' -python -m pip download --only-binary=:all: --dest wheelhouse 'attrs==24.2.0' +breakcheck diff \ + --base main \ + --head HEAD \ + --fixtures breakcheck.fixtures.toml \ + --previous-report .breakcheck/previous-revision-report.json \ + --output .breakcheck/revision-report.json ``` -Treat every wheel in the wheelhouse as executable input. Obtain wheels from a source you trust and preserve their hashes in your own supply-chain records. +When a changed fixture turns a prior `CHANGED` result into `IDENTICAL` for the same base and target, the new report emits `FIXTURE_REVISED_AFTER_FAILURE`. The event is visible and integrity-bound but does not automatically block the run because the original fixture may have been wrong. Breakcheck never infers this history from a mutable local cache; the prior report must be supplied explicitly. + +### Adjudicate a preservation claim + +A claim file lists exactly what the change asserts it preserved: -## Run a comparison +```toml +schema_version = 1 +claim = "behavior_preserved" +base_revision = "0123456789abcdef0123456789abcdef01234567" -Run Breakcheck from the root of the repository to analyze: +[[target]] +symbol = "app.pricing:compute_total" +``` + +Run: ```console -mkdir -p .breakcheck/results -breakcheck attrs@24.2.0 \ - --wheelhouse wheelhouse \ - --runtime-root .breakcheck/runtime-001 \ - --output .breakcheck/results/report.json \ - --evidence .breakcheck/results/evidence.json \ - --json \ - --ci +breakcheck attest \ + --head HEAD \ + --claim breakcheck.claim.toml \ + --fixtures breakcheck.fixtures.toml \ + --output .breakcheck/claim-report.json \ + --evidence .breakcheck/claim-evidence.json ``` -The target grammar is `@`. Use a fresh, absent `--runtime-root` for every run. If `--runtime-root` is omitted, Breakcheck creates a temporary runtime directory and records its path in the evidence. +The strict defaults require fixtures to predate the head revision and refuse to treat an unverifiable claim as success. + +Claim dispositions are: + +- `CLAIM_VERIFIED`: exercised and identical; +- `CLAIM_REFUTED`: exercised and changed; +- `CLAIM_UNVERIFIABLE`: not lawfully exercised; +- `CLAIM_OUT_OF_SCOPE`: the change touched symbols omitted from the claim. + +## Using Breakcheck with AI-assisted development + +Breakcheck provides a CLI and deterministic JSON contract; it does not require a model-specific server or protocol. + +A productive division of labor is: + +1. A coding agent proposes a dependency or code change. +2. Breakcheck identifies admitted and unresolved targets. +3. The agent may propose fixture values for unresolved targets. +4. A human reviews the fixture diff. +5. Breakcheck performs repeated replay, normalization, comparison, provenance recording, and refusal. +6. The agent reports `CHANGED`, `NOT_EXERCISED`, `CLAIM_REFUTED`, `CLAIM_UNVERIFIABLE`, and `CLAIM_OUT_OF_SCOPE` results verbatim for human review. + +The agent must not edit reports, evidence, baselines, verdict logic, or a fixture after seeing an unfavorable result. It must not lower coverage or separation policy to obtain a passing run. Repository-local instructions are provided in [SKILL.md](SKILL.md). -### CI exit statuses +Before sending any generated artifact to an external AI service, inspect and sanitize the report and evidence because they may contain repository code, arguments, outputs, and source locations. + +This separation matters when software, tests, and review may all involve probabilistic tools: fixture proposals can be reviewed, while the replay and comparison outcome is deterministic and independently verifiable. + +## Result semantics and exit codes + +### Dependency and revision comparison | Exit | Meaning | | ---: | --- | -| `0` | Coverage is at least 80 percent and no exercised behavior changed. | -| `2` | The request or its evidence was refused. | +| `0` | The configured coverage requirement passed and no exercised behavior changed. | +| `2` | The request, input, or evidence was refused. | | `3` | At least one exercised behavior changed. | -| `4` | Exercised coverage is below 80 percent. | +| `4` | Exercised coverage was below the configured minimum. | -An exit of `0` is evidence about the supported, exercised calls only. It is not a claim that an entire dependency is universally compatible. +Revision comparison always uses these semantic exit codes. Dependency comparison uses changed and coverage exit codes when `--ci` is present; without `--ci`, findings remain visible in the output but a changed result is informational. A dependency run that exercises nothing still exits nonzero unless `--allow-empty` was explicitly recorded. -## Verify persisted evidence +### Claim attestation + +| Exit | Meaning | +| ---: | --- | +| `0` | All claims admitted by the selected policy passed. Under the default strict policy, every claim was verified. | +| `1` | At least one claim was refuted. | +| `2` | At least one claim was unverifiable under strict policy. | +| `3` | Out-of-scope changed symbols were detected. | + +An exit of `0` is evidence about admitted, exercised targets only. It is not a universal compatibility, correctness, or security claim. +Using `--no-strict` makes claim attestation advisory: unverifiable claims remain explicit in the report but do not by themselves make the command fail. Automated agents must not weaken the strict defaults. -Verification rechecks report integrity, finding and witness identities, observation hashes, and the recorded replay environments: +## What Breakcheck does not prove + +Breakcheck reports observed differences across the inputs it lawfully exercises. It does not prove that either side is correct, that unexercised paths are safe, that a dependency is secure, or that every platform behaves identically. A `CHANGED` result may describe an intentional improvement. Breakcheck does not decide whether an upgrade should ship; maintainers make that decision alongside ordinary unit, integration, security, and platform testing. + +## Verify persisted evidence ```console breakcheck \ @@ -153,38 +353,66 @@ breakcheck \ --evidence .breakcheck/results/evidence.json ``` -Successful verification prints `VERIFIED`. Verification requires both recorded environment roots to remain present and byte-identical. Once verification and retention obligations are complete, delete `.breakcheck/runtime-001` yourself to recover disk space. +Successful verification prints `VERIFIED`. Schema-2 verification checks the artifact envelope, payload hash, finding and witness identities, observation hashes, repeat hashes, replay-source hashes, projection hashes, provenance, ordering, counts, and report/evidence binding. Schema-1 reports from Breakcheck 1.x remain readable. -The hashes provide integrity and self-consistency checks. They are not signatures and do not prove who created an evidence bundle. Anyone who can replace an entire report and evidence bundle can compute new hashes. +Hashes provide integrity and self-consistency, not identity or secrecy. They do not make your computer a server, open a network port, or reveal the original content from the digest alone. -## Reading results +## Machine-readable integration -Each finding has one of three verdicts: +Discover supported platforms, Python versions, schemas, and features without prompts: -- `IDENTICAL`: the normalized observations matched. -- `CHANGED`: the normalized observations differed and should be reviewed. -- `NOT_EXERCISED`: Breakcheck could not lawfully replay the call; the reason code explains why. +```console +breakcheck --capabilities --json +``` -Reports include deterministic finding IDs, call-site locations, normalized old and new observations, suggested maintainer actions, and replay witnesses for exercised findings. +All commands are noninteractive. Reports use a versioned schema, canonical JSON, stable identities, explicit provenance, and documented exit codes so CI and coding tools do not need to parse human prose. + +The repository includes a compact workflow example at [examples/github-actions.yml](examples/github-actions.yml). Copy it into your project as `.github/workflows/breakcheck.yml`, then adapt the package versions and command to your dependency update process. ## Security and privacy -Breakcheck launches package code with a scrubbed environment, no shell, bounded resources, a fresh working directory, and a Python socket audit guard. These are containment measures, not a security boundary. Native extensions, subprocesses, and code with the caller's operating-system permissions can still affect the host. +Breakcheck executes trusted package and repository code with a scrubbed environment, no shell, bounded resources, a fresh working directory, and a Python socket audit guard. These are containment measures, not a security boundary. Native extensions, subprocesses, import-time code, or code with the caller's operating-system permissions can still affect the host. -Generated reports and evidence can contain: +Reports and evidence may contain: -- repository-relative source locations and literal call snippets; -- literal arguments; +- repository-relative source locations and replay source; +- literal or fixture arguments and setup code; - normalized return values and exception messages; -- captured standard output and standard error; -- absolute replay-environment paths. +- captured output; +- source, fixture, environment, and observation hashes. + +Inspect artifacts before sharing them with another person or an external service. Do not commit `.breakcheck/` output from a private repository. See [SECURITY.md](SECURITY.md) for the complete trust model. -Inspect and sanitize generated artifacts before sharing them. Do not commit `.breakcheck/` output from private repositories. See [SECURITY.md](SECURITY.md) for the complete trust model and vulnerability-reporting process. +## Release evidence -## Reproducibility evidence +The repository includes bounded release measurements under `release_evidence/`: -The repository contains release evidence for a 20-package battery and a 16,002-call-site scale exercise under `release_evidence/`. Those records are release measurements, not substitutes for running Breakcheck against your own repository and wheels. +- a 20-package dependency battery; +- a 16,002-call-site scale exercise; +- a three-repository fixture-loop viability run. -## Contributing +The fixture run records 49 generated bindings across three unrelated public repositories. In that bounded pre-release evaluation, one automated fixture-authoring pass produced 49 valid, executable, deterministic bindings and increased aggregate exercised calls from 1 to 50 without manual fixture edits. The included record preserves aggregate counts and fixture digests, but not enough source coordinates to serve as an independently reproducible benchmark. It is a release measurement, not a claim that the fixtures exhaust each repository's behavior. + +## Development + +```console +git clone https://github.com/lovettsendit/breakcheck.git +cd breakcheck +python -m venv .venv +source .venv/bin/activate +python -m pip install --upgrade pip +python -m pip install -e '.[test]' +python -m pytest -q +breakcheck --help +``` + +To build release artifacts: + +```console +python -m pip install 'build>=1.2,<2' +python -m build +python -m pip install dist/breakcheck-2.0.0-py3-none-any.whl +breakcheck --capabilities --json +``` -See [CONTRIBUTING.md](CONTRIBUTING.md). Breakcheck is licensed under the [MIT License](LICENSE). +See [CONTRIBUTING.md](CONTRIBUTING.md) before proposing changes. Breakcheck is licensed under the [MIT License](LICENSE). diff --git a/SECURITY.md b/SECURITY.md index e307a25..7b0b840 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,7 +2,7 @@ ## Supported versions -Security fixes are provided for the latest `1.x` release. +Security fixes are provided for the latest `2.x` release. ## Trust model @@ -12,6 +12,16 @@ Replay processes receive a scrubbed environment, a fresh working directory, reso Do not use Breakcheck to execute an untrusted wheel on a sensitive machine. Use a disposable virtual machine or comparably isolated host when package provenance is uncertain. +## Repository code, fixtures, and revisions + +Dependency wheels, imported repository modules, fixture expressions, fixture setup, and fixture projections are executable input. Review them before running Breakcheck. + +Revision comparison materializes committed source into detached Git worktrees. It does not mutate the active checkout, index, or stash. Worktree confinement and cleanup reduce accidental interference; they do not make imported application code safe. Import-time code can read files, inspect permitted environment state, start subprocesses, or exercise native extensions with the invoking user's permissions. + +Fixture files are read only from repository-relative paths. Expressions are parsed before replay, bounded in size, and executed only inside the replay process. A projection limits what is compared; it does not prevent the underlying call from executing. + +Run Breakcheck only on repositories, revisions, wheels, fixtures, and claim files you trust. Use a disposable host for code whose provenance is uncertain. + ## Wheelhouse integrity - Breakcheck never falls back to a network package index. @@ -21,9 +31,11 @@ Do not use Breakcheck to execute an untrusted wheel on a sensitive machine. Use ## Reports and evidence -Generated artifacts may contain source snippets, literal arguments, returned values, exception messages, stdout, stderr, usernames embedded in paths, and absolute replay-environment paths. Treat reports and witnesses with the same confidentiality as the source repository being analyzed. +Generated artifacts may contain repository-relative paths, replay source, literal or fixture arguments, setup and projection expressions, returned values, exception messages, captured output, revision identities, and hashes derived from source or environments. Treat reports, baselines, claims, coverage records, and witnesses with the same confidentiality as the source repository being analyzed. + +Breakcheck hashes reports, witnesses, finding identities, observations, replay source, fixtures, revisions, and environment artifacts to detect accidental or partial alteration. These hashes are integrity checks, not authenticated signatures, encryption, or remote connectivity. Creating or publishing a hash does not make a computer a server and does not expose the original content from the digest alone. A party able to replace the complete bundle can generate a new internally consistent bundle. -Breakcheck hashes reports, witnesses, finding identities, observations, and replay-environment artifacts to detect accidental or partial alteration. These hashes are integrity checks, not authenticated signatures. A party able to replace the complete bundle can generate a new internally consistent bundle. +Inspect generated artifacts before sending them to an external service. Do not commit `.breakcheck/` output from a private repository. ## Reporting a vulnerability diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..c58823c --- /dev/null +++ b/SKILL.md @@ -0,0 +1,81 @@ +--- +name: verifying-python-changes-with-breakcheck +description: Use when a Python dependency version changes or when a code change claims to preserve behavior. +--- + +# Verifying Python Changes with Breakcheck + +## Purpose + +Use Breakcheck as the deterministic measurement step after proposing a dependency upgrade or a behavior-preserving code change. A coding agent may propose inputs and interpret results; Breakcheck owns replay, comparison, refusal, and evidence. + +## Dependency upgrades + +Run from the repository root after preparing exact trusted wheels in a local wheelhouse: + +```console +breakcheck PACKAGE@NEW_VERSION \ + --wheelhouse wheelhouse \ + --output .breakcheck/report.json \ + --evidence .breakcheck/evidence.json \ + --coverage-report .breakcheck/coverage.json \ + --json --ci +``` + +If coverage is limited by unresolved arguments, generate proposals with: + +```console +breakcheck PACKAGE@NEW_VERSION --suggest-fixtures breakcheck.fixtures.toml +``` + +Fill only fixtures that can be justified from repository context, mark `fixture_authored_by = "agent"`, and present the fixture diff for human review before replay. + +## Behavior-preserving code changes + +Fixtures must be authored, reviewed, and committed against the base revision before the target code changes. Use this sequence: + +1. Run `breakcheck freeze` for the affected symbols and retain the verified baseline. +2. Make the behavior-preserving code change without altering its fixtures or baseline. +3. Create a claim file listing every symbol the change is intended to preserve. +4. Run `breakcheck attest` against the changed revision. +5. Report every disposition verbatim to the human, including all unverifiable and out-of-scope counts. + +An explicit comparison between committed revisions is also available: + +```console +breakcheck diff \ + --base BASE_REVISION --head HEAD_REVISION \ + --fixtures breakcheck.fixtures.toml \ + --strict-separation \ + --output .breakcheck/revision-report.json \ + --evidence .breakcheck/revision-evidence.json +``` + +For an explicit preservation claim, create a reviewed `breakcheck.claim.toml` and run: + +```console +breakcheck attest \ + --head HEAD_REVISION \ + --claim breakcheck.claim.toml \ + --fixtures breakcheck.fixtures.toml \ + --output .breakcheck/claim-report.json \ + --evidence .breakcheck/claim-evidence.json +``` + +## Result contract + +- `IDENTICAL` or `CLAIM_VERIFIED`: exercised evidence matched within the stated scope. +- `CHANGED` or `CLAIM_REFUTED`: surface the finding to the human; do not silently resolve it. +- `NOT_EXERCISED` or `CLAIM_UNVERIFIABLE`: report the count and reason explicitly; never describe it as safe. +- `CLAIM_OUT_OF_SCOPE`: report the omitted changed symbols. + +## Required separation + +- Never edit `report.json`, `evidence.json`, or `baseline.json`. +- Never author or modify a fixture for a target after changing that target's code; fixtures used to verify preservation must predate the change. +- Never modify a fixture after seeing `CHANGED` for that binding in the same session. +- Never pass `--allow-empty`, lower `--min-coverage`, disable strict policy, or weaken fixture separation to obtain a passing result. +- Never modify verdict or verification logic as part of the change being verified. +- Inspect and sanitize artifacts before sending them to an external service; they may contain source locations, replay source, arguments, setup, projections, and observed values. + +Report the exact Breakcheck command, exit code, verdict counts, and artifact paths alongside the ordinary project test results. diff --git a/docs/assets/breakcheck-social-preview.png b/docs/assets/breakcheck-social-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..783390446e1995278c01d170568ca8aa303a8ede GIT binary patch literal 798598 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