-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expose manifest.rs as a standalone crate #4614
Comments
Sounds like a good idea to me! |
cc @joshtriplett, is this the toml crate you were talking about in the cargo meeting today or is that different? |
@carols10cents This is different, but also very useful. I'd love to have this available for all sorts of metabuild scripts that want to parse |
bump... just wondering if this is on any todo list... |
We've now closed #12801 by providing cargo_util_schemas::manifest::TomlManifest. This does not do any high level processing, like inheriting from a workspace, reading defaults, or complex validation. This Issue is remaining open for that work. The challenge is a lot of that logic is more tightly coupled to the internals of cargo (see #12801 for how much work it was just to do serde types). Personally, I don't see this Issue being resolved but I'm open to being surprised. |
ProblemWe have There are multi-layer needs people like to see in a
For the latter two needs, they are too coupled to the entire Cargo internals, not something easy to expose. For the first two, it seems like a fairly limited scope "normalized" version of ConcernsHere are necessary works for breaking out a crate to provide the "normalized" manifest.
PlanI don't really have a concrete plan. Here is just a rough ideas in my mind.
|
For most people, they just need a normalized form and In less common cases, they need the low level details and So what use cases are left that we are aiming for? This is important for us to know to evaluate how worthwhile this is in the first place, how much to compromise cargo development for this, etc. I know crates.io is in a weird middle ground. They need a normalized form but aren't in an environment to run |
The manifest.rs has the structs and enums that define most of the Cargo.toml
That could be really helpful for other build/dev tools like cargo-make
For now, I also have internally mapped the relevant items in an internal data structs and enums, but would be happier if I would have just had a standard crate to use to pull those definitions from (naturally with serde support).
The manifest.rs seems like exactly the thing I was looking for but I would prefer a standalone lightweight crate only holding definitions instead of depending on entire cargo crate.
It would also help making your codebase more modular and reusable.
The text was updated successfully, but these errors were encountered: