|
28 | 28 | | Category | Met | Total | Status | |
29 | 29 | |--------------------|-----|-------|--------| |
30 | 30 | | Basics | 8 | 8 | 🟢 | |
31 | | -| Change Control | 3 | 6 | 🟡 | |
| 31 | +| Change Control | 6 | 6 | 🟢 | |
32 | 32 | | Reporting | 6 | 8 | 🟡 | |
33 | 33 | | Quality | 7 | 11 | 🟡 | |
34 | 34 | | Security | 9 | 9 | 🟢 | |
35 | 35 | | Analysis | 3 | 7 | 🔴 | |
36 | | -| **Total** | **36** | **49** | **73%** | |
| 36 | +| **Total** | **39** | **49** | **80%** | |
37 | 37 | --- |
38 | 38 |
|
39 | 39 | ## 🏗️ Basics |
|
77 | 77 |
|
78 | 78 | ### Version Numbering |
79 | 79 |
|
80 | | -- [ ] 🔴 **version_unique** — Each release has a unique version identifier (e.g., v1.0.0). |
81 | | - - *Evidence URL:* None — no tagged releases exist yet (`git tag` is empty). |
| 80 | +- [x] 🔴 **version_unique** — Each release has a unique version identifier (e.g., v1.0.0). |
| 81 | + - *Evidence URL:* [pyproject.toml](../pyproject.toml) (`version = "0.1.0-beta"`), released via `vX.Y.Z` git tags per [.github/workflows/release.yml](../.github/workflows/release.yml). |
82 | 82 |
|
83 | | -- [ ] 🔵 **version_semver** — Project uses [SemVer](https://semver.org) or [CalVer](https://calver.org/) format. *(SUGGESTED)* |
84 | | - - *Note:* No versioning scheme is in use yet; no `__version__`/package version found in the repo. |
| 83 | +- [x] 🔵 **version_semver** — Project uses [SemVer](https://semver.org) or [CalVer](https://calver.org/) format. *(SUGGESTED)* |
| 84 | + - *Note:* Tags match `v[0-9]+.[0-9]+.[0-9]+*` (see [.github/workflows/release.yml](../.github/workflows/release.yml) trigger), SemVer-style. |
85 | 85 |
|
86 | | -- [ ] 🔵 **version_tags** — Releases are tagged in the VCS (e.g., `git tag v1.0.0`). *(SUGGESTED)* |
87 | | - - *Evidence URL:* None — repository has no tags. |
| 86 | +- [x] 🔵 **version_tags** — Releases are tagged in the VCS (e.g., `git tag v1.0.0`). *(SUGGESTED)* |
| 87 | + - *Evidence URL:* [.github/workflows/release.yml](../.github/workflows/release.yml) — release builds are tag-triggered. |
88 | 88 |
|
89 | 89 | ### Release Notes |
90 | 90 |
|
91 | 91 | - [x] 🔴 **release_notes** — Each release includes human-readable release notes summarizing major changes. Raw `git log` output is NOT acceptable. |
92 | | - - *Evidence URL:* `[x]` N/A — *Justification: project has not cut any releases yet; it is developed via continuous commits to `main`. Revisit once the first tagged release is planned.* |
| 92 | + - *Evidence URL:* [.github/workflows/release.yml](../.github/workflows/release.yml) — `generate_release_notes: true` on the GitHub Release step. |
93 | 93 |
|
94 | 94 | - [x] 🔴 **release_notes_vulns** — Release notes identify every publicly known vulnerability (with CVE) fixed in that release. |
95 | 95 | - *Evidence URL:* `[x]` N/A — *Justification: no releases exist yet, and no publicly known CVEs affect the project.* |
|
255 | 255 | - For `dynamic_analysis`: consider adversarial input testing as a form of dynamic analysis. |
256 | 256 |
|
257 | 257 | ### MiniChain-Specific Notes |
258 | | -- Biggest open gaps found by this pass: no linter in CI (blocks all three `warnings_*` items), and no static/dynamic analysis tooling (blocks all of Analysis except the N/A items). Tagging a first release would also unlock the Change Control items. [SECURITY.md](../SECURITY.md) was added, closing the `vulnerability_report_process`/`vulnerability_report_private` gaps. |
| 258 | +- Biggest open gaps found by this pass: no linter in CI (blocks all three `warnings_*` items), and no static/dynamic analysis tooling (blocks all of Analysis except the N/A items). [SECURITY.md](../SECURITY.md) was added, closing the `vulnerability_report_process`/`vulnerability_report_private` gaps, and the tag-triggered [release workflow](../.github/workflows/release.yml) closes the Change Control items. |
259 | 259 | - `report_responses` / `enhancement_responses` need a manual pass over GitHub Issues history — not derivable from the repo contents. |
260 | 260 |
|
261 | 261 | --- |
|
0 commit comments