21 个破坏性版本发布
0.23.0 | 2021 年 11 月 28 日 |
---|---|
0.22.0 | 2021 年 4 月 12 日 |
0.21.0 | 2019 年 5 月 23 日 |
0.20.0 | 2019 年 1 月 19 日 |
0.8.0 | 2015 年 11 月 11 日 |
#747 在 开发工具 中
每月 69 次下载
72KB
878 行
eco
用于推理 Rust 生态系统中破坏性变化的工具
Eco 处理关于 Rust 生态系统的自定义 JSON 格式。
目前支持
- 提取信息:从 Cargo.toml 中提取依赖信息的一组 URL 列表。
- 依赖信息:关于包及其依赖的版本信息。
- 更新信息:改进生态系统集成性的操作。
帮助更新!
破坏性变化一直在发生,保持库的更新很重要。这里我们保留了一份 Rust 游戏开发重要生态系统的各种列表。
- Piston:
cargo run --example piston > todo.txt
Eco 生成一个更新列表,您可以根据指示操作,然后向相应的仓库提交 PR。
动机
Rust 生态系统通常由许多遵循 semver 版本的小型 crate 组成。当第一个非零数字发生变化时,意味着发生了破坏性变化。根据您生态系统的形状和大小,不同的破坏性变化有不同的后果。
保持生态系统集成是一个巨大的任务,Piston 是大型生态系统的一部分,甚至扩展到 PistonDevelopers 组织之外。最重要的是确保现有代码继续工作,并且更新在变化发生后尽快发生。理想情况下,为了避免依赖冲突和大型二进制文件,生态系统应使用库的相同版本。这是一项艰难的手动任务,而且几乎不可能不犯错误。
Eco 被设计用来补充 Rust 生态系统的其他工具。它可以直接从 Cargo.toml 中提取依赖信息,然后对当前状态进行分析并输出推荐的操作。然后可以使用这些操作来帮助维护者完成他们的工作,或者也许在将来自动化一些任务。
Eco使用Piston-Meta来解析文本。Meta解析是一种技术,可以使用“元语法”从任意文本中查询数据,支持使用单个库为特定目的处理大量格式。这允许快速修复自定义格式、验证结构并提供良好的错误信息。本项目的一个子目标是测试和改进Piston-Meta在基础设施中的应用,其中各个部分通过文本相互交互。
由于Eco未来可能用于自动化,算法基于分析和模型。当出现问题时,应知道可能引起错误的错误。这是与其他工具一起使用所必需的,以便对整体行为进行推理。
macOS上的OpenSSL问题
在macOS上,如果您使用Homebrew或MacPorts安装OpenSSL,可能需要将以下行添加到您的.bash_profile
中,以解决编译时错误
export OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include
export OPENSSL_LIB_DIR=`brew --prefix openssl`/lib
export DEP_OPENSSL_INCLUDE=`brew --prefix openssl`/include
创建pull请求
在向eco创建pull请求之前,请确保您已对代码库执行了cargo fmt
。有关安装rustfmt
的说明,请参阅此处。请确保您正在安装nightly版本,因为目前正在努力将rustfmt
从syntex
crate迁移出来,而rustfmt-nightly
是最新版本。
不幸的是,这也意味着在运行cargo fmt
针对代码库之前,您必须切换到nightly。
许可证
根据您的选择,许可如下:
- Apache License,版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,应按上述方式双许可,不附加任何额外条款或条件。
依赖关系
~4–16MB
~236K SLoC