Skip to content

release: 0.3.0 - #17

Merged
hanslemm merged 1 commit into
mainfrom
release/0.3.0
Aug 3, 2026
Merged

release: 0.3.0#17
hanslemm merged 1 commit into
mainfrom
release/0.3.0

Conversation

@hanslemm

@hanslemm hanslemm commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Cuts 0.3.0 — the release that makes advise available. 182 commits and five development
batches have landed on main since v0.2.0, all of it invisible to anyone who pip installs
the package.

  • __version__0.3.0
  • ## [Unreleased]## [0.3.0] - 2026-08-03

The changelog section is rewritten, not just retitled. It had accumulated across five
batches and read as a diff against unreleased intermediate states — "ADV001 now requires…",
"ADV003 no longer proposes…" — which says nothing to someone meeting advise for the first
time here. More importantly the whole ### Fixed section described bugs in code that has never
shipped, which implies users hit them. Four of its ten entries weren't fixes at all but features
(--dry-run, connection resolution, the optional extras, cursor/COPY unwrapping), and two were
internal test infrastructure that belongs in git history.

Fixed is therefore gone, with a one-line note explaining that a first release has no
previously-released behaviour to fix. Its features moved to Added, and the two shipped
behaviours worth keeping — the --ddl line-boundary guarantee and ADV004's coverage disclosure —
are now stated as properties of what ships rather than as repairs.

A Known limitations section carries what a user most needs at install time: Redshift's
introspection SQL has never been executed against a live cluster, precisely what is verified
(connection path against a real server, every statement syntax-checked and proven bindable), and
the invitation to check it with --dry-run before pointing it at production.

Two accuracy fixes found while editing: the reconciliation bullet said "the eight rules" when
there are now sixteen across three families, and described only Postgres's prefix collapse —
Redshift's strategy collapse (DISTSTYLE ALL withholding DISTKEY, so an operator doesn't run
one hours-long rewrite and then a second undoing it) was undocumented. And
co_occurring_fingerprints, a public --json field, survived only inside a bullet whose delta
framing I dropped, so it is now stated on its own terms.

Version choice: minor, not major. advise is a new command; the existing complexity, lint,
perf and check surfaces are unchanged.

After merge I'll push the bare-semver tag 0.3.0 — not v0.3.0 — which triggers release.yml
to build, publish to PyPI via trusted publishing, and create the GitHub release.

Verification

  • 980 passed, 23 deselected — zero skips
  • 23 passed integration against live postgres:16
  • ruff check, ruff format --check, mypy src/sqlquality clean
  • sqlquality --version reports 0.3.0

Bumps __version__ and dates the changelog section.

The changelog section is rewritten rather than merely retitled. It had accumulated
across five development batches and was written as a diff against unreleased
intermediate states: bullets said "ADV001 *now* requires…" and "ADV003 *no longer*
proposes…", which is meaningless to someone meeting `advise` for the first time in
this release, and the whole `### Fixed` section described bugs in code that has
never shipped — implying users experienced them. Four of its entries were not fixes
at all but features (`--dry-run`, connection resolution, the extras, cursor and
COPY unwrapping), and two were internal test infrastructure.

So: `Fixed` is gone, with a one-line note saying why, since a first release of a
command has no previously-released behaviour to fix. Its features moved to `Added`.
The two shipped behaviours worth keeping from it — the `--ddl` line-boundary
guarantee and ADV004's coverage disclosure — are stated as properties of what
ships rather than as repairs. A `Known limitations` section now carries the thing a
user most needs at install time: Redshift's introspection SQL has never run against
a live cluster, what *is* verified, and the invitation to check it with `--dry-run`.

Two accuracy fixes while there: the reconciliation bullet said "the eight rules"
when there are now sixteen across three families, and it described only Postgres's
prefix collapse — Redshift's strategy collapse (DISTSTYLE ALL withholding DISTKEY)
was undocumented. And the `co_occurring_fingerprints` evidence key, a public
`--json` field, was only mentioned in a bullet whose delta framing I dropped, so it
is now stated on its own terms.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@hanslemm
hanslemm merged commit 6323b5a into main Aug 3, 2026
7 checks passed
@hanslemm
hanslemm deleted the release/0.3.0 branch August 3, 2026 13:48
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.

1 participant