跳转到主要内容

mk

项目描述

mk工具的文档

mk 是一个命令行工具,旨在通过隐藏仓库实现细节来简化项目的贡献和维护。有了它,您可以贡献而不必了解项目团队已经使用的所有构建和测试工具,这些工具通常有奇怪的要求。

mk-command-line-screenshot

如果您曾问过自己以下问题中的任何一个,您可能想尝试 mk 并看看它是否能帮到您:

  • 我如何在本地运行测试?
  • 我可以运行哪些测试套件?
  • 我的更改是否准备好被审查?
  • 我如何提出一个更改以供审查?

在克隆的任何仓库内部运行 mk 以显示您有哪些选项。不需要配置文件,因为该工具会查找仓库使用的常用工具并公开它们的命令。

mk 受到类似 makewaftaskfiletoxnoxnpmyarnpre-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 (221.1 kB 查看哈希值)

上传时间 源代码

构建分发

mk-2.7.0-py3-none-any.whl (25.9 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面