2 个版本
0.0.2 | 2023年12月29日 |
---|---|
0.0.1 | 2023年11月4日 |
#302 in 配置
1,413 每月下载量
58KB
543 行
XTasks
为使用 xtask 模式的 Rust 项目提供基本工具和任务,简化常见的构建和开发工作流程。
• 网站 • 文档 • 报告错误 • 请求功能 • 贡献指南
目录
概述
XTasks
是一个专为符合 xtask 模式的项目设计的 Rust 库,用于简化常见操作和任务。这个模式在 Rust 生态系统中很常见,用于在项目工作区中定义自定义构建、测试和部署脚本。
功能
1. 增强文件操作 (ops.rs
)
- 文件系统工具:提供文件复制和删除等常用文件系统操作。
- 全局模式文件删除:根据全局模式删除文件,帮助清理临时或生成的文件。
2. XTasks 库介绍 (lib.rs
)
- 使用 xtask 模式简化 Rust 项目的构建和开发工作流程。
3. 宏增强 (macros.rs
)
- 增强打印宏:重新定义了
println!
和print!
宏,用于格式化控制台输出。 - 断言宏:用于在代码中定义自定义宏,增强可读性和功能。
4. Cargo XTask 集成 (tasks.rs
)
- 简化开发工作流程:提供开发、测试和维护 Rust 项目的任务。
- 文档自动化:促进项目文档的自动生成。
- 持续集成支持:实现持续集成任务以确保代码质量和稳定性。
5. 二进制入口点 (main.rs
)
XTasks
二进制程序的中央入口点,整合了项目的各个组件。
6. Cargo 构建配置 (powerset.rs
)
- 幂集功能管理:管理 cargo 构建运行中的功能组合,允许指定功能组合的深度。
7. 依赖分析 (bloat.rs
)
- 分析依赖关系,以确定其对构建大小的影響,有助于构建优化。
8. CI 配置管理 (ci.rs
)
- 灵活的持续集成设置:配置持续集成运行的设置,包括编译器版本选择和 Clippy 代码检查选项。
9. 动态文档生成 (docs.rs
)
- 根据源代码更改自动生成和更新文档。
入门
以下说明将帮助您在本地机器上获取项目的副本并运行,以进行开发和测试。
先决条件
您需要在您的系统上安装 Rust 和 Cargo。如果您还没有安装,您可以从官方 Rust 网站安装它们。
安装
要使用 XTasks
,将其添加到您的 Cargo.toml
文件中的依赖项。
[dependencies]
xtasks = "0.0.2"
然后,在您的 lib.rs
或 main.rs
文件中添加
extern crate xtasks;
使用
您可以使用 XTasks
简化和标准化构建、测试和部署您的 Rust 项目的流程。有关更详细的用法示例,请参阅库的文档。
运行测试
要运行测试,请使用以下命令
cargo test
示例
本节提供了基本示例,以演示如何在 Rust 项目中使用 XTasks 的一些关键功能。
文件操作示例
使用 ops.rs
中的增强文件操作
// Assuming you've included the `xtasks` crate
use xtasks::file_operations;
fn main() {
// Copying a file
file_operations::copy("path/to/source.file", "path/to/destination.file").unwrap();
// Removing files based on a glob pattern
file_operations::remove_files("path/to/temporary/*.tmp").unwrap();
}
宏使用示例
实现自定义的 println! 和 assert! 宏
// Importing macros from xtasks
use xtasks::{println, assert};
fn main() {
// Using the enhanced println! macro
println!("This is a formatted {} message", "output");
// Using a custom assert! macro
assert!(2 + 2 == 4, "Math error: 2 + 2 should equal 4");
}
CI 配置示例
使用 ci.rs 配置和运行持续集成任务
use xtasks::ci::CI;
fn main() {
let ci_config = CI::builder()
.nightly(true)
.enable_clippy_lints(true)
.build()
.unwrap();
ci_config.run();
}
语义版本控制策略
为了透明度并力求保持向后兼容性,XTasks 遵循 语义版本控制。
许可
本项目根据 MIT 许可证和 Apache 许可证(版本 2.0)的条款进行许可。
贡献
我们欢迎所有希望贡献的人。有关更多信息,请参阅贡献说明。
向本项目提交的任何形式的贡献(问题、pull 请求等)都必须遵守Rust 的行为准则。
除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在作品中并由您提供的内容,将按照上述方式双重许可,而不附加任何额外的条款或条件。
致谢
非常感谢 xtasks 的所有出色的贡献者,感谢他们的帮助和支持。
特别感谢 Rust Reddit 社区为改进此项目提供的大量有用建议。
依赖项
~9–19MB
~243K SLoC