Expand description
§Module:: willbe
Utility to publish multi-crate and multi-workspace environments and maintain their consistency.
§Basic use-case
-
Multi-Workspace Consistency: In a project setup involving multiple workspaces with shared dependencies,
willbemaintains consistency. It ensures all workspaces are updated with compatible dependency versions. -
Publishing Multi-Crate Projects: If your project structure includes multiple crates that need simultaneous publishing,
willbemanages the process seamlessly. It ensures the crates are published in the right order while staying in version sync. -
Dependency Analysis:
willbecan perform a thorough analysis of your project’s dependencies, providing a detailed highlight of inconsistencies or areas that need attention. -
Test Execution With Varied Configurations:
willbecan execute tests with varying configurations, such as different combinations of crate features. This assists in ensuring comprehensive coverage of test scenarios. -
Generate Health Table: Quickly visualize important project metrics like build status for each crate, creating a single, easy-to-read table.
-
Automating CI/CD Workflow Generation: Automatically generate a series of CI/CD operations suitable for the task at hand to enhance productivity and improve the development process.
use willbe::*;
fn main() -> Result< (), wtools::error::for_app::Error >
{
Ok( willbe::run()? )
}§To add to your project
cargo add willbe
§Try out from the repository
git clone https://github.com/Wandalen/wTools
cd wTools
cargo run --package willbe
Modules§
- Describes functions that can be called from an interface.
- Interaction module with the
cargoutilities. - Rust toolchain channel: stable/nightly.
- Describes CLI commands.
- Entities of which spaces consists of.
- Exposed namespace of the module.
- Operation with features
- Operate over files.
- Git interaction module that enables seamless integration and management of version control workflows.
- Tools for working with dependencies graph.
- To manipulate manifest data.
- Orphan namespace of the module.
- Offers capabilities for package management, facilitating the handling and organization of packages.
- Provides a set of functionalities for handling and manipulating packages.
- Handles operations related to packed Rust crates
- Work with paths.
- Prelude to use essentials:
use my_module::prelude::*. - Run external processes.
- Protected namespace of the module.
- The parse function parses an input string into a HashMap where the keys are String and the values are of type Value.
- Make sha-1 hash for data.
- Traits and structs for templates.
- Operations with tests
- Genera-purpose tools which might be moved out one day.
- Tools for parsing and extracting information from url.
- Provides an opportunity to work with versions.
- It features the ability to interact with workspaces, manage their participants, and other functionalities.
- Micro wtools
Structs§
- Path to crate directory
- Hold manifest data.
- Stores information about current workspace.
Functions§
- Create deploy from template.
- Generate header. Generates header to main Readme.md file.
- Takes the command line arguments and perform associated function(s). If no arguments are provided, the function identifies this as an ambiguous state and prompts the user with a help message, suggesting possible commands they might want to execute. It then terminates the program with an exit code of 1 to indicate an error due to the lack of input.
- run tests in specified crate run tests in specified crate
- List packages.
- Generate workflows for modules in .github/workflows directory.
- List packages.
- Creates workspace template