GitHub - EbodShojaei/bake:mbake 是一个 Makefile 格式化器和代码检查器。它竟然花了 50 年才出现!

这是一个名为mbake的 Makefile 格式化工具的文档,主要内容如下:

  • 特点:可通过~/.bake.toml配置规则,与 CI/CD 集成、有可扩展插件架构、丰富终端输出及进度指示、语法验证、智能.PHONY检测、可通过特殊注释抑制格式化等。
  • 格式化规则:包括缩进与空格(如食谱用制表符、统一赋值运算符间距等)、行延续(如反斜杠规范化等)、.PHONY声明(如分组、自动插入等)。
  • 安装:推荐从 PyPI 安装,也可通过 VSCode 扩展、从源码或包管理器安装,开发安装需指定[dev]
  • 迁移到 v1.3.x:版本 1.3.0 引入模块重命名bakembake,需更新包、Python 脚本及 CI/CD 脚本中的导入,CLI 命令等保持不变,向后兼容。
  • 使用:基于子命令的 CLI,有快速开始、配置管理(初始化、显示、使用自定义配置等)、格式化文件(单个、多个、检查、显示差异等)、语法验证、版本管理、Shell 补全等功能,validate用于语法验证,format --check用于样式验证。
  • 配置:默认有合理配置,可生成配置文件,示例配置包含各种格式化及其他设置。
  • 智能.PHONY检测:通过动态分析命令自动识别和管理phony 目标,包括工作原理、示例(如 Docker 相关目标等)、配置及行为模式等。
  • 示例:包括基本格式化、自动插入示例、禁用格式化示例等。
  • CI/CD 集成:在持续集成中使用mbake,GitHub Actions 示例中可用于检查 Makefile 格式化,有不同的退出代码表示不同情况。
  • 开发:包括设置(克隆仓库、安装等)、运行测试(全部、带覆盖率、特定文件)、代码质量检查(格式化、lint、类型检查)。
  • 架构:采用模块化、插件式架构,有cli.pyconfig.py等模块,可添加自定义规则,通过继承FormatterPlugin类实现。
  • 贡献:欢迎贡献,有贡献指南,包括 Fork 仓库、创建分支、提交更改、添加测试、运行测试套件、提交更改及推送分支、打开 Pull Request 等步骤。
  • 许可证:基于 MIT 许可证。
  • 设计哲学:包括最小化更改、可预测行为、快速执行、可靠验证、开发者友好等。
阅读 26
0 条评论