agentrust-trace-tests 0.4.0__tar.gz → 0.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/workflows/codeql.yml +3 -3
  2. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/workflows/contributor-check.yml +4 -1
  3. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/workflows/release.yml +1 -1
  4. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/workflows/scorecard.yml +2 -2
  5. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/CHANGELOG.md +8 -0
  6. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/PKG-INFO +2 -2
  7. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/README.md +1 -1
  8. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/pyproject.toml +1 -1
  9. agentrust_trace_tests-0.4.1/src/trace_tests/__init__.py +20 -0
  10. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_cli.py +26 -0
  11. agentrust_trace_tests-0.4.0/src/trace_tests/__init__.py +0 -3
  12. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/CODEOWNERS +0 -0
  13. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/dependabot.yml +0 -0
  14. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/workflows/ci.yml +0 -0
  15. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/workflows/docs.yml +0 -0
  16. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.github/workflows/require-maintainer-approval.yml +0 -0
  17. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/.gitignore +0 -0
  18. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/CNAME +0 -0
  19. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/CODE_OF_CONDUCT.md +0 -0
  20. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/CONTRIBUTING.md +0 -0
  21. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/LICENSE +0 -0
  22. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/PRIVACY.md +0 -0
  23. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/SECURITY.md +0 -0
  24. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/error-codes.md +0 -0
  25. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/levels.md +0 -0
  26. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules/tr-anc.md +0 -0
  27. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules/tr-env.md +0 -0
  28. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules/tr-pol.md +0 -0
  29. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules/tr-rte.md +0 -0
  30. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules/tr-sca.md +0 -0
  31. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules/tr-sig.md +0 -0
  32. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules/tr-txn.md +0 -0
  33. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/modules.md +0 -0
  34. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/quickstart.md +0 -0
  35. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/stylesheets/extra.css +0 -0
  36. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/tutorials/ci-integration.md +0 -0
  37. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/docs/tutorials/writing-conformance-tests.md +0 -0
  38. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/mkdocs.yml +0 -0
  39. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/requirements-docs.txt +0 -0
  40. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/schemas/trace-claim.json +0 -0
  41. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/cli.py +0 -0
  42. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/loader.py +0 -0
  43. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/__init__.py +0 -0
  44. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/tr_anc.py +0 -0
  45. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/tr_env.py +0 -0
  46. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/tr_pol.py +0 -0
  47. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/tr_rte.py +0 -0
  48. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/tr_sca.py +0 -0
  49. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/tr_sig.py +0 -0
  50. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/modules/tr_txn.py +0 -0
  51. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/result.py +0 -0
  52. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/src/trace_tests/runner.py +0 -0
  53. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/__init__.py +0 -0
  54. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/conftest.py +0 -0
  55. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/test_level0.py +0 -0
  56. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/test_level0_negative.py +0 -0
  57. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/test_level1.py +0 -0
  58. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/test_level2.py +0 -0
  59. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/test_schema.py +0 -0
  60. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/test_software_only_platform.py +0 -0
  61. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/__init__.py +0 -0
  62. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_loader.py +0 -0
  63. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_runner.py +0 -0
  64. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_tr_anc.py +0 -0
  65. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_tr_env.py +0 -0
  66. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_tr_pol.py +0 -0
  67. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_tr_rte.py +0 -0
  68. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/unit/test_tr_sig.py +0 -0
  69. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/vectors/invalid_missing_runtime.json +0 -0
  70. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/vectors/invalid_wrong_profile.json +0 -0
  71. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/vectors/valid_cmcp_runtime.json +0 -0
  72. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/vectors/valid_level0.json +0 -0
  73. {agentrust_trace_tests-0.4.0 → agentrust_trace_tests-0.4.1}/tests/vectors/valid_level0_with_transcript.json +0 -0
@@ -28,16 +28,16 @@ jobs:
28
28
  uses: actions/checkout@v7
29
29
 
30
30
  - name: Initialize CodeQL
31
- uses: github/codeql-action/init@v4
31
+ uses: github/codeql-action/init@v4.37.4
32
32
  with:
33
33
  languages: python
34
34
  queries: +security-extended
35
35
 
36
36
  - name: Autobuild
37
- uses: github/codeql-action/autobuild@v4
37
+ uses: github/codeql-action/autobuild@v4.37.4
38
38
 
39
39
  - name: Perform CodeQL Analysis
40
- uses: github/codeql-action/analyze@v4
40
+ uses: github/codeql-action/analyze@v4.37.4
41
41
  continue-on-error: true
42
42
  with:
43
43
  category: /language:python
@@ -30,7 +30,10 @@ jobs:
30
30
  uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
31
31
  with:
32
32
  repository: agentrust-io/.github
33
- ref: main
33
+ # Pinned deliberately: this workflow runs on pull_request_target
34
+ # with a write-capable token, so the code it checks out must not
35
+ # track a mutable ref. Bump this SHA after reviewing the diff.
36
+ ref: 0fe4520ee71a743fcd33f409fe366ee3e1da6f86 # main as of 2026-08-01
34
37
  persist-credentials: false
35
38
  sparse-checkout: |
36
39
  scripts
@@ -41,4 +41,4 @@ jobs:
41
41
  name: dist
42
42
  path: dist/
43
43
 
44
- - uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
44
+ - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
@@ -26,7 +26,7 @@ jobs:
26
26
  fetch-depth: 0
27
27
 
28
28
  - name: Run Scorecard
29
- uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
29
+ uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
30
30
  with:
31
31
  results_file: scorecard-results.sarif
32
32
  results_format: sarif
@@ -35,6 +35,6 @@ jobs:
35
35
  publish_results: false
36
36
 
37
37
  - name: Upload SARIF
38
- uses: github/codeql-action/upload-sarif@v4
38
+ uses: github/codeql-action/upload-sarif@v4.37.4
39
39
  with:
40
40
  sarif_file: scorecard-results.sarif
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## v0.4.1 — 2026-08-03
6
+
7
+ ### Fixed
8
+
9
+ - **`--version` reported the wrong version.** `__version__` was a second hardcoded literal alongside `pyproject.toml` and never moved, so it sat at `0.2.0` through both the 0.3.0 and 0.4.0 releases: `trace-tests --version` printed `0.2.0` from a 0.4.0 install while `importlib.metadata` correctly returned `0.4.0`. It is now read from installed distribution metadata, so there is one source of truth and the value cannot fall behind a release again.
10
+
11
+ This mattered more than a wrong string usually would. The v0.2 profile cutover shipped in 0.4.0, and a 0.2.x suite rejects every v0.2 record, so `--version` is exactly the command someone runs to work out whether their suite matches their producer. It was the one command that could not answer.
12
+
5
13
  ## v0.4.0 — 2026-07-28
6
14
 
7
15
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentrust-trace-tests
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: TRACE conformance test suite
5
5
  Project-URL: Homepage, https://github.com/agentrust-io/trace-tests
6
6
  Project-URL: Repository, https://github.com/agentrust-io/trace-tests
@@ -64,7 +64,7 @@ Description-Content-Type: text/markdown
64
64
 
65
65
  > **Test suite v0.2.** Tracks [TRACE Spec v0.2](https://github.com/agentrust-io/trace-spec).
66
66
 
67
- Conformance tests for TRACE — Trust Runtime Attestation and Compliance Evidence. Run this suite against your implementation to verify it meets the spec before claiming TRACE compliance.
67
+ Conformance tests for TRACE (Trust Runtime Attestation and Compliance Evidence). Run this suite against your implementation to verify it meets the spec before claiming TRACE compliance.
68
68
 
69
69
  Seven test modules covering the full specification: envelope structure, signature algorithms, TEE runtime claims, policy binding, tool-call transcripts, SCITT transparency anchoring, and supply chain provenance.
70
70
 
@@ -27,7 +27,7 @@
27
27
 
28
28
  > **Test suite v0.2.** Tracks [TRACE Spec v0.2](https://github.com/agentrust-io/trace-spec).
29
29
 
30
- Conformance tests for TRACE — Trust Runtime Attestation and Compliance Evidence. Run this suite against your implementation to verify it meets the spec before claiming TRACE compliance.
30
+ Conformance tests for TRACE (Trust Runtime Attestation and Compliance Evidence). Run this suite against your implementation to verify it meets the spec before claiming TRACE compliance.
31
31
 
32
32
  Seven test modules covering the full specification: envelope structure, signature algorithms, TEE runtime claims, policy binding, tool-call transcripts, SCITT transparency anchoring, and supply chain provenance.
33
33
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentrust-trace-tests"
7
- version = "0.4.0"
7
+ version = "0.4.1"
8
8
  description = "TRACE conformance test suite"
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
@@ -0,0 +1,20 @@
1
+ """TRACE conformance test suite."""
2
+
3
+ from importlib.metadata import PackageNotFoundError, version
4
+
5
+ # Read the version from installed distribution metadata rather than restating it
6
+ # here. `pyproject.toml` is what the build and PyPI publish, so a second literal
7
+ # in this file is a copy that can fall behind silently: it sat at "0.2.0" through
8
+ # both the 0.3.0 and 0.4.0 releases, so `trace-tests --version` reported 0.2.0
9
+ # from a 0.4.0 install. That is worse than cosmetic, because the v0.2 profile
10
+ # cutover landed in 0.4.0 and `--version` is the command someone runs to find out
11
+ # whether they have a suite that accepts v0.2 records.
12
+ try:
13
+ __version__ = version("agentrust-trace-tests")
14
+ except PackageNotFoundError: # pragma: no cover - source tree with no install
15
+ # Importable without being installed (e.g. PYTHONPATH against a checkout).
16
+ # There is no metadata to read here, and guessing a number would reintroduce
17
+ # the drift this exists to prevent.
18
+ __version__ = "0.0.0+unknown"
19
+
20
+ __all__ = ["__version__"]
@@ -57,3 +57,29 @@ def test_partial_cmcp_envelope_is_rejected(tmp_path):
57
57
  result = CliRunner().invoke(main, ["verify", "--record", str(p), "--level", "0"])
58
58
  assert result.exit_code == 2, result.output
59
59
  assert "partial cmcp-runtime envelope" in result.output
60
+
61
+
62
+ def test_version_matches_distribution_metadata():
63
+ """`--version` must report the installed distribution version.
64
+
65
+ `__version__` was a second hardcoded literal alongside `pyproject.toml` and
66
+ fell behind through two releases, so a 0.4.0 install reported 0.2.0. Since
67
+ the v0.2 profile cutover shipped in 0.4.0, `--version` was the one command
68
+ that could not tell you whether your suite accepts v0.2 records.
69
+ """
70
+ from importlib.metadata import version
71
+
72
+ expected = version("agentrust-trace-tests")
73
+ result = CliRunner().invoke(main, ["--version"])
74
+
75
+ assert result.exit_code == 0, result.output
76
+ assert expected in result.output, f"expected {expected!r} in {result.output!r}"
77
+
78
+
79
+ def test_dunder_version_is_not_a_stale_literal():
80
+ """Guard against reverting to a hardcoded `__version__`."""
81
+ from importlib.metadata import version
82
+
83
+ import trace_tests
84
+
85
+ assert trace_tests.__version__ == version("agentrust-trace-tests")
@@ -1,3 +0,0 @@
1
- """TRACE conformance test suite."""
2
-
3
- __version__ = "0.2.0"