Skip to content

Release 0.2.0 - #22

Merged
milyin merged 1 commit into
mainfrom
release/0.2.0
Aug 6, 2026
Merged

Release 0.2.0#22
milyin merged 1 commit into
mainfrom
release/0.2.0

Conversation

@milyin

@milyin milyin commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Release-preparation PR, following the "Publish a later version" steps in
RELEASING.md.

  • Cargo.toml0.2.0
  • CHANGELOG.md gains a dated ## 0.2.0 section

Cargo.lock is not committed, so nothing else carries the version.

Why 0.2.0

Three PRs have landed since v0.1.0#6, #20 and #21 — and the first and third
change the public model. Under SemVer a 0.x crate signals incompatibility by
raising the minor.

The changelog section is rewritten, not just retitled

The Unreleased notes written during the #21 review covered that change and the
umbrella's model changes, but omitted several things a consumer would hit:

  • WriteKotlinError gained a Validation variant — it is not #[non_exhaustive],
    so an exhaustive match on it stops compiling.
  • KtClass::ctor_params became a method when the field moved into the kind.
  • The builders now panic on shapes Kotlin rejects, which is a behaviour change
    for anyone who was (unknowingly) constructing them.
  • There were no Fixed entries at all, despite five user-visible fixes: the
    dropped banner override, the class Foo / val Foo false positive,
    duplicate detection not reaching into class bodies, merging reporting only the
    first problem, and identical Raw blocks being emitted twice.

One fix included

Running the release checks in full turned up a broken doc link that has been on
main since the umbrella:

error: public documentation for `validate` links to private item `self`
   --> src/validate.rs:274:39
    |
274 |     /// prove — see the [module docs](self) for what that does and does not

validate is a private module, so RUSTDOCFLAGS="-D warnings" cargo doc — one
of the documented release checks, and what docs.rs effectively runs — failed.
Replaced with the substance of what is and is not covered, pointing at Check,
which is public. Worth noting it only surfaced because the release checklist
includes a check my earlier rounds had not been running.

Release checks

All of the commands in RELEASING.md, on a clean tree:

Check Result
cargo fmt --all -- --check --config … pass
cargo clippy --all-targets --all-features -- -D warnings pass
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps pass
cargo test --all-targets --all-features 117 + 3 pass
cargo test --doc 11 pass
cargo package 28 files, packaged and verified

--all-targets excludes doctests, so cargo test --doc is listed separately.

After merging

Actions → Publish to crates.io → run from main with version 0.2.0 (no v
prefix). A dry_run rehearsal first is cheap. That workflow creates the tag and
GitHub release; per RELEASING.md they should not be made locally.

Bumps the manifest and turns the Unreleased notes into a dated 0.2.0
section, following the "Publish a later version" steps in RELEASING.md.
Cargo.lock is not committed, so nothing else carries the version.

The changelog section is rewritten rather than just retitled: the notes
written during the extension-receiver review covered that change and the
umbrella's model changes, but omitted several user-visible ones. Added
now — the `WriteKotlinError::Validation` variant, which breaks an
exhaustive match; `KtClass::ctor_params()` becoming a method; the
builder panics; and a Fixed section covering the dropped banner
override, the `class Foo` / `val Foo` false positive, duplicate
detection reaching into class bodies, all-diagnostics-at-once, and Raw
deduplication.

Running the release checks in full turned up a broken doc link that has
been on main since the umbrella: `KtFile::validate` linked to
`[module docs](self)`, but `validate` is a private module, so
`RUSTDOCFLAGS="-D warnings" cargo doc` failed and docs.rs would have
rendered a dangling link. Replaced with the substance — what is and is
not covered, pointing at `Check`, which is public.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the kotlin-codegen crate for the 0.2.0 release by bumping the manifest version, updating release notes, and fixing a rustdoc warning that would fail the documented release checks (RUSTDOCFLAGS="-D warnings").

Changes:

  • Bump crate version to 0.2.0 in Cargo.toml.
  • Replace the prior “Unreleased” notes with a dated 0.2.0 changelog section summarizing breaking changes, additions, and fixes.
  • Update KtFile::validate rustdoc to avoid linking to a private module item and to more explicitly state validation scope/limits.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
src/validate.rs Fixes public rustdoc on KtFile::validate to avoid -D warnings failures and clarifies what validation does/doesn’t cover.
CHANGELOG.md Adds the 0.2.0 - 2026-08-06 release section with detailed Added/Changed/Fixed entries.
Cargo.toml Updates the crate version to 0.2.0 for the release.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@milyin
milyin merged commit 79194b3 into main Aug 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants