You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.1 KiB
64 lines
2.1 KiB
//! cargo-workspace2 is a library to help manage cargo workspaces
|
|
//!
|
|
//! Out of the box the `cargo` workspace experience leaves a lot to be
|
|
//! desired. Managing a repo with many crates in it can get out of
|
|
//! hand quickly. Moreover, other tools that try to solve these
|
|
//! issues often pick _one_ particular usecase of cargo workspaces,
|
|
//! and enforce very strict rules on how to use them.
|
|
//!
|
|
//! This library aims to solve some of the issues of dealing with
|
|
//! workspaces in a way that doesn't enforce a usage mode for the
|
|
//! user.
|
|
//!
|
|
//! This package also publishes a binary (cargo ws2), which is
|
|
//! recommended for most users. In case the binary handles a use-case
|
|
//! you have in a way that you don't like, this library aims to
|
|
//! provide a fallback so that you don't have to re-implement
|
|
//! everything from scratch.
|
|
//!
|
|
//! ## Using this library
|
|
//!
|
|
//! Parsing happens in stages. First you need to use the
|
|
//! [`cargo`](./cargo/index.html) module to parse the actual
|
|
//! `Cargo.toml` files. After that you can use the cargo models in
|
|
//! [`models`](models/index.html) to further process dependencies, and
|
|
//! create a [`DepGraph`](models/struct.DepGraph.html) to resolve queries and make changes.
|
|
|
|
pub mod cargo;
|
|
pub mod models;
|
|
pub mod ops;
|
|
pub mod query;
|
|
|
|
#[doc(hidden)]
|
|
pub mod cli;
|
|
|
|
// extern crate toml;
|
|
// extern crate toml_edit;
|
|
|
|
// pub use data_models::graph;
|
|
// use data_models::level::Level;
|
|
// use graph::DepGraph;
|
|
// use std::fs::File;
|
|
// pub use utilities::cargo_utils;
|
|
// pub use utilities::utils;
|
|
|
|
// pub mod data_models;
|
|
// pub mod utilities;
|
|
|
|
// pub fn do_batch_release(f: File, lvl: &Level) -> DepGraph {
|
|
// let members = cargo_utils::get_members(f);
|
|
// let configs = cargo_utils::batch_load_configs(&members);
|
|
|
|
// let v = configs
|
|
// .iter()
|
|
// .map(|c| cargo_utils::parse_config(c, &members))
|
|
// .fold(DepGraph::new(), |mut graph, (name, deps)| {
|
|
// graph.add_node(name.clone());
|
|
|
|
// deps.iter()
|
|
// .fold(graph, |graph, dep| graph.add_dependency(&name, dep))
|
|
// });
|
|
|
|
// println!("{:#?}", v);
|
|
// v
|
|
// }
|
|
|