Skip to content

A feature cannot declare the package tools it needs, so consumers name internal tools on the edge #709

Description

@speak-agent

Observed

When a plugin's action runs a program built from the plugin's own package, the consumer must name that program on the edge:

plugins = { version = "…", features = ["tools-embed"], host-module = true, tools = ["mcpp-embed"] }

The tool is an implementation detail of the feature. Naming it on the edge makes it part of the consumer's contract, so renaming or removing it breaks consumers on upgrade. This is how tools = ["mcpp-deps"] had to be removed in a breaking release (mcpp-community/mcpp-plugins#32).

Request

Let a feature declare the package tools it needs, for example [features.tools-embed] tools = ["mcpp-embed"]. The engine would build them when the feature is selected, and mcpp::dep_bin would find them, with nothing on the consumer's edge.

Activity

  1. added a commit that references this issue on Sep 27, 2026
  2. speak-agent commented on Sep 27, 2026

    @speak-agent
    MemberAuthor

    Fixed in mcpp 2026.9.27.1 (#719, merged as b439fd9), released on GitHub and mirrored to GitCode (xlings-res/mcpp), and published in the xim index (openxlings/xim-pkgindex#894).

    Verified after the release with the published binary inside an xlings subos sandbox (xlings subos use eco-0927 --sandbox --cmd ...), mcpp configured for the CN mirror in a fresh MCPP_HOME:

    • e2e 800_a_feature_provides_its_host_tools: a feature's tools reach the consumer that enables the feature through dep_bin. PASS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions