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
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [2.0.0] - 2026-09-18

### Added

- **`ConnectorBuilder::owns_scheme` — a connector may declare that it must be the
Expand Down Expand Up @@ -971,7 +973,8 @@ This is an early release. Please report issues, suggest features, or contribute

---

[Unreleased]: https://github.com/aimdb-dev/aimdb/compare/v1.1.0...HEAD
[Unreleased]: https://github.com/aimdb-dev/aimdb/compare/v2.0.0...HEAD
[2.0.0]: https://github.com/aimdb-dev/aimdb/compare/v1.1.0...v2.0.0
[1.1.0]: https://github.com/aimdb-dev/aimdb/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/aimdb-dev/aimdb/compare/v0.5.0...v1.0.0
[0.5.0]: https://github.com/aimdb-dev/aimdb/compare/v0.4.0...v0.5.0
Expand Down
53 changes: 22 additions & 31 deletions Cargo.lock

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

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ default-members = ["aimdb-core"]
debug = 2

[workspace.package]
version = "1.1.0"
version = "2.0.0"
edition = "2021"
# The compiler we build and test with, and so the only one we can honestly
# promise consumers. Bump it together with rust-toolchain.toml.
Expand Down
43 changes: 33 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ help:
@printf " security Run all security checks (deny + audit)\n"
@printf "\n"
@printf " $(YELLOW)Release Management:$(NC)\n"
@printf " publish-check Test crates.io publish (dry-run, no git commit required)\n"
@printf " publish-check Dry-run the full publish set (no git commit required)\n"
@printf " publish Publish all crates to crates.io (requires clean git state)\n"
@printf "\n"
@printf " $(YELLOW)WASM Commands:$(NC)\n"
Expand Down Expand Up @@ -626,18 +626,26 @@ security: deny audit
@printf "$(BLUE)✓ Known vulnerabilities checked$(NC)\n"

## Release Management commands
# Dry-runs the whole publish set, not one crate. Passing every package to a
# single `cargo publish` invocation lets Cargo resolve the workspace's internal
# `path` + `version` deps against the siblings being packaged alongside them, so
# a not-yet-published `aimdb-core 2.0.0` no longer fails the check — that needs
# Cargo >= 1.83, and the toolchain is pinned well above it.
#
# Two phases because `--no-verify` is per-invocation, not per-package:
# 1. package every crate (manifest, metadata, file list, version resolution)
# 2. verification-build the ones that compile on the host
publish-check:
@printf "$(GREEN)Testing crates.io publish readiness...$(NC)\n"
@printf "$(YELLOW)Note: cargo package requires dependencies to exist on crates.io.$(NC)\n"
@printf "$(YELLOW) Only aimdb-derive (no deps) will fully validate before first publish.$(NC)\n"
@printf "$(YELLOW) This is expected behavior - actual publish will work in order.$(NC)\n"
@printf "$(GREEN)Testing crates.io publish readiness ($(words $(PUBLISH_ORDER)) crates)...$(NC)\n"
@printf "\n"
@printf "$(YELLOW) → Phase 1/2: packaging all $(words $(PUBLISH_ORDER)) crates (cross-resolved)$(NC)\n"
@cargo publish --dry-run --no-verify $(foreach p,$(PUBLISH_ORDER),-p $(p))
@printf "\n"
@printf "$(YELLOW) → Testing aimdb-derive (full validation)$(NC)\n"
@cargo publish --dry-run -p aimdb-derive
@printf "$(GREEN)✓ aimdb-derive is ready to publish!$(NC)\n"
@printf "$(YELLOW) → Phase 2/2: verification builds ($(words $(PUBLISH_VERIFIABLE)) crates)$(NC)\n"
@cargo publish --dry-run $(foreach p,$(PUBLISH_VERIFIABLE),-p $(p))
@printf "\n"
@printf "$(BLUE)ℹ Other crates cannot be fully validated until dependencies are published.$(NC)\n"
@printf "$(BLUE) Run 'make publish' to publish all crates in dependency order.$(NC)\n"
@printf "$(GREEN)✓ All $(words $(PUBLISH_ORDER)) crates are ready to publish!$(NC)\n"
@printf "$(BLUE)ℹ $(PUBLISH_HOST_UNBUILDABLE) was packaged but not verification-built (wasm32-only).$(NC)\n"

# Topological publish order over normal + build dependencies (issue #242).
# Verified against `cargo metadata`: every crate is listed after everything it
Expand Down Expand Up @@ -666,6 +674,21 @@ PUBLISH_ORDER := \
aimdb-cli \
aimdb-mcp

# Crates `publish-check`'s verification phase leaves out, because
# `cargo publish` verifies on the host and these cannot build there.
#
# `aimdb-wasm-adapter`'s default `wasm-runtime` feature is a deliberate
# `compile_error!` off wasm32 (its web-sys bridge futures are !Send), so the
# host verification build can never succeed. Nothing in the workspace depends on
# it, so phase 1 still packages it — manifest, metadata and version resolution
# stay covered — and only the build is skipped.
#
# Narrower than PUBLISH_NO_VERIFY below on purpose: `aimdb-embassy-adapter` does
# verify on the host, and skips verification at publish time for an unrelated
# reason (see there).
PUBLISH_HOST_UNBUILDABLE := aimdb-wasm-adapter
PUBLISH_VERIFIABLE := $(filter-out $(PUBLISH_HOST_UNBUILDABLE),$(PUBLISH_ORDER))

# Crates published without a verification build.
#
# `aimdb-embassy-adapter` needs embassy-sync's `poll_next_message` /
Expand Down
5 changes: 4 additions & 1 deletion aimdb-client/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.7.0] - 2026-09-18

### Changed

- **`tcp://` endpoint validation shares one grammar with the connector.**
Expand Down Expand Up @@ -122,7 +124,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

[Unreleased]: https://github.com/aimdb-dev/aimdb/compare/v0.6.0...HEAD
[Unreleased]: https://github.com/aimdb-dev/aimdb/compare/v2.0.0...HEAD
[0.7.0]: https://github.com/aimdb-dev/aimdb/compare/v1.1.0...v2.0.0
[0.6.0]: https://github.com/aimdb-dev/aimdb/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/aimdb-dev/aimdb/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/aimdb-dev/aimdb/compare/v0.3.0...v0.4.0
Expand Down
6 changes: 3 additions & 3 deletions aimdb-client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "aimdb-client"
version = "0.6.0"
version = "0.7.0"
edition = "2021"
rust-version.workspace = true
license.workspace = true
Expand All @@ -26,7 +26,7 @@ transport-tcp = ["dep:aimdb-tcp-connector", "aimdb-tokio-adapter/net"]
# Core dependencies - protocol types from aimdb-core. `connector-session`
# exposes the shared session engine (`run_client`/`ClientHandle`) plus the AimX
# codec that the engine-based client (`crate::engine`) builds on.
aimdb-core = { version = "1.1.0", path = "../aimdb-core", features = [
aimdb-core = { version = "2.0.0", path = "../aimdb-core", features = [
"std",
"connector-session",
] }
Expand All @@ -50,7 +50,7 @@ tokio = { version = "1", features = ["net", "io-util", "macros", "fs"] }
futures = { version = "0.3", default-features = false, features = ["alloc"] }
# Supplies the `TimeOps` clock the engine-based client hands to `run_client`
# (reconnect backoff / keepalive). This client always drives the engine on tokio.
aimdb-tokio-adapter = { version = "0.6.0", path = "../aimdb-tokio-adapter" }
aimdb-tokio-adapter = { version = "0.7.0", path = "../aimdb-tokio-adapter" }

# Error handling
anyhow = "1"
Expand Down
Loading
Loading