mk
项目描述
mk工具的文档
mk
是一个命令行工具,旨在通过隐藏仓库实现细节来简化项目的贡献和维护。有了它,您可以贡献而不必了解项目团队已经使用的所有构建和测试工具,这些工具通常有奇怪的要求。
如果您曾问过自己以下问题中的任何一个,您可能想尝试 mk
并看看它是否能帮到您:
- 我如何在本地运行测试?
- 我可以运行哪些测试套件?
- 我的更改是否准备好被审查?
- 我如何提出一个更改以供审查?
在克隆的任何仓库内部运行 mk
以显示您有哪些选项。不需要配置文件,因为该工具会查找仓库使用的常用工具并公开它们的命令。
mk
受到类似 make、waf、taskfile、tox、nox、npm、yarn 和 pre-commit 这样的工具的启发,但它并不旨在取代它们。相反,它旨在提供一个统一的接口来调用它们,即使对于那些从未使用过这些工具的人来说也非常友好。
安装
我们建议使用 pipx
安装 mk
以避免潜在的依赖冲突。您也可以使用 pip3 install --user mk
。
pipx install mk
它的工作原理
mk
检查当前核心仓库并检测项目使用的构建工具,如 pre-commit、tox、npm,并以一种 可预测 的方式向用户公开它们的命令。
例如,您应该能够仅通过运行 mk lint
来对任何代码仓库进行代码审查,无论作者的偏好是选择一种方式执行还是另一种方式。
请放心,mk
并不使用 AI 来猜测需要运行什么。由于大多数项目使用相对相似的模式,因此很容易确定要执行的模式。
目前,如果两个工具公开了相同的命令名称,该工具将向其名称添加一个数字。将来,我们可能会决定将它们链接到单个名称下,或者允许某些工具覆盖其他工具并避免重复。
主要好处是什么
mk
的好处之一是它应该减少作者需要编写的如何贡献文档的数量。
维护者的大量努力可以投入到产生使人们更容易贡献的文档中。
一些项目受影响较小。这通常与潜在的贡献者对项目使用的做法了解多少有关。但是,如果您的项目具有广泛的应用,您会很快发现新贡献者可能会遇到知识障碍。这种障碍可能阻止他们中的大多数人成为活跃的贡献者。剩下的人可能会向项目提出大量问题,分散其他维护者进行更高级任务的能力。
除非您不想阻止贡献,否则您应该计划使人们尽可能容易地贡献。这是 mk
力求帮助的一个领域。
别名
类似于 git 别名,mk
允许通过自动别名命令来输入尽可能少的内容。例如,您可以通过只输入 mk l
来运行 mk lint
,只要没有其他以相同字母开头的命令。别名适用于一、二和三个字母的前缀。
使用 mk 向项目提出更改
与其编写一系列任务列表,我们可以使用一个工具来告诉他下一步该做什么。例如,mk
有一个名为 up(load)
的内置命令,旨在简化从提议到项目中准备本地更改的过程。
该命令会检测是否应使用 GitHub 工作流程或 Gerrit,并将运行适当的命令以打开或更新 CR/PR。用户只有通过最小的本地测试集后才能上传更改,从而防止产生噪音错误或阻塞 CI/CD 管道。
除了代码检查,它还会检查仓库是否处于脏状态或测试是否留下了未跟踪的文件。
计划中的功能
- 每个命令运行的持久状态 - 这意味着它将知道是否运行了特定的命令以及是否失败。状态将与仓库状态相关联,因此修改跟踪文件将重置状态为未知。 (#20)
- 配置文件,其中可以添加额外的操作。 (#21)
- 命令之间的依赖关系。虽然一些工具支持依赖关系,但许多不支持。你应该能够声明只有当另一个命令已经通过时,特定的命令才会运行。 (#22)
- 生成 CI/CD 管道的能力,这样用户就可以花更少的时间编写不可移植的配置。 (#23)
项目详情
下载文件
下载适用于您平台的项目文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分发
构建分发
mk-2.7.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 38841955dc8bb710a60758de4b6cb309ffba3e1d15f294764d5d8ae474f88109 |
|
MD5 | f184efb0c5b2fcf2cdfe30f4db183c77 |
|
BLAKE2b-256 | bb209c4f75b2fdcfd4f3269f32bb8a59288390c2234a369f744a6699a19dd3bd |
mk-2.7.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1c8723302dc8e814f941c1e8e07c0914c67ae3a1ab35e66c2c52938ceca7e785 |
|
MD5 | 7a9e8f9a07e54b84f60f2ca22e1d1517 |
|
BLAKE2b-256 | 55cab9845c652d8c4416dca9eb8aee50d469bde004ff38da4335632471c68731 |