@@ -256,8 +256,11 @@ The current release path is:
256256 candidate had clean local release evidence, clean CI, and clean external
257257 pentest results. This line should change only for release blockers,
258258 documentation corrections, or evidence-policy fixes before tagging.
259- - ` 1.0.x ` : maintenance and assurance releases. Kani proof execution remains a
260- high-priority ` 1.0.x ` follow-up once Kani supports the pinned Rust toolchain.
259+ - ` 1.0.x ` : maintenance, assurance, and move-only source-layout releases. Kani
260+ proof execution remains a high-priority ` 1.0.x ` follow-up once Kani supports
261+ the pinned Rust toolchain. Before any ` 1.1 ` feature work, reduce
262+ ` src/lib.rs ` review size through small module splits that preserve the public
263+ API and behavior.
261264
262265The initial ` 1.0.0 ` contract accepts the documented Kani verifier exception in
263266[ KANI.md] ( KANI.md ) . That exception is explicit replacement evidence, not a
@@ -569,12 +572,41 @@ admission over speed. Hardware acceleration is valuable only when the scalar
569572implementation remains the correctness reference and every unsafe backend has
570573clear admission evidence.
571574
575+ Before ` 1.1 ` , run a ` 1.0.x ` source-layout series. These releases are intended
576+ to help review and community contribution without changing behavior.
577+
578+ Rules for every source-layout release:
579+
580+ - Move code only; do not mix logic edits with file extraction.
581+ - Preserve all public paths, re-exports, docs examples, and feature behavior.
582+ - Review with moved-code-aware diffs.
583+ - Run the full release gate, package verification, and public API audit.
584+ - Treat any behavior change, new API, or security semantics change as out of
585+ scope for that split release.
586+
587+ Recommended ` 1.0.x ` source-layout sequence:
588+
589+ - ` 1.0.2 ` : split ` std::io ` streaming adapters and stream tests into
590+ ` src/stream.rs ` , preserving ` base64_ng::stream::* ` .
591+ - ` 1.0.3 ` : split runtime backend reporting and backend-policy types into
592+ ` src/runtime.rs ` .
593+ - ` 1.0.4 ` : split alphabets, custom alphabet validation, the alphabet macro, and
594+ profile wrappers into ` src/alphabet.rs ` and ` src/profiles.rs ` .
595+ - ` 1.0.5 ` : split stack/owned buffer wrappers and best-effort cleanup helpers
596+ into ` src/buffers.rs ` and ` src/cleanup.rs ` .
597+ - ` 1.0.6 ` : split constant-time-oriented decode, validation, masks, and CT
598+ barriers into ` src/ct.rs ` . This comes later because it is the most
599+ security-sensitive move.
600+ - ` 1.0.7 ` : split length helpers, line wrapping, and scalar core encode/decode
601+ helpers into ` src/length.rs ` , ` src/wrap.rs ` , and ` src/scalar.rs ` if the
602+ previous smaller splits stayed clean.
603+
572604The recommended post-` 1.0 ` SIMD path is incremental:
573605
574- - ` 1.0.x ` : maintenance, documentation, verifier compatibility, and assurance
575- releases. Resolve Kani execution when the verifier supports the pinned Rust
576- toolchain, refresh Miri/fuzz/dudect/generated-assembly evidence, and avoid
577- broad API expansion.
606+ - Remaining ` 1.0.x ` : maintenance, documentation, verifier compatibility, and
607+ assurance releases. Resolve Kani execution when the verifier supports the
608+ pinned Rust toolchain, refresh Miri/fuzz/dudect/generated-assembly evidence,
609+ and avoid broad API expansion.
578610- ` 1.1 ` : replace the SSSE3/SSE4.1 fixed-block encode scaffold with real
579611 vectorized encode logic for Standard and URL-safe alphabets only, still
580612 non-dispatchable. The goal is meaningful scalar-equivalence tests, not active
0 commit comments