feat: alkcall 0.9.0 adoption — bump to 0.7.0
The stub-sweep release changes no type alktty touches: the four
implemented stubs, the register_openable Pub-typed refusal (alktty's
op is Sub-typed), the register_imported Result return, and the removed
RelayError::PubTypedOpen are all surfaces alktty never exercises.
- alkcall requirement 0.8.1 -> 0.9.0; lockfile follows
- alktty 0.6.0 -> 0.7.0 (minor: raising the minimum alkcall requirement
is ecosystem-coordination breaking on a 0.x crate)
- one test fix: `establisher_ok_on_valid_params` formatted a
Result<Establishment, _> with {:?} — Establishment no longer derives
Debug in alkcall 0.9.0; the assert now branches on Err and formats
only the error
Verification: 113 default / 156 all-features tests, clippy
--all-targets -D warnings, fmt --check, cargo doc, fuzz corpus replay
(9 tests / 340 seeds), wasm32-unknown-unknown check + clippy,
publish --dry-run — all pass.
This commit is contained in:
1 parent
3855bb1c99
commit
626f684778
6 files changed
+55
-15
No files matched your search
@@ -320,9 +320,12 @@ release and after touching `src/wire.rs`, `src/negotiation.rs`,
|
|||||||
`BiStream`, `BidiStreamSource`, `AuthContext`, `Identity`,
|
`BiStream`, `BidiStreamSource`, `AuthContext`, `Identity`,
|
||||||
`IdentityProvider`, `AccessControl`, `OwnershipProvider`,
|
`IdentityProvider`, `AccessControl`, `OwnershipProvider`,
|
||||||
`OwnershipStore`, `InMemoryOwnershipStore`, `HandlerError`,
|
`OwnershipStore`, `InMemoryOwnershipStore`, `HandlerError`,
|
||||||
`StreamError`) come from `alkcall::core`. alkcall is v0.8.x —
|
`StreamError`) come from `alkcall::core`. alkcall is v0.9.x —
|
||||||
breaking changes are expected at this major-zero stage; this is the
|
breaking changes are expected at this major-zero stage; this is the
|
||||||
first real consumer, so we find and fix issues upstream rather than
|
first real consumer, so we find and fix issues upstream rather than
|
||||||
working around them. Pin `alkcall = "0.8.1"` (0.8.1 fixes the
|
working around them. Pin `alkcall = "0.9.0"` (0.9.0 is the stub-sweep
|
||||||
duplicate adopt/open channel-state destruction found by alkcall's
|
release: the marked-pub open contract, `channel/control`,
|
||||||
fuzz campaign) and bump deliberately.
|
`channel/resources/subscribe`, and `op/register` forward-through are
|
||||||
|
real implementations; `register_openable*` now refuses `Pub`-typed
|
||||||
|
specs — alktty's op is `Sub`-typed and unaffected) and bump
|
||||||
|
deliberately.
|
||||||
@@ -4,6 +4,40 @@ All notable changes to this crate are documented here. The format is
|
|||||||
based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
||||||
this crate adheres to [Semantic Versioning](https://semver.org/).
|
this crate adheres to [Semantic Versioning](https://semver.org/).
|
||||||
|
|
||||||
|
## [0.7.0] - 2026-10-14
|
||||||
|
|
||||||
|
The alkcall 0.9.0 adoption: a dependency bump only — no source change
|
||||||
|
in alktty. alkcall 0.9.0 is the stub-sweep release (the marked-pub open
|
||||||
|
contract, `channel/control`, `channel/resources/subscribe`, and
|
||||||
|
`op/register` forward-through are real implementations). All of
|
||||||
|
alkcall's semver-relevant changes (`ManagerError::InvalidAdopt`, the
|
||||||
|
`RelayError::PubTypedOpen` removal, the `register_imported`
|
||||||
|
`Result` return, `Establishment` losing `Debug`, the new
|
||||||
|
`register_openable*` refusal of `Pub`-typed specs) touch surfacing
|
||||||
|
alktty never uses — alktty's open op is `Sub`-typed and it only
|
||||||
|
constructs `Establishment` (whose `new` is unchanged). The wire format,
|
||||||
|
the direct-ALPN path, the `TtyBackend` trait, and alktty's public API
|
||||||
|
surface are unchanged.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- **BREAKING (ecosystem-coordination) — `alkcall` bumped to 0.9.0.**
|
||||||
|
alkcall 0.9.0 changed no type that alktty touches: the open-op
|
||||||
|
machinery alktty registers through (`ChannelCore`/
|
||||||
|
`register_openable_with_establisher`/`OpenEstablisher`/`OpenHandler`
|
||||||
|
/`Establishment`/`ChannelPlan`, `ChannelClient::open_channel`,
|
||||||
|
`ChannelOpenError::CallFailed`) is shape-identical to 0.8.1 — the
|
||||||
|
four stub implementations are net-new surfaces on ops alktty does
|
||||||
|
not exercise, the established-wrapper refusal of `Pub`-typed specs
|
||||||
|
does not apply to alktty's `Sub`-typed open op, and the removed
|
||||||
|
`RelayError::PubTypedOpen` was never referenced. alktty's public
|
||||||
|
signatures reference alkcall types, so downstream crates must now
|
||||||
|
unify on alkcall 0.9.0. Minor bump per the 0.x
|
||||||
|
ecosystem-coordination rule (raising the minimum requirement is
|
||||||
|
breaking — hence 0.7.0, not a patch release).
|
||||||
|
- **`alkcall` requirement updated to `0.9.0`; lockfile bumped from
|
||||||
|
0.8.1 to 0.9.0.**
|
||||||
|
|
||||||
## [0.6.0] - 2026-09-28
|
## [0.6.0] - 2026-09-28
|
||||||
|
|
||||||
The fuzzing adoption: a cargo-fuzz workspace over the four wire-facing
|
The fuzzing adoption: a cargo-fuzz workspace over the four wire-facing
|
||||||
@@ -405,6 +439,7 @@ alknet mono-repo.
|
|||||||
the client→backend pump is aborted at session end instead of
|
the client→backend pump is aborted at session end instead of
|
||||||
lingering until the client disconnects.
|
lingering until the client disconnects.
|
||||||
|
|
||||||
|
[0.7.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.7.0
|
||||||
[0.6.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.6.0
|
[0.6.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.6.0
|
||||||
[0.5.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.5.0
|
[0.5.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.5.0
|
||||||
[0.4.1]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.4.1
|
[0.4.1]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.4.1
|
||||||
|
|||||||
Generated
+3
-3
@@ -27,9 +27,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "alkcall"
|
name = "alkcall"
|
||||||
version = "0.8.1"
|
version = "0.9.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bf6af1e4af1460480849adf959c972d65deeafc36f4101064ced1ce6d1adfd5b"
|
checksum = "a3562f1f7b348cdeb3d9181eaf57b0a2fb3f988d4280e8e225dadfd7f763cb84"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
@@ -48,7 +48,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "alktty"
|
name = "alktty"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alkcall",
|
"alkcall",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "alktty"
|
name = "alktty"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.88"
|
rust-version = "1.88"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
@@ -29,7 +29,7 @@ default = []
|
|||||||
local = ["dep:portable-pty", "dep:tokio-util", "tokio/process", "tokio/rt-multi-thread"]
|
local = ["dep:portable-pty", "dep:tokio-util", "tokio/process", "tokio/rt-multi-thread"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
alkcall = "0.8.1"
|
alkcall = "0.9.0"
|
||||||
# Minimal, wasm-clean tokio features. `local` adds `process` +
|
# Minimal, wasm-clean tokio features. `local` adds `process` +
|
||||||
# `rt-multi-thread` (non-wasm). Do NOT use `features = ["full"]` — it
|
# `rt-multi-thread` (non-wasm). Do NOT use `features = ["full"]` — it
|
||||||
# pulls in `signal`/`fs`/`net` which break `wasm32-unknown-unknown`.
|
# pulls in `signal`/`fs`/`net` which break `wasm32-unknown-unknown`.
|
||||||
|
|||||||
Generated
+3
-3
@@ -27,9 +27,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "alkcall"
|
name = "alkcall"
|
||||||
version = "0.8.1"
|
version = "0.9.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bf6af1e4af1460480849adf959c972d65deeafc36f4101064ced1ce6d1adfd5b"
|
checksum = "a3562f1f7b348cdeb3d9181eaf57b0a2fb3f988d4280e8e225dadfd7f763cb84"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
@@ -48,7 +48,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "alktty"
|
name = "alktty"
|
||||||
version = "0.5.0"
|
version = "0.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alkcall",
|
"alkcall",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|||||||
+3
-1
@@ -588,7 +588,9 @@ mod tests {
|
|||||||
json!({ "carriage": "raw", "backend": "mock", "cmd": ["true"] }),
|
json!({ "carriage": "raw", "backend": "mock", "cmd": ["true"] }),
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
assert!(result.is_ok(), "valid params establish, got {result:?}");
|
if let Err(e) = result {
|
||||||
|
panic!("valid params establish, got {e:?}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
|
|||||||
Reference in new issue
Block a user