Promote nu_plugin_charton 0.9.0 to the CI build farm (workspace crate via cargo_package)
Stacked on #117: the base is the backlog branch because the backlog status change for this plugin lives there.
Why cargo_package exists
wangjiawen2013/charton is a Cargo workspace whose root package is the charton library; the Nushell plugin is a workspace member crate (nu_plugin_charton). The build workflow only ever built a repo's default package, so this plugin was unbuildable in the farm as it stood. The new optional cargo_package manifest field names the crate to build: validate_manifest.py validates it, the setup job carries it into the build matrix, and the cargo step adds --package from that env value when present. Entries that omit it build exactly as before. Tests cover both the validator and the workflow plumbing.
Promotion
- manifest.json: nu_plugin_charton 0.9.0, tag v0.9.0 at c36e794a3c5b03c53b033352b432daf0ad80e962, Nu >=0.116.0 <0.117.0 (the crate pins nu-plugin =0.116), x86_64-apple-darwin excluded per the Intel Mac EOL convention.
- docs/backlog.json: ELIGIBLE to INTAKE_PENDING with the promotion note.
- README pending-first-build list and roadmap plugin count (34) updated.
Gates verified locally
- Tag to commit: validate_manifest.py --only nu_plugin_charton --verify-upstream passes.
- cargo build --release --locked -p nu_plugin_charton succeeds on Linux x86_64.
- Nu 0.116.1 smoke against the locally built binary: plugin registers, 19 charton commands are exposed, and a bar chart over sample data renders a valid SVG.
- Repo checks pass: format_json, check_repo_consistency, check_workflows, and the full scripts unit suite.
Next after merge: dispatch build-plugins with only=nu_plugin_charton, then hand the emitted spec to numan-registry for intake and lifecycle-prove.
Summary by cubic
Promotes nu_plugin_charton 0.9.0 from wangjiawen2013/charton to the CI build farm, and adds an optional cargo_package manifest field so the build workflow can compile workspace-member plugin crates when the repo's default package is something else.
Why cargo_package exists
- The charton repo is a Cargo workspace whose root is the
chartonlibrary; the plugin is a member crate (nu_plugin_charton), which the workflow previously couldn't build. - New optional field names the crate to build;
validate_manifest.pyvalidates it, the setup job carries it into the matrix, and the build adds--packagefrom the env value when present. - Entries that omit it build exactly as before; tests cover the validator and workflow plumbing.
Promotion
manifest.jsongains thenu_plugin_charton0.9.0 entry (tagv0.9.0, Nu>=0.116.0 <0.117.0, Intel Mac excluded).docs/backlog.jsonmoves the entry fromELIGIBLEtoINTAKE_PENDING; README and roadmap plugin count updated.- Tag-to-commit check, locked build on Linux x86_64, Nu 0.116.1 smoke test, and repo checks all pass locally.