mintmark 0.3.1__tar.gz → 0.3.2__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 (145) hide show
  1. {mintmark-0.3.1 → mintmark-0.3.2}/CHANGELOG.md +12 -0
  2. {mintmark-0.3.1 → mintmark-0.3.2}/PKG-INFO +2 -2
  3. {mintmark-0.3.1 → mintmark-0.3.2}/README.md +1 -1
  4. {mintmark-0.3.1 → mintmark-0.3.2}/pyproject.toml +1 -1
  5. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/version.py +1 -1
  6. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_workflows.py +7 -1
  7. {mintmark-0.3.1 → mintmark-0.3.2}/.gitignore +0 -0
  8. {mintmark-0.3.1 → mintmark-0.3.2}/LICENSE +0 -0
  9. {mintmark-0.3.1 → mintmark-0.3.2}/NOTICE +0 -0
  10. {mintmark-0.3.1 → mintmark-0.3.2}/assets/brand/mintmark-logo.png +0 -0
  11. {mintmark-0.3.1 → mintmark-0.3.2}/assets/brand/mintmark-logo.svg +0 -0
  12. {mintmark-0.3.1 → mintmark-0.3.2}/assets/denylist/institutions-tr.txt +0 -0
  13. {mintmark-0.3.1 → mintmark-0.3.2}/assets/readme/family-topology.png +0 -0
  14. {mintmark-0.3.1 → mintmark-0.3.2}/assets/readme/family-topology.svg +0 -0
  15. {mintmark-0.3.1 → mintmark-0.3.2}/assets/readme/mint-pipeline.png +0 -0
  16. {mintmark-0.3.1 → mintmark-0.3.2}/assets/readme/mint-pipeline.svg +0 -0
  17. {mintmark-0.3.1 → mintmark-0.3.2}/assets/tables/CHECKSUMS +0 -0
  18. {mintmark-0.3.1 → mintmark-0.3.2}/assets/tables/balances.json +0 -0
  19. {mintmark-0.3.1 → mintmark-0.3.2}/assets/tables/txn_amounts.json +0 -0
  20. {mintmark-0.3.1 → mintmark-0.3.2}/packs/example/README.md +0 -0
  21. {mintmark-0.3.1 → mintmark-0.3.2}/packs/example/fields/customer.yaml +0 -0
  22. {mintmark-0.3.1 → mintmark-0.3.2}/packs/example/fields/transaction.yaml +0 -0
  23. {mintmark-0.3.1 → mintmark-0.3.2}/packs/example/pack.yaml +0 -0
  24. {mintmark-0.3.1 → mintmark-0.3.2}/packs/example/recipes/demo.yaml +0 -0
  25. {mintmark-0.3.1 → mintmark-0.3.2}/packs/example/templates/txn_descriptions/set.yaml +0 -0
  26. {mintmark-0.3.1 → mintmark-0.3.2}/schemas/manifest.schema.json +0 -0
  27. {mintmark-0.3.1 → mintmark-0.3.2}/schemas/pack.schema.json +0 -0
  28. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/__init__.py +0 -0
  29. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/annotate/__init__.py +0 -0
  30. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/annotate/render.py +0 -0
  31. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/annotate/sidecar.py +0 -0
  32. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/annotate/spans.py +0 -0
  33. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/annotate/taxonomy.py +0 -0
  34. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/api.py +0 -0
  35. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/cli.py +0 -0
  36. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/emit/__init__.py +0 -0
  37. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/emit/canonical.py +0 -0
  38. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/emit/csv_writer.py +0 -0
  39. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/emit/writer.py +0 -0
  40. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/__init__.py +0 -0
  41. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/draws.py +0 -0
  42. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/fold.py +0 -0
  43. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/prng.py +0 -0
  44. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/records.py +0 -0
  45. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/streams.py +0 -0
  46. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/tables.py +0 -0
  47. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/engine/templates.py +0 -0
  48. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/__init__.py +0 -0
  49. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/email.py +0 -0
  50. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/iban.py +0 -0
  51. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/pan.py +0 -0
  52. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/phone.py +0 -0
  53. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/policy.py +0 -0
  54. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/tckn.py +0 -0
  55. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/identifiers/vkn.py +0 -0
  56. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/__init__.py +0 -0
  57. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/data/given_names_tr.yaml +0 -0
  58. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/data/occupations_tr.yaml +0 -0
  59. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/data/provinces_tr.yaml +0 -0
  60. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/data/special_descriptors.yaml +0 -0
  61. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/data/street_parts_tr.yaml +0 -0
  62. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/data/surnames_tr.yaml +0 -0
  63. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/lexicons/denylist.py +0 -0
  64. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/manifest/__init__.py +0 -0
  65. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/manifest/document.py +0 -0
  66. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/manifest/io.py +0 -0
  67. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/manifest/safety.py +0 -0
  68. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/manifest/sums.py +0 -0
  69. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/manifest/verify.py +0 -0
  70. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/mint.py +0 -0
  71. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/packs/__init__.py +0 -0
  72. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/packs/digest.py +0 -0
  73. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/packs/loader.py +0 -0
  74. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/packs/model.py +0 -0
  75. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/packs/semver.py +0 -0
  76. {mintmark-0.3.1 → mintmark-0.3.2}/src/mintmark/py.typed +0 -0
  77. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/alias/pack.yaml +0 -0
  78. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/anchor/pack.yaml +0 -0
  79. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/bad-name-pattern/pack.yaml +0 -0
  80. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/duplicate-key/pack.yaml +0 -0
  81. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/empty-file/pack.yaml +0 -0
  82. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/float-weight/pack.yaml +0 -0
  83. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/merge-key/pack.yaml +0 -0
  84. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/missing-schema-version/pack.yaml +0 -0
  85. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/multiple-documents/pack.yaml +0 -0
  86. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/non-mapping-root/pack.yaml +0 -0
  87. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/open-ended-requires-core/pack.yaml +0 -0
  88. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/tab-indentation/pack.yaml +0 -0
  89. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/unknown-field/pack.yaml +0 -0
  90. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/valid/pack.yaml +0 -0
  91. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/packs/wrong-locale/pack.yaml +0 -0
  92. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/test_numeric_resource_limits.py +0 -0
  93. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/test_pack_rejection.py +0 -0
  94. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/test_tamper_detection.py +0 -0
  95. {mintmark-0.3.1 → mintmark-0.3.2}/tests/adversarial/test_template_grammar.py +0 -0
  96. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/fields/account.yaml +0 -0
  97. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/fields/card.yaml +0 -0
  98. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/fields/complaint_ticket.yaml +0 -0
  99. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/fields/customer.yaml +0 -0
  100. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/fields/kyc_note.yaml +0 -0
  101. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/fields/support_transcript.yaml +0 -0
  102. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/fields/transaction.yaml +0 -0
  103. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/lexicons/ratings.yaml +0 -0
  104. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/pack.yaml +0 -0
  105. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/recipes/full.yaml +0 -0
  106. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/templates/complaints/set.yaml +0 -0
  107. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/templates/kyc_notes/set.yaml +0 -0
  108. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/pack/templates/transcripts/set.yaml +0 -0
  109. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conformance/test_contract_coverage.py +0 -0
  110. {mintmark-0.3.1 → mintmark-0.3.2}/tests/conftest.py +0 -0
  111. {mintmark-0.3.1 → mintmark-0.3.2}/tests/golden/demo-run/DIGESTS.json +0 -0
  112. {mintmark-0.3.1 → mintmark-0.3.2}/tests/golden/demo-run/customer.jsonl +0 -0
  113. {mintmark-0.3.1 → mintmark-0.3.2}/tests/golden/demo-run/transaction.jsonl +0 -0
  114. {mintmark-0.3.1 → mintmark-0.3.2}/tests/golden/demo-run/transaction.labels.jsonl +0 -0
  115. {mintmark-0.3.1 → mintmark-0.3.2}/tests/golden/prng_vectors.json +0 -0
  116. {mintmark-0.3.1 → mintmark-0.3.2}/tests/golden/test_golden_bytes.py +0 -0
  117. {mintmark-0.3.1 → mintmark-0.3.2}/tests/property/test_draws.py +0 -0
  118. {mintmark-0.3.1 → mintmark-0.3.2}/tests/property/test_fold_and_email.py +0 -0
  119. {mintmark-0.3.1 → mintmark-0.3.2}/tests/property/test_records.py +0 -0
  120. {mintmark-0.3.1 → mintmark-0.3.2}/tests/property/test_render.py +0 -0
  121. {mintmark-0.3.1 → mintmark-0.3.2}/tests/property/test_safe_mode_purity.py +0 -0
  122. {mintmark-0.3.1 → mintmark-0.3.2}/tests/property/test_span_alignment.py +0 -0
  123. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_canary.py +0 -0
  124. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_cli.py +0 -0
  125. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_community_mirrors.py +0 -0
  126. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_declared_controls.py +0 -0
  127. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_denylist.py +0 -0
  128. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_emit.py +0 -0
  129. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_mint_invariants.py +0 -0
  130. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_module_boundaries.py +0 -0
  131. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_no_libm.py +0 -0
  132. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_pack_digest.py +0 -0
  133. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_packaging.py +0 -0
  134. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_prng.py +0 -0
  135. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_prose_lint.py +0 -0
  136. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_readme_mirror.py +0 -0
  137. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_repository_inventory.py +0 -0
  138. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_special_descriptors.py +0 -0
  139. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_streams.py +0 -0
  140. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_tables.py +0 -0
  141. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_taxonomy.py +0 -0
  142. {mintmark-0.3.1 → mintmark-0.3.2}/tests/unit/test_toolchain.py +0 -0
  143. {mintmark-0.3.1 → mintmark-0.3.2}/tools/canary.py +0 -0
  144. {mintmark-0.3.1 → mintmark-0.3.2}/tools/gen_tables.py +0 -0
  145. {mintmark-0.3.1 → mintmark-0.3.2}/tools/mdlint.py +0 -0
@@ -11,6 +11,18 @@ output for a fixed set of inputs. A change that alters emitted bytes for a fixed
11
11
  seed is a major version event even when no signature changed, because it breaks
12
12
  the reproducibility of every published manifest.
13
13
 
14
+ ## 0.3.2 - 2026-08-23
15
+
16
+ ### Security
17
+
18
+ - Release checksums and GitHub build-provenance attestations now cover the
19
+ CycloneDX SBOM alongside the wheel and source distribution.
20
+ - Artifact upload and download steps use immutable, Node 24-compatible action
21
+ revisions.
22
+
23
+ Generated record and label files do not change for the same inputs. Manifests
24
+ record the patch engine version.
25
+
14
26
  ## 0.3.1 - 2026-08-23
15
27
 
16
28
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mintmark
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Deterministic, fully synthetic, Turkish-first labeled datasets with a provenance manifest.
5
5
  Author: Mintmark contributors
6
6
  License-Expression: Apache-2.0
@@ -35,7 +35,7 @@ Description-Content-Type: text/markdown
35
35
  <a href="https://github.com/lokomotifai/mintmark/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/lokomotifai/mintmark/ci.yml?branch=main&amp;style=flat-square&amp;label=CI"></a>
36
36
  <img alt="926 tests" src="https://img.shields.io/badge/tests-926-3C873A?style=flat-square">
37
37
  <img alt="18 invariants, each with a named test" src="https://img.shields.io/badge/invariants-18%20tested-3C873A?style=flat-square">
38
- <a href="https://github.com/lokomotifai/mintmark/releases/tag/v0.3.1"><img alt="Release v0.3.1" src="https://img.shields.io/badge/release-v0.3.1-3C873A?style=flat-square"></a>
38
+ <a href="https://github.com/lokomotifai/mintmark/releases/tag/v0.3.2"><img alt="Release v0.3.2" src="https://img.shields.io/badge/release-v0.3.2-3C873A?style=flat-square"></a>
39
39
  <a href="https://pypi.org/project/mintmark/"><img alt="On PyPI" src="https://img.shields.io/pypi/v/mintmark?style=flat-square&amp;label=PyPI&amp;color=3C873A"></a>
40
40
  <a href="LICENSE"><img alt="Apache-2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-3B3F46?style=flat-square"></a>
41
41
  </p>
@@ -15,7 +15,7 @@
15
15
  <a href="https://github.com/lokomotifai/mintmark/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/lokomotifai/mintmark/ci.yml?branch=main&amp;style=flat-square&amp;label=CI"></a>
16
16
  <img alt="926 tests" src="https://img.shields.io/badge/tests-926-3C873A?style=flat-square">
17
17
  <img alt="18 invariants, each with a named test" src="https://img.shields.io/badge/invariants-18%20tested-3C873A?style=flat-square">
18
- <a href="https://github.com/lokomotifai/mintmark/releases/tag/v0.3.1"><img alt="Release v0.3.1" src="https://img.shields.io/badge/release-v0.3.1-3C873A?style=flat-square"></a>
18
+ <a href="https://github.com/lokomotifai/mintmark/releases/tag/v0.3.2"><img alt="Release v0.3.2" src="https://img.shields.io/badge/release-v0.3.2-3C873A?style=flat-square"></a>
19
19
  <a href="https://pypi.org/project/mintmark/"><img alt="On PyPI" src="https://img.shields.io/pypi/v/mintmark?style=flat-square&amp;label=PyPI&amp;color=3C873A"></a>
20
20
  <a href="LICENSE"><img alt="Apache-2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-3B3F46?style=flat-square"></a>
21
21
  </p>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mintmark"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "Deterministic, fully synthetic, Turkish-first labeled datasets with a provenance manifest."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12,<3.13"
@@ -2,4 +2,4 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- VERSION = "0.3.1"
5
+ VERSION = "0.3.2"
@@ -171,8 +171,14 @@ def test_release_scans_and_seals_the_exact_built_artifacts_before_oidc() -> None
171
171
  assert "uv build --no-build-isolation" in build_text
172
172
  assert "uv export --locked --no-dev --no-emit-project" in build_text
173
173
  assert "tools/canary.py dist/" in build_text
174
- assert "sha256sum mintmark-*.whl mintmark-*.tar.gz" in build_text
174
+ assert "sha256sum mintmark-*.whl mintmark-*.tar.gz sbom.json" in build_text
175
175
  assert "sha256sum -c SHA256SUMS" in publish_text
176
+ attestation = next(
177
+ step
178
+ for step in publish_steps
179
+ if step.get("uses", "").startswith("actions/attest-build-provenance@")
180
+ )
181
+ assert "dist/sbom.json" in attestation["with"]["subject-path"]
176
182
  publisher = next(
177
183
  step
178
184
  for step in publish_steps
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes