4.0 KiB
4.0 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| release-publish-prep | Publish prep — package verification, exclusion check, publish records | pending |
|
moderate | medium | project | implementation |
|
Description
The plan's wave-8 "publish prep": everything short of the manual
cargo publish itself (CI and publishing are manual per the plan's
decided points — self-hosted Gitea, supply-chain posture; the actual
publish is the user's action, post-gate).
- Package metadata audit: the four published crates currently
carry only version/edition/license/repository —
descriptionis missing on all four (crates.io requires it). Land honest descriptions per crate; decide the remaining optional fields (keywords,categories,homepage/docs— the family's published crates are the precedent to check) and record the decisions. cargo packageverification per published crate (alkstore,alkstore-sqlite,alkstore-postgres,alkstore-mem): each packages clean (no warnings that block,.cratecontents inspected), builds + tests from the packaged source (cargo package --no-verifyoff — let it verify, or verify manually per crate and record which).- The publish-exclusion verification (parked from wave 7 —
tasks/review-wave-7.mditem 4(iii)): the mechanism (exclude = ["fuzz"]on the root workspace) landed; this is the verification that no published package leaks the sidecar — inspect each.crate's file list: nofuzz/paths, noalkstore-fuzz-sharedreferences, no grown corpora/artifacts. Also verifyalkstore-contract-suite(publish = false) and the fuzz sidecar are absent from any package. - Path-dep + version records: the engines'
alkstore = { version = "0.1", path = … }shape is publish-legal (version bound present) — verify each path dep carries its version bound; record the publish order (core first, then engines — ADR-017 §4.1's pairing) and the version decision (0.1.0 as contract v1's initial release, per ADR-017's semver-is-the-contract discipline) in the task Notes as the publish checklist of record. - Substrate packaging check (ADR-013/018):
alkstore-sqlite's package includes the in-tree substrate — verifyPROVENANCE.mdand the dual-license notice ride in the.crate, and the package is honest about carrying them. - The publish checklist of record: a Notes section listing the exact manual commands in order (per crate: package → publish), including the dry-run evidence, so the user's publish session is mechanical.
Acceptance Criteria
descriptionlanded on all four published crates; optional metadata decisions recordedcargo packageclean per published crate (verification posture recorded);.cratecontents inspected- Publish-exclusion verification recorded: no fuzz/sidecar/ contract-suite paths in any package's file list
- Path-dep version bounds verified; publish order + version decision recorded
- Substrate PROVENANCE + license notice confirmed in the
alkstore-sqlitepackage - The manual publish checklist of record written (commands in order, evidence attached)
- Workspace gates + the fuzz corpus-replay gate green at session end
References
- docs/plans/implementation.md §Wave 8, §Decided points (CI/publishing manual)
- tasks/review-wave-7.md (the parked exclusion verification, item 4)
- docs/architecture/decisions/017-contract-versioning.md §4.1 (the version pin + pairing)
- docs/architecture/decisions/013-fold-substrate-into-sqlite.md + docs/architecture/decisions/018-provenance-register-and-cherry-picks.md (the in-tree substrate's packaging posture)
- docs/architecture/decisions/022-contract-suite-layout.md (the suite is not published)
Notes
To be filled by implementation agent
Summary
To be filled on completion