跳转到主要内容

通过使用可配置的Makefile片段的可扩展库生成特定于Python项目的Makefile。

项目描述

mxmake logo mxmake [mɪks meɪk] 通过使用可配置的Makefile片段的可扩展库生成特定于项目的Makefile。

它针对Python包的开发环境,但也可能用于其他场景。

Latest PyPI version Number of PyPI downloads Tests Typecheck Lint Variants

文档

详细的mxmake文档可在mxstack.github.io/mxmake找到。

版权

  • 版权所有 (c) 2022-2024 mxstack 贡献者
  • BSD 2-clause 许可证(见下文)

贡献者

  • Robert Niederreiter
  • Jens Klein

变更日志

1.0a6 (2024-08-02)

  • 修复在创建目标文件夹时,若父文件夹不存在也创建的 Template.write 的错误。

  • 添加对预配置文件的支持。

  • plone-site 模板配置添加到 mx.ini 模板。

  • 对 Plone 网站创建和清理有更细粒度的控制。

  • 弃用 Python 3.8,并将所有默认值设置为 Python 3.9 最低版本。

1.0a5 (2024-06-07)

  • mxenv 域中导出 OS 环境变量,以防止在子 make 调用时的警告。

  • i18n 主题中的 lingua 域添加 LINGUA_OPTIONS 设置。可用于向 pot-create 传递额外的命令行选项。

  • 在目标内部执行与 mxenv 域相关的检查,以支持安装自己 Python 环境的设置。

  • Makefile 作为 SENTINEL 目标的依赖目标,以确保在 Makefile 发生更改时执行目标。

  • 依赖 mxdev>=4.0.2,它解决了 pkg_resources 的弃用问题,并使用 mxdev 提供的基础设施来处理 mxmake 中的 entry_points。

  • 在新 plone 域中添加 Plone 网站创建和清理。

1.0a4 (2024-03-12)

  • 添加实验性 Windows 支持。

  • 支持 mxmake update 命令,更新 Makefile 而不提示设置。

  • 使用 importlib.metadata 加载 entrypoints。

  • 添加对 uv 作为 pip 的快速替代方案的支持 #25。

  • 从 CI 中移除 Python 3.7。尽管如此,它仍然可以工作。

  • 在 GH-Actions 的 macos-latest 平台上运行测试。

  • 使用 pathlib.Path 代替 os.path

  • core 主题中的 base 域添加 EXTRA_PATH 设置。可用于指定添加到环境 PATH 的额外目录。

  • 导出虚拟环境和 node 模块 bin 目录的 PATH

  • 移除 MXENV_PATH

  • mxenv 域中的 PYTHON_BIN 重命名为 PRIMARY_PYTHON

  • 引入 MXENV_PYTHON。它定义了用于 mxmake 操作的 Python 可执行文件。

  • 当运行 make ruff-clean 目标时,移除 ruff 缓存。

  • 修复 #20:VENV_ENABLED=false 测试不起作用。

  • wtr(Web 测试运行器)域添加到 js 主题。

  • 添加基于 pyupgrade 的代码格式化器,请参阅 https://pypi.ac.cn/project/pyupgrade/

  • ZOPE_TEMPLATE_CHECKOUT 选项添加到 zope 域,允许将其固定到标签、分支或修订版本(使用 cookiecutter --checkout)。如果为空,则不应用 --checkout 选项。

  • 添加 cookiecutter 伪目标,以便只需安装它。

  • 添加传递选项到 zest-releaser 命令的功能。

  • 将 venv 文件夹的默认值更改为 .venv,因为这是既定做法。

1.0a3 (2024-02-06)

  • 添加 typecheck 目标,并使用它替代 check 目标来运行 mypy。

  • 添加为 github actions 生成基本 CI 配置文件。

  • qa 主题中添加 ruff 域。

  • 修复 jsdoc 目标中的导出路径问题。

1.0a2 (2023-07-07)

  • 添加对 pip.conf 文件的支持。

  • 修复 #18:VENV_CREATE 被忽略。

  • 修复在 Hook.generate_additional_sources_targets 中添加新源代码包到 mx.ini 时的错误。

  • PROJECT_CONFIG 作为 SOURCES_TARGET 的依赖目标,以确保在将新源代码包添加到 mx.ini 时运行目标。

1.0a1 (2023-05-05)

  • zest-releaser 域添加到 applications 主题。

  • 支持自定义 makefile 包含。

  • 支持 pytest 作为测试运行器,如果没有其他配置,则将其设置为默认值。

  • base 域中添加 RUN_TARGET 设置,并在 Makefile 中生成 run 目标。

  • applications 主题中创建 twisted 域。

  • 测试和覆盖率模板在 mx.inisettings 部分考虑了 mxmake-test-pathmxmake-source-pathmxmake-omit-path,以支持在 run-tests.shrun-coverage.sh 脚本中包含本地包。

  • js 主题中创建 scss 域。

  • i18n 主题中创建 gettext 域。

  • i18n 主题中创建 lingua 域。

  • 条件性地将本地 [需求|约束].txt 添加到 LOCAL_PACKAGE_FILES。

  • 从片段生成一个 Makefile,而不是包含子文件夹中的多个文件。

  • 语义重整。将“域”改为“主题”,“Makefile”改为“域”。

  • 使用 inquirer 配置包含的域和目标。

  • 生成初始的 mx.ini 配置文件。

  • 生成“主题”和“域”文档。

  • 将文档格式从 rst 改为 md

  • 在域中将 _SENTINEL 重命名为 _TARGET

  • 在主 Makefile 模板中添加通用的 installdirtyclean 目标。

  • .sentinels 文件夹重命名为 .mxmake-sentinels

  • 提供一组默认目标和一个机制来扩展域 Makefile 中的依赖目标。

  • install 域重命名为 packages

  • files 域重命名为 mxfiles

  • venv 域重命名为 mxenv

  • 扩展钩子以生成用于包重新安装(setup.py、setup.cfg、pyproject.toml、requirements.txt、constraints.txt)的 sources 依赖目标。

  • testscoverage 域移动到 qa 主题。

  • qa 主题中创建 blackmypyisort 域。

  • system-dependencies 移动到 system 主题。

  • docs 域重命名为 sphinx 并移动到 docs 主题。

  • qa 主题中创建 zpretty 域。

  • 创建包含主题描述的主题相关元数据。

  • js 主题中创建 npm 域。

  • docs 主题中创建 jsdoc 域。

  • js 主题中创建 rollup 域。

  • js 主题中创建 karma 域。

  • applications 主题中创建 zope 域。

  • 在域中添加 soft-depends 设置来定义域渲染的顺序。

  • sources 目标设为可选依赖。

  • 扩展 Makefile 解析器以提供多行设置。

  • 如果存在(pyproject.toml、setup.[cfg|py]),则将本地包视为“脏”。

  • 在卸载包之前检查 *-clean 目标中是否存在 pip,以确保在运行默认 clean 目标时目标正常工作,其中整个虚拟环境被删除。

  • zope 域中删除冗余依赖。

  • sources 域现在是 mxfiles 域的软依赖,而不是 packages 域。这确保在 mxmake 生成文件之前执行源包检出,因为模板可能从源包中获取信息(如果存在)。

  • karmarollup 目标现在依赖于 NPM_TARGET

0.1 (2022-05-19)

  • 初始发布。

许可证

版权所有 (c) 2022-2024, mxstack 贡献者

保留所有权利。

在满足以下条件的情况下,允许重新分发和使用源代码和二进制代码,无论是否修改:

  • 源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。

  • 二进制形式的重新分发必须在使用文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。

本软件由版权所有者和贡献者提供,按“原样”提供,并明确或暗示地放弃包括但不限于商销性和针对特定目的的适用性等任何明示或暗示保证。在任何情况下,版权所有者或贡献者不应对因使用本软件而产生的任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担任何责任,无论该损害是由何种原因引起的,无论基于何种责任理论,无论是在合同、严格责任还是侵权(包括疏忽或其他)。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

mxmake-1.0a6.tar.gz (46.6 kB 查看哈希值)

上传时间

构建分发

mxmake-1.0a6-py2.py3-none-any.whl (62.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面