Skip to content

Commit 5bd13af

Browse files
fastrevmd-labclaude
andcommitted
docs: prioritize TODOS backlog post-v0.13.0; mark crates.io publish done
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent ec00544 commit 5bd13af

1 file changed

Lines changed: 34 additions & 6 deletions

File tree

TODOS.md

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
11
# TODOS — rustnetconf
22

3+
## Next priorities (as of 2026-07-17, post-v0.13.0)
4+
5+
Recommended order for upcoming work. Grounded in current state: v0.13.0 shipped;
6+
`DevicePool`, vendor profiles, TLS (RFC 7589), and notifications (RFC 5277) are all
7+
in place and published. Reorder to taste — this is an engineering recommendation, not
8+
a fixed roadmap.
9+
10+
**P1 — Multi-device orchestration (`--all`).** The single biggest product gap. The CLI
11+
is still one-device-per-invocation while the async `DevicePool` foundation sits unused
12+
by it — and v0.13.0 just made per-device vendor overrides work in the pool. This is
13+
"the product" per the backlog entry below. Needs its own design pass (concurrency
14+
limits, partial-failure semantics, aggregated diff/apply output). Start with
15+
`plan --all`, then `apply --all`.
16+
17+
**P2 — RFC 6470 Base Notifications.** Cheap now that the RFC 5277 notification stream
18+
landed — mostly typed structs + parsing over existing infrastructure. High
19+
value-to-effort ratio; good follow-on while the notification code is fresh.
20+
21+
**P3 — RFC 6022 `get-schema` / `netconf-state`.** Enables capability auto-discovery and
22+
feeds `rustnetconf-yang` (fetch a device's YANG modules directly). Strong synergy with
23+
the existing yang crate; testable against devices advertising `:monitor`.
24+
25+
**P4 — RFC 6243 with-defaults.** Improves get-config/diff fidelity (control over default
26+
values in responses). Self-contained, testable, moderate effort.
27+
28+
Deferred / opportunistic (unchanged priority): IOS-XE vendor profile (blocked on a
29+
Cisco test device), YAML config support (depends on yang maturity), RFC 5717
30+
partial-lock (niche multi-operator), RFC 8526 NMDA (forward-looking, larger), RFC 8071
31+
Call Home (complex SSH role-reversal), RFC 8040 RESTCONF (large; likely a separate
32+
crate).
33+
334
## Backlog
435

536
### YAML config file support (CLI v2.0)
@@ -99,12 +130,6 @@
99130
**Depends on:** VendorProfile trait (v0.2), access to a Cisco IOS-XE NETCONF device (CSR1000v or Cat8000v) for integration testing. Deferred from v0.2 — ship what we can test.
100131
**Added:** 2026-03-19 via /plan-eng-review
101132

102-
### Publish to crates.io
103-
**What:** Publish rustnetconf to crates.io for `cargo add rustnetconf` installation.
104-
**Why:** Makes the library discoverable and installable by the Rust ecosystem. Not blocking — library works as a git dependency today.
105-
**Depends on:** Finalize crates.io account setup
106-
**Added:** 2026-03-19
107-
108133
## v0.1 Implementation
109134

110135
### ~~TODO-001: Handle mid-RPC disconnect during commit (CommitUnknown error)~~ DONE
@@ -126,3 +151,6 @@ Also fixed `<error-info>` parsing to preserve child element XML (e.g., `<session
126151

127152
### ~~RFC 5277 — NETCONF Event Notifications~~ DONE
128153
**Completed:** 2026-07-17. Implemented `create-subscription` RPC and async notification stream handling (RFC 5277) in src/notification.rs. Session tracks subscription state and buffers interleaved notifications during RPC exchanges. Client methods: `create_subscription()`, `drain_notifications()`, `recv_notification()`.
154+
155+
### ~~Publish to crates.io~~ DONE
156+
**Completed:** 2026-07-17. All three crates published to crates.io — `rustnetconf` 0.13.0, `rustnetconf-cli` 0.3.4, `rustnetconf-yang` 0.1.4. Installable via `cargo add rustnetconf`. Release tagged `v0.13.0` with GitHub release notes.

0 commit comments

Comments
 (0)