Skip to content

Commit fe0ddbd

Browse files
aksOpsPaperclip-Paperclipclaude
authored
docs(changelog): per-version keep-a-changelog entries (RAN-61) (#83)
Replace the meta-pointer CHANGELOG with keep-a-changelog v1.1.0 format plus per-version sections for v0.0.1 / v0.0.2 / v0.0.3 so the bestpractices.dev autofill can flip release_notes_status from "Unmet — No release notes file found" to Met (target: 43/43 MUST on project 12628). The header documents the format, SemVer, and the existing release.yml workflow so future releases keep this file in sync. Co-authored-by: Paperclip <noreply@paperclip.ing> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent a36996e commit fe0ddbd

1 file changed

Lines changed: 126 additions & 17 deletions

File tree

CHANGELOG.md

Lines changed: 126 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,139 @@
11
# Changelog
22

3-
Curated release notes for each version are published on
4-
**[GitHub Releases](https://github.com/RandomCodeSpace/docsiq/releases)**.
3+
All notable changes to **docsiq** are documented in this file.
54

6-
Every release includes:
5+
The format is based on [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html).
7+
Each release is identified by an immutable `vX.Y.Z` git tag.
78

8-
- A human-readable summary of changes (the release body).
9-
- A `CHANGELOG.md` asset attached to the release, containing the same
10-
curated notes.
11-
- Signed binaries (cosign keyless + Rekor), a signed `SHA256SUMS`, and
12-
SLSA build provenance.
9+
## How releases are produced
1310

14-
## Release procedure
15-
16-
Release notes are provided at release time, not maintained in-repo:
11+
Releases are cut by the manual
12+
[`release.yml`](.github/workflows/release.yml) workflow:
1713

1814
```sh
1915
gh workflow run release.yml --ref main \
2016
-f bump=patch \
2117
-f notes=$'### Changed\n\n- Describe major changes...\n\n### Upgrade impact\n\nDrop-in replacement — no schema/API changes.'
2218
```
2319

24-
The workflow uses the `notes` input verbatim as the release body and
25-
also uploads it as `CHANGELOG.md` on the release page. The repository
26-
never auto-commits a CHANGELOG entry — this file is static.
20+
The workflow uses the `notes` input verbatim as the GitHub Release body
21+
and uploads it as `CHANGELOG.md` on the release page. Each release ships
22+
signed binaries (cosign keyless via Sigstore + Rekor anchoring), a signed
23+
`SHA256SUMS`, and SLSA build provenance.
24+
25+
This in-repo file is the canonical, human-curated history. The matching
26+
GitHub Release page for each `vX.Y.Z` tag carries the same notes plus the
27+
signed artifacts and verification snippet.
28+
29+
## [Unreleased]
30+
31+
No unreleased changes.
32+
33+
## [0.0.3] — 2026-04-23
34+
35+
Supply-chain hardening: complete OpenSSF Best Practices passing tier and
36+
flip the published Scorecard signal up.
37+
38+
### Added
39+
- `.bestpractices.json` so the OpenSSF Best Practices badge tracks
40+
project [12628](https://www.bestpractices.dev/en/projects/12628)
41+
automatically. ([#45])
42+
- Governance and community files (`SECURITY.md`, `CODE_OF_CONDUCT.md`,
43+
`CONTRIBUTING.md`, issue / PR templates) to flip the remaining
44+
Best Practices criteria to Met. ([#46])
45+
- Initial `CHANGELOG.md` and the rest of the missing Best Practices
46+
criteria (release-notes pointer, vulnerability-report instructions,
47+
build documentation pointers). ([#48])
48+
49+
### Changed
50+
- Release signing path: switched to `goreleaser` to expose a
51+
`Packaging` signal to OSSF Scorecard, then dropped it again because
52+
prebuilt-binary signing is a goreleaser Pro feature. The current
53+
release path is inline `cosign sign-blob` + `gh release create`,
54+
preserving keyless signing without the Pro dependency.
55+
([#43], [#50])
56+
- CI hygiene: dropped `push: main` triggers from the `ci` and `fuzz`
57+
workflows. Both still run on PRs and on the relevant scheduled jobs;
58+
this removes ~2 minutes from each merge while keeping branch
59+
protection coverage intact. ([#47])
60+
61+
### Fixed
62+
- CodeQL path/command-injection findings closed by adding
63+
`filepath.IsLocal` sanitisers on user-supplied path inputs in the
64+
loader and crawler boundaries. ([#44])
65+
- `TestScale_1000Notes` flake on macOS — dropped macOS from the test
66+
matrix (Linux-only CI is sufficient for the supported targets;
67+
darwin-arm64 builds are still produced in the release matrix).
68+
([#49])
69+
70+
[#43]: https://github.com/RandomCodeSpace/docsiq/pull/43
71+
[#44]: https://github.com/RandomCodeSpace/docsiq/pull/44
72+
[#45]: https://github.com/RandomCodeSpace/docsiq/pull/45
73+
[#46]: https://github.com/RandomCodeSpace/docsiq/pull/46
74+
[#47]: https://github.com/RandomCodeSpace/docsiq/pull/47
75+
[#48]: https://github.com/RandomCodeSpace/docsiq/pull/48
76+
[#49]: https://github.com/RandomCodeSpace/docsiq/pull/49
77+
[#50]: https://github.com/RandomCodeSpace/docsiq/pull/50
78+
79+
## [0.0.2] — 2026-04-23
80+
81+
Small CI-only follow-up to v0.0.1. No user-facing behaviour changes.
82+
83+
### Changed
84+
- OpenSSF Scorecard workflow cadence: `scorecard.yml` now runs on
85+
release completion and on a weekly schedule, instead of firing on
86+
every push to `main`. The policy being scored is unchanged; this
87+
trims noise from re-scoring commits that don't move any
88+
scorecard-visible state. ([#42])
89+
90+
### Upgrade impact
91+
Safe drop-in upgrade from v0.0.1. No API, CLI, or on-disk schema
92+
changes — replace the binary in place.
93+
94+
[#42]: https://github.com/RandomCodeSpace/docsiq/pull/42
95+
96+
## [0.0.1] — 2026-04-23
97+
98+
First non-beta release of docsiq after an extended beta phase. This
99+
release establishes the feature set and API surface that subsequent
100+
0.0.x patches maintain back-compat against.
101+
102+
### Added
103+
- **GraphRAG indexing pipeline** — five-phase ingestion: chunk →
104+
extract entities + relationships + claims → community-detect
105+
(Louvain) → embed → persist.
106+
- **Document loaders** — PDF (langchaingo), DOCX, TXT, Markdown, and a
107+
polite web crawler with `robots.txt` + allow-list + MIME checks.
108+
- **Multi-provider LLM layer** — Azure OpenAI, OpenAI, and Ollama
109+
behind a single `internal/llm` abstraction (langchaingo
110+
underneath).
111+
- **Hybrid query engine** — local search (vector + FTS5) plus global
112+
search (community-summary).
113+
- **Surfaces** — CLI (`docsiq index|search|serve`), REST API, MCP
114+
server, and an embedded React SPA served by `docsiq serve`.
115+
- **Storage** — single SQLite file with `sqlite_fts5` + `sqlite-vec`
116+
for vector search. No external DB to deploy.
117+
118+
### Security
119+
- Release binaries signed with [cosign](https://github.com/sigstore/cosign)
120+
keyless via Sigstore and anchored to the Rekor transparency log.
121+
- Signed `SHA256SUMS` published with each release, with verification
122+
instructions attached.
123+
- SLSA build provenance (`.intoto.jsonl`) accompanies the binaries.
124+
125+
### Known limitations
126+
- Darwin support is limited to `arm64`; `amd64` binaries are not
127+
built (cgo + sqlite-vec cross-compile complexity).
128+
- Pre-1.0: APIs and on-disk schema are not yet frozen.
129+
130+
### Upgrade impact
131+
No previous stable release exists — this is v0.0.1. Users upgrading
132+
from `v0.0.0-beta.*` should start with a fresh data directory; the
133+
schema is the same as the final beta but the beta tags have been
134+
retired.
27135

28-
The project follows
29-
[Semantic Versioning](https://semver.org/spec/v2.0.0.html) and each
30-
release is identified by its immutable `vX.Y.Z` tag.
136+
[Unreleased]: https://github.com/RandomCodeSpace/docsiq/compare/v0.0.3...HEAD
137+
[0.0.3]: https://github.com/RandomCodeSpace/docsiq/releases/tag/v0.0.3
138+
[0.0.2]: https://github.com/RandomCodeSpace/docsiq/releases/tag/v0.0.2
139+
[0.0.1]: https://github.com/RandomCodeSpace/docsiq/releases/tag/v0.0.1

0 commit comments

Comments
 (0)