Repository navigation
Commit ac39b2c
authored
feat: stabilize v0.3.0 public API bundle (#77)
* feat: stabilize v0.3.0 public API bundle
This commit aggregates the breaking and additive API changes that ship
together as v0.3.0. The individual PRs landed under chore: prefixes to
defer release-please from cutting an early version; this single feat:
commit with a BREAKING CHANGE: footer is the trigger for the v0.3.0
release PR.
Bundle contents (all merged to main):
- #70 (PR #71) — Flat public Error enum + ergonomic constructors
workspace-wide
- #69 (PR #73) — Transaction API consolidation (RAII guard recommended;
raw trio deprecated and #[doc(hidden)])
- #61 + #62
(PR #74) — FromRow modernization: #[derive(FromRow)] in new
hyperdb-api-derive crate, RowAccessor with cached
name->index lookup, breaking trait signature change,
blanket tuple impls deleted, #[hyperdb(rename)] and
#[hyperdb(index)] attributes
- #76 — Follow-ups A/B/C: typed io::Error sources in process.rs,
Error::InvalidOperation variant for caller misuse,
structured SQLSTATE on Cancelled/Closed/Connection
Follow-up D (flatten internal client::Error) deferred to v0.3.x as
issue #75 — internal-only, zero external consumers, larger than originally
scoped.
The code change in this commit is a small documentation refresh on the
crate-level rustdoc to (a) include hyperdb-api-derive in the companion
crates list and (b) fix a stale crate name (sea-query-hyper ->
sea-query-hyperdb). The body of the commit is the BREAKING CHANGE:
footer below; release-please uses it to generate the v0.3.0 entry in
CHANGELOG.md.
See MIGRATING-0.3.md for full migration recipes covering every breaking
change in the bundle.
BREAKING CHANGE: v0.3.0 reshapes the public hyperdb_api::Error enum
into a flat canonical structure (no Box<dyn StdError> cause channel,
no kind() method, no Other catch-all variant), and its constructor
surface (Error::new and Error::with_cause are deleted in favor of
domain-specific snake_case constructors). It also changes the FromRow
trait signature from fn from_row(row: &Row) to fn from_row(row:
RowAccessor<'_>), deletes the blanket 1/2/3/4-tuple FromRow impls,
deprecates Connection::begin_transaction/commit/rollback (use the RAII
guard at Connection::transaction() instead), introduces a new
Error::InvalidOperation variant, and changes Error::Cancelled and
Error::Closed from tuple to struct variants carrying structured
sqlstate. Every variant has a snake_case constructor; the FromRow
derive lives in a re-exported hyperdb-api-derive crate. See
MIGRATING-0.3.md for migration recipes.
* chore(ci): publish hyperdb-api-derive in release.yml + dry-run in ci.yml
Pre-release adversarial review of the v0.3.0 rollup CI/CD config caught
that hyperdb-api-derive (added in PR #74) was missing from release.yml's
publish-in-dependency-order step. hyperdb-api/Cargo.toml strictly pins
hyperdb-api-derive = "=0.X.Y", so cargo publish -p hyperdb-api would
fail at release time when crates.io can't resolve the strict version
of derive (because release.yml never published it).
Verified topologically:
- hyperdb-api-derive has zero workspace deps (only syn/quote/proc-macro2
from the registry), so it can publish before any workspace crate.
- It's a runtime dep of hyperdb-api only.
- Inserted right after hyperdb-api-salesforce; existing order otherwise
unchanged. Added a dependency-order comment to the publish step
explaining the topology so future contributors don't break it.
Also adds hyperdb-api-derive to ci.yml's publish dry-run job. The
dry-run job exists exactly to catch this class of bug before release
time. Without this addition, the same blocker could re-emerge after a
future major-version refactor of derive.
Updates the stale "7 workspace-member version rows" comment in
release-please.yml to reflect the current 8-member workspace
(hyperdb-api-derive added in #74). The lockfile-sync sentinel
enumerates members at runtime via cargo metadata, so the count is
informational; correctness is unchanged.
Verified locally:
- cargo publish -p hyperdb-api-derive --dry-run: succeeds
- cargo publish -p sea-query-hyperdb --dry-run: succeeds
- cargo publish -p hyperdb-bootstrap --dry-run: succeeds
- cargo metadata workspace topology check: order in release.yml is
consistent with non-dev deps across all 7 publishable crates.1 parent 4008b07 commit ac39b2c
4 files changed
Lines changed: 23 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
204 | | - | |
| 204 | + | |
205 | 205 | | |
206 | 206 | | |
207 | 207 | | |
| |||
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
226 | | - | |
227 | | - | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
228 | 229 | | |
229 | 230 | | |
230 | 231 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
123 | 123 | | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
128 | 129 | | |
129 | 130 | | |
130 | 131 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
210 | 220 | | |
| 221 | + | |
211 | 222 | | |
212 | 223 | | |
213 | 224 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
0 commit comments