Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

## [Unreleased]

## [0.3.0] - 2026-04-13

**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.

### Added
- 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))
- 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))
- Runnable hello-world examples in Rust and Python ([#38](https://github.com/dkdc-io/draw/pull/38))
- Integration tests for draw-core public API and arrow Binding round-trip ([#37](https://github.com/dkdc-io/draw/pull/37))
- CONTRIBUTING.md and README badges (Release, PyPI, crates.io, CI, License) ([#36](https://github.com/dkdc-io/draw/pull/36))
- Arrow snap-to-shape connection points (start_binding / end_binding) ([#35](https://github.com/dkdc-io/draw/pull/35))
- CHANGELOG.md following Keep a Changelog ([#39](https://github.com/dkdc-io/draw/pull/39))

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

### Migration notes for 0.2.1 → 0.3.0

`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:

- `geometry::normalize_bounds` → inline: `let (x, y, w, h) = (min(x1, x2), min(y1, y2), (x1 - x2).abs(), (y1 - y2).abs())`
- `geometry::compute_arrowhead` / `ArrowheadPoints` → no public alternative yet; open an issue if you need this — happy to carve out a stable shape for it.
- `geometry::generate_hachure_lines` / `HachureLine` → no public alternative yet; same as above.
- `Bounds::from_points` → construct via `Bounds::new(x, y, w, h)` from your own min/max reduction.

## [0.2.1] - 2026-04-07

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

[Unreleased]: https://github.com/dkdc-io/draw/compare/v0.2.1...HEAD
[Unreleased]: https://github.com/dkdc-io/draw/compare/v0.3.0...HEAD
[0.3.0]: https://github.com/dkdc-io/draw/compare/v0.2.1...v0.3.0
[0.2.1]: https://github.com/dkdc-io/draw/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/dkdc-io/draw/compare/v0.1.1...v0.2.0
[0.1.1]: https://github.com/dkdc-io/draw/compare/v0.1.0...v0.1.1
Expand Down
66 changes: 33 additions & 33 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions crates/draw-app/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "dkdc-draw-app"
version = "0.2.1"
version = "0.3.0"
edition = "2024"
authors = ["Cody <cody@dkdc.io>"]
description = "Desktop app for draw"
Expand All @@ -17,8 +17,8 @@ path = "src/lib.rs"
[dependencies]
anyhow = "1"
axum = "0.8"
dkdc-draw-core = { version = "0.2.1", path = "../draw-core" }
dkdc-draw-webapp = { version = "0.2.1", path = "../draw-webapp" }
dkdc-draw-core = { version = "0.3.0", path = "../draw-core" }
dkdc-draw-webapp = { version = "0.3.0", path = "../draw-webapp" }
tao = "0.35"

[target.'cfg(target_os = "macos")'.dependencies]
Expand Down
8 changes: 4 additions & 4 deletions crates/draw-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "dkdc-draw"
version = "0.2.1"
version = "0.3.0"
edition = "2024"
authors = ["Cody <cody@dkdc.io>"]
description = "Local-first drawing tool"
Expand All @@ -26,9 +26,9 @@ webapp = ["dep:dkdc-draw-webapp"]

[dependencies]
anyhow = "1"
dkdc-draw-core = { version = "0.2.1", path = "../draw-core" }
dkdc-draw-app = { version = "0.2.1", path = "../draw-app", optional = true }
dkdc-draw-webapp = { version = "0.2.1", path = "../draw-webapp", optional = true }
dkdc-draw-core = { version = "0.3.0", path = "../draw-core" }
dkdc-draw-app = { version = "0.3.0", path = "../draw-app", optional = true }
dkdc-draw-webapp = { version = "0.3.0", path = "../draw-webapp", optional = true }
clap = { version = "4.5", features = ["derive"] }

[lints]
Expand Down
2 changes: 1 addition & 1 deletion crates/draw-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "dkdc-draw-core"
version = "0.2.1"
version = "0.3.0"
edition = "2024"
authors = ["Cody <cody@dkdc.io>"]
description = "Core library for draw"
Expand Down
Loading
Loading