Skip to content

Commit 3481579

Browse files
chore: release 0.3.0 (#44)
Bumps all Rust crates and the Python package from 0.2.1 to 0.3.0. This minor bump reflects one breaking change in the dkdc-draw-core public API surface (pub -> pub(crate) demotions in #42), accumulated with the non-breaking work from this cycle: - #35: arrow snap-to-shape connection points - #36: CONTRIBUTING.md + README badges - #37: integration tests for draw-core public API - #38: Rust + Python hello-world examples - #39: CHANGELOG.md scaffolding - #40: surgical clippy opt-ins workspace-wide - #41: sample gallery (5 drawings × json/svg/png) - #42: pub -> pub(crate) demotions (BREAKING) - #43: Python test coverage 5 -> 27 See CHANGELOG.md for the 0.3.0 section and migration notes for the demoted symbols. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 1e948b9 commit 3481579

11 files changed

Lines changed: 116 additions & 93 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66

77
## [Unreleased]
88

9+
## [0.3.0] - 2026-04-13
10+
11+
**Breaking**: the `dkdc-draw-core` public API surface is tightened. Unused `pub` items in the `geometry` module and `Bounds::from_points` are now `pub(crate)`. See migration notes at the end of this entry.
12+
913
### Added
14+
- Sample gallery: 5 canonical drawings exercising every element type and fill pattern, committed as `.draw.json` + `.svg` + `.png` under `examples/gallery/` ([#41](https://github.com/dkdc-io/draw/pull/41))
15+
- Python test coverage grown from 5 to 27 tests across `tests/test_core.py` and `tests/test_gallery_roundtrip.py` ([#43](https://github.com/dkdc-io/draw/pull/43))
1016
- Runnable hello-world examples in Rust and Python ([#38](https://github.com/dkdc-io/draw/pull/38))
1117
- Integration tests for draw-core public API and arrow Binding round-trip ([#37](https://github.com/dkdc-io/draw/pull/37))
1218
- CONTRIBUTING.md and README badges (Release, PyPI, crates.io, CI, License) ([#36](https://github.com/dkdc-io/draw/pull/36))
1319
- Arrow snap-to-shape connection points (start_binding / end_binding) ([#35](https://github.com/dkdc-io/draw/pull/35))
20+
- CHANGELOG.md following Keep a Changelog ([#39](https://github.com/dkdc-io/draw/pull/39))
1421

1522
### Changed
23+
- **Breaking**: demoted unused items in `dkdc-draw-core` from `pub` to `pub(crate)` ([#42](https://github.com/dkdc-io/draw/pull/42)):
24+
- `geometry::ARROWHEAD_LENGTH`, `ARROWHEAD_ANGLE`, `HACHURE_LINE_WIDTH`
25+
- `geometry::normalize_bounds`, `compute_arrowhead`, `generate_hachure_lines`
26+
- `geometry::ArrowheadPoints`, `HachureLine` (structs + fields)
27+
- `point::Bounds::from_points`
28+
- Adopted surgical clippy pedantic opt-ins workspace-wide; no behavior change ([#40](https://github.com/dkdc-io/draw/pull/40))
1629
- Codebase simplification pass + UX improvements ([#34](https://github.com/dkdc-io/draw/pull/34))
1730

31+
### Migration notes for 0.2.1 → 0.3.0
32+
33+
`Point::distance_to` and `Bounds::intersects` remain `pub` and are the recommended geometry primitives for external callers. If you were reaching into the demoted helpers directly, the intended replacements are:
34+
35+
- `geometry::normalize_bounds` → inline: `let (x, y, w, h) = (min(x1, x2), min(y1, y2), (x1 - x2).abs(), (y1 - y2).abs())`
36+
- `geometry::compute_arrowhead` / `ArrowheadPoints` → no public alternative yet; open an issue if you need this — happy to carve out a stable shape for it.
37+
- `geometry::generate_hachure_lines` / `HachureLine` → no public alternative yet; same as above.
38+
- `Bounds::from_points` → construct via `Bounds::new(x, y, w, h)` from your own min/max reduction.
39+
1840
## [0.2.1] - 2026-04-07
1941

2042
### Added
@@ -75,7 +97,8 @@ Initial release. Core drawing tool with CLI, webapp, and desktop app.
7597
- Skipped maturin build in CI ([#12](https://github.com/dkdc-io/draw/pull/12))
7698
- Missing `chrono` dependency on WASM crate ([#9](https://github.com/dkdc-io/draw/pull/9))
7799

78-
[Unreleased]: https://github.com/dkdc-io/draw/compare/v0.2.1...HEAD
100+
[Unreleased]: https://github.com/dkdc-io/draw/compare/v0.3.0...HEAD
101+
[0.3.0]: https://github.com/dkdc-io/draw/compare/v0.2.1...v0.3.0
79102
[0.2.1]: https://github.com/dkdc-io/draw/compare/v0.2.0...v0.2.1
80103
[0.2.0]: https://github.com/dkdc-io/draw/compare/v0.1.1...v0.2.0
81104
[0.1.1]: https://github.com/dkdc-io/draw/compare/v0.1.0...v0.1.1

Cargo.lock

Lines changed: 33 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/draw-app/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "dkdc-draw-app"
3-
version = "0.2.1"
3+
version = "0.3.0"
44
edition = "2024"
55
authors = ["Cody <cody@dkdc.io>"]
66
description = "Desktop app for draw"
@@ -17,8 +17,8 @@ path = "src/lib.rs"
1717
[dependencies]
1818
anyhow = "1"
1919
axum = "0.8"
20-
dkdc-draw-core = { version = "0.2.1", path = "../draw-core" }
21-
dkdc-draw-webapp = { version = "0.2.1", path = "../draw-webapp" }
20+
dkdc-draw-core = { version = "0.3.0", path = "../draw-core" }
21+
dkdc-draw-webapp = { version = "0.3.0", path = "../draw-webapp" }
2222
tao = "0.35"
2323

2424
[target.'cfg(target_os = "macos")'.dependencies]

crates/draw-cli/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "dkdc-draw"
3-
version = "0.2.1"
3+
version = "0.3.0"
44
edition = "2024"
55
authors = ["Cody <cody@dkdc.io>"]
66
description = "Local-first drawing tool"
@@ -26,9 +26,9 @@ webapp = ["dep:dkdc-draw-webapp"]
2626

2727
[dependencies]
2828
anyhow = "1"
29-
dkdc-draw-core = { version = "0.2.1", path = "../draw-core" }
30-
dkdc-draw-app = { version = "0.2.1", path = "../draw-app", optional = true }
31-
dkdc-draw-webapp = { version = "0.2.1", path = "../draw-webapp", optional = true }
29+
dkdc-draw-core = { version = "0.3.0", path = "../draw-core" }
30+
dkdc-draw-app = { version = "0.3.0", path = "../draw-app", optional = true }
31+
dkdc-draw-webapp = { version = "0.3.0", path = "../draw-webapp", optional = true }
3232
clap = { version = "4.5", features = ["derive"] }
3333

3434
[lints]

crates/draw-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "dkdc-draw-core"
3-
version = "0.2.1"
3+
version = "0.3.0"
44
edition = "2024"
55
authors = ["Cody <cody@dkdc.io>"]
66
description = "Core library for draw"

0 commit comments

Comments
 (0)