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开发工具

Download history 7/week @ 2024-03-30 1/week @ 2024-04-06 1/week @ 2024-04-20

每月 69 次下载

MIT/Apache

72KB
878

eco

Build Status

用于推理 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版本,因为目前正在努力将rustfmtsyntex crate迁移出来,而rustfmt-nightly是最新版本。

不幸的是,这也意味着在运行cargo fmt针对代码库之前,您必须切换到nightly。

许可证

根据您的选择,许可如下:

贡献

除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,应按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~4–16MB
~236K SLoC