Skip to content

Commit ec00544

Browse files
chore: bump rustnetconf 0.13.0 + rustnetconf-cli 0.3.4 (#39)
Release the vendor-profile work from #37 and #38: - rustnetconf 0.12.3 -> 0.13.0 (new Client/Session::unwrap_config + vendor_profile_arc APIs; DeviceConfig.vendor Box->Arc) - rustnetconf-cli 0.3.3 -> 0.3.4 (vendor-aware plan/apply diffs) Bump internal version reqs in cli and yang crates to 0.13; document in README What's New. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent bc80d7c commit ec00544

5 files changed

Lines changed: 18 additions & 9 deletions

File tree

Cargo.lock

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

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ resolver = "2"
44

55
[package]
66
name = "rustnetconf"
7-
version = "0.12.3"
7+
version = "0.13.0"
88
edition = "2021"
99
authors = ["fastrevmd-lab"]
1010
description = "An async-first NETCONF 1.0/1.1 client library for Rust"

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ Async NETCONF client library, YANG code generation, vendor profiles, connection
2424

2525
Built on [tokio](https://tokio.rs), [russh](https://crates.io/crates/russh), and [rustls](https://crates.io/crates/rustls) — pure Rust, no OpenSSL, no libssh2.
2626

27-
> **Latest release — [v0.12.3](https://github.com/fastrevmd-lab/rustnetconf/releases/tag/v0.12.3)** (parser correctness patch).
28-
> Now on crates.io: `rustnetconf` 0.12.3 · `rustnetconf-cli` 0.3.3 · `rustnetconf-yang` 0.1.4.
29-
> See [What's New in v0.12.3](#whats-new-in-v0123) below for five XML parser fixes from a full code review.
27+
> **Latest release — [v0.13.0](https://github.com/fastrevmd-lab/rustnetconf/releases/tag/v0.13.0)** (vendor-profile plumbing).
28+
> Now on crates.io: `rustnetconf` 0.13.0 · `rustnetconf-cli` 0.3.4 · `rustnetconf-yang` 0.1.4.
29+
> See [What's New in v0.13.0](#whats-new-in-v0130) below for the pool vendor-override fix and vendor-aware CLI diffs.
3030
3131
## Workspace
3232

@@ -36,6 +36,15 @@ Built on [tokio](https://tokio.rs), [russh](https://crates.io/crates/russh), and
3636
| **rustnetconf-yang** | YANG model code generation (compile-time config validation) |
3737
| **rustnetconf-cli** | Terraform-like CLI tool (`netconf` binary) |
3838

39+
## What's New in v0.13.0
40+
41+
Vendor-profile plumbing for `rustnetconf` (0.13.0) and `rustnetconf-cli` (0.3.4), from a project review (PRs #37, #38). `rustnetconf-yang` is unchanged at 0.1.4.
42+
43+
- **`DevicePool` honors an explicit vendor profile.** `DeviceConfig.vendor` is now wired into connection setup — previously it was silently ignored. The field changed from `Box<dyn VendorProfile>` to `Arc<dyn VendorProfile>`; new `ClientBuilder::vendor_profile_arc()` and `Session::set_vendor_profile_arc()` support the shared-ownership path. The existing `vendor_profile(Box<…>)` API is unchanged.
44+
- **New `Client::unwrap_config()`** (and `Session::unwrap_config()`) exposes the connected device's vendor `unwrap_config` — additive public API.
45+
- **Vendor-aware CLI diffs.** `netconf plan`/`apply` now normalize the desired config through the connected device's vendor profile instead of a hardcoded `<configuration>` strip. This fixes an asymmetric, potentially wrong diff against generic (non-Junos) devices; Junos behavior is unchanged.
46+
- Internally, `VendorProfile::post_facts_hook` takes `&self` (with `JunosVendor` cluster state moved to interior mutability) so profiles work under `Arc`.
47+
3948
## What's New in v0.12.3
4049

4150
Parser correctness patch for `rustnetconf` (0.12.3) and `rustnetconf-cli` (0.3.3), from a full code review (closes #33 via PR #34). No API changes; `rustnetconf-yang` is unchanged at 0.1.4.

rustnetconf-cli/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rustnetconf-cli"
3-
version = "0.3.3"
3+
version = "0.3.4"
44
edition = "2021"
55
authors = ["fastrevmd-lab"]
66
description = "Terraform-like CLI for declarative NETCONF network config management"
@@ -13,7 +13,7 @@ name = "netconf"
1313
path = "src/main.rs"
1414

1515
[dependencies]
16-
rustnetconf = { version = "0.12", path = ".." }
16+
rustnetconf = { version = "0.13", path = ".." }
1717
clap = { version = "4", features = ["derive"] }
1818
colored = "3"
1919
toml = "0.8"

rustnetconf-yang/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ categories = ["network-programming"]
1313
generated = []
1414

1515
[dependencies]
16-
rustnetconf = { version = "0.12", path = ".." }
16+
rustnetconf = { version = "0.13", path = ".." }
1717
serde = { version = "1", features = ["derive"] }
1818
quick-xml = "0.41"
1919
thiserror = "2"

0 commit comments

Comments
 (0)