Skip to content

Commit 0a89ee4

Browse files
committed
Record Rust crates.io release
1 parent 7b61faa commit 0a89ee4

4 files changed

Lines changed: 367 additions & 23 deletions

File tree

.agents/sow/SOW-status.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ Last updated: 2026-06-08
77
- SOW-0009 - Benchmark Profile Optimize: paused umbrella. Writer and reader
88
performance work is split into focused child SOWs; this file remains the
99
program index.
10-
- SOW-0099 - Rust crates.io Publication: paused. Rust package publishing is
11-
publish-ready under project-prefixed crates.io names with `0.6.0` as the
12-
target release version; publication is blocked only by missing Cargo registry
13-
credentials in this environment.
1410

1511
## Pending
1612

@@ -44,9 +40,17 @@ Last updated: 2026-06-08
4440
- SOW-0098 - Rust Legacy Core Duplication Debt: open. Follow-up from SOW-0096
4541
to analyze and reduce real Rust `jf`/`journal-core` duplication only where
4642
shared primitives preserve historical compatibility and reader performance.
43+
- SOW-0100 - Consumer Docs And GitHub Wiki Publication: open. Add committed
44+
`docs/` GitHub wiki source, publish it to the GitHub wiki on trusted
45+
`master` merges, and document SDK API layers, hot paths, performance-sensitive
46+
options, production recommendations, and anti-patterns.
4747

4848
## Recently Closed Or Completed
4949

50+
- SOW-0099 - Rust crates.io Publication: completed. Rust SDK packages were
51+
published to crates.io at `0.6.0` under `systemd-journal-sdk` and
52+
project-prefixed internal package names; release tags are created on the SOW
53+
close commit.
5054
- SOW-0096 - Codacy Metrics And Coverage Hygiene: completed. Go and Rust
5155
coverage reports now remove test/test-harness paths before Codacy upload;
5256
Python and Node.js coverage were verified source-scoped. The Rust/Go

.agents/sow/current/SOW-0099-20260608-rust-crates-io-publication.md renamed to .agents/sow/done/SOW-0099-20260608-rust-crates-io-publication.md

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
## Status
44

5-
Status: paused
5+
Status: completed
66

7-
Sub-state: publish-ready; blocked on crates.io credentials.
7+
Sub-state: published to crates.io; release tags pending commit/tag push.
88

99
## Requirements
1010

@@ -42,10 +42,8 @@ Inferences:
4242

4343
Unknowns:
4444

45-
- Whether valid crates.io credentials are available in this environment.
46-
- Whether crates.io will accept every package name at publish time. The local
47-
index says the names are currently unused, but publish-time registry checks
48-
are authoritative.
45+
- None remaining for this SOW. Crates.io accepted every planned package name
46+
and version.
4947

5048
### Acceptance Criteria
5149

@@ -286,6 +284,16 @@ Failure handling:
286284
- Rechecked planned package-name availability; all planned names still returned
287285
not found in the crates.io index.
288286
- Paused before publishing because Cargo has no registry credential configured.
287+
- Resumed after the user configured Cargo registry credentials locally.
288+
- Published crates in dependency order:
289+
`systemd-journal-sdk-common`, `systemd-journal-sdk-registry`,
290+
`systemd-journal-sdk-core`, `systemd-journal-sdk-log-writer`,
291+
`systemd-journal-sdk-index`, `systemd-journal-sdk-engine`, and
292+
`systemd-journal-sdk`.
293+
- Crates.io rate-limited new crate publication twice. The release waited until
294+
the registry-provided retry time and retried the affected package without
295+
changing package contents.
296+
- Verified all seven packages with `cargo info`.
289297

290298
## Validation
291299

@@ -311,6 +319,7 @@ Acceptance criteria evidence:
311319
`systemd-journal-sdk-log-writer`, `systemd-journal-sdk-index`, and
312320
`systemd-journal-sdk-engine`. Publish-time registry checks remain
313321
authoritative.
322+
- `cargo info` confirms all planned packages now exist at version `0.6.0`.
314323

315324
Tests or equivalent validation:
316325

@@ -325,6 +334,8 @@ Tests or equivalent validation:
325334
accepted manifest defect.
326335
- Publication credential check: blocked. No Cargo registry token or Cargo
327336
credential file is configured in this environment.
337+
- Crates.io publication: PASS. All seven planned crates were accepted and are
338+
visible to `cargo info` at version `0.6.0`.
328339
- `git diff --check`: PASS.
329340
- `.agents/sow/audit.sh`: PASS.
330341

@@ -423,9 +434,8 @@ Artifact maintenance gate:
423434
- End-user/operator docs: `README.md` and `rust/README.md` updated with Rust
424435
crates.io dependency examples.
425436
- End-user/operator skills: no output/reference skill is affected.
426-
- SOW lifecycle: this SOW remains in `current/` and `Status: paused` because
427-
crates.io credentials are an external blocker. It must not move to `done/`
428-
until publication/tagging succeeds or the user explicitly changes the scope.
437+
- SOW lifecycle: `Status: completed`; this file is moved to `.agents/sow/done/`
438+
together with the release evidence commit.
429439
- SOW-status.md: root and detailed SOW status ledgers updated.
430440

431441
Specs update:
@@ -458,14 +468,20 @@ Lessons:
458468

459469
Follow-up mapping:
460470

461-
- No deferred implementation item is accepted for this SOW. Publication itself
462-
remains blocked on crates.io credentials.
471+
- No deferred implementation item remains for this SOW. Consumer documentation
472+
and GitHub wiki publication are tracked separately by SOW-0100.
463473

464474
## Outcome
465475

466-
Paused: publish-ready changes are implemented, validated, reviewed, and ready
467-
for crates.io publication once a Cargo registry token is provided in the
468-
environment or Cargo credentials are configured.
476+
Completed: Rust SDK packages were published to crates.io at version `0.6.0`:
477+
478+
- `systemd-journal-sdk`
479+
- `systemd-journal-sdk-common`
480+
- `systemd-journal-sdk-core`
481+
- `systemd-journal-sdk-registry`
482+
- `systemd-journal-sdk-log-writer`
483+
- `systemd-journal-sdk-index`
484+
- `systemd-journal-sdk-engine`
469485

470486
## Lessons Extracted
471487

@@ -475,10 +491,10 @@ environment or Cargo credentials are configured.
475491
exists in crates.io.
476492
- Publication credentials are an operational prerequisite and must be checked
477493
before the irreversible publish step.
494+
- crates.io enforces a rate limit on new crate creation. Multi-crate first
495+
publication may need timed waits between uploads even when all package
496+
manifests are valid.
478497

479498
## Followup
480499

481-
- Resume this SOW after crates.io credentials are configured. Required next
482-
commands are the publish sequence in
483-
`.agents/skills/project-release-tagging/SKILL.md`, followed by final SOW
484-
completion, commit/tag push, and remote tag verification.
500+
- None for this SOW.

0 commit comments

Comments
 (0)