Skip to content

[MIGRATION]: Update scaffold generator for Rust-native CPEX 0.2 plugins #120

Description

@lucarlig

Summary

Update the plugin scaffold generator so new managed plugins can be generated in the Rust-native CPEX 0.2 shape.

Parent epic:

Blocked By

This depends on the CPEX 0.2 Rust plugin contract being stable enough to scaffold against:

Scope

  • Update tools/scaffold_plugin.py for the Rust-native CPEX 0.2 plugin layout.
  • Stop generating PyO3 exports for Rust-native plugins.
  • Stop generating maturin/pyproject.toml packaging for Rust-native plugins.
  • Stop generating Python package modules and Python entry points for Rust-native plugins.
  • Generate Cargo metadata suitable for crates.io publishing.
  • Generate CPEX 0.2-compatible manifest/config files once the contract is known.
  • Generate Rust unit tests and Rust-native CPEX 0.2 integration test scaffolding.
  • Update scaffold validation so generated plugins pass repo checks.

Open Questions

  • Should the generator support both CPEX 0.1 Python-package and CPEX 0.2 Rust-native modes during transition?
  • What final directory layout should Rust-native plugins use?
  • What crate naming convention should generated plugins use for crates.io?
  • What minimum CPEX 0.2 version should generated plugins target?

Acceptance Criteria

  • The scaffold generator can create a Rust-native CPEX 0.2 plugin.
  • Generated Rust-native plugins do not include Python modules, PyO3 bindings, maturin config, or Python entry points.
  • Generated Cargo metadata is ready for crates.io publishing.
  • Generated tests compile and run under the Rust-native plugin path.
  • Repo validation covers the Rust-native generated layout.
  • Documentation/help text reflects the new scaffold mode and transition behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    rustPull requests that update rust codetriage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions