通过使用可配置的Makefile片段的可扩展库生成特定于Python项目的Makefile。
项目描述
mxmake [mɪks meɪk] 通过使用可配置的Makefile片段的可扩展库生成特定于项目的Makefile。
它针对Python包的开发环境,但也可能用于其他场景。
文档
详细的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.ini
的settings
部分考虑了mxmake-test-path
、mxmake-source-path
和mxmake-omit-path
,以支持在run-tests.sh
和run-coverage.sh
脚本中包含本地包。 -
在
js
主题中创建scss
域。 -
在
i18n
主题中创建gettext
域。 -
在
i18n
主题中创建lingua
域。 -
条件性地将本地 [需求|约束].txt 添加到 LOCAL_PACKAGE_FILES。
-
从片段生成一个 Makefile,而不是包含子文件夹中的多个文件。
-
语义重整。将“域”改为“主题”,“Makefile”改为“域”。
-
使用 inquirer 配置包含的域和目标。
-
生成初始的
mx.ini
配置文件。 -
生成“主题”和“域”文档。
-
将文档格式从
rst
改为md
。 -
在域中将
_SENTINEL
重命名为_TARGET
。 -
在主 Makefile 模板中添加通用的
install
、dirty
和clean
目标。 -
将
.sentinels
文件夹重命名为.mxmake-sentinels
。 -
提供一组默认目标和一个机制来扩展域 Makefile 中的依赖目标。
-
将
install
域重命名为packages
。 -
将
files
域重命名为mxfiles
。 -
将
venv
域重命名为mxenv
。 -
扩展钩子以生成用于包重新安装(setup.py、setup.cfg、pyproject.toml、requirements.txt、constraints.txt)的
sources
依赖目标。 -
将
tests
和coverage
域移动到qa
主题。 -
在
qa
主题中创建black
、mypy
、isort
域。 -
将
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 生成文件之前执行源包检出,因为模板可能从源包中获取信息(如果存在)。 -
karma
和rollup
目标现在依赖于NPM_TARGET
。
0.1 (2022-05-19)
- 初始发布。
许可证
版权所有 (c) 2022-2024, mxstack 贡献者
保留所有权利。
在满足以下条件的情况下,允许重新分发和使用源代码和二进制代码,无论是否修改:
-
源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。
-
二进制形式的重新分发必须在使用文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
本软件由版权所有者和贡献者提供,按“原样”提供,并明确或暗示地放弃包括但不限于商销性和针对特定目的的适用性等任何明示或暗示保证。在任何情况下,版权所有者或贡献者不应对因使用本软件而产生的任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担任何责任,无论该损害是由何种原因引起的,无论基于何种责任理论,无论是在合同、严格责任还是侵权(包括疏忽或其他)。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发
mxmake-1.0a6.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d2aff7cbefe43221d667ad764ebb352bd111ef4544cd686cc23f7195b375f7c6 |
|
MD5 | 8e800a654bac9e1405a3dc2df71fc0a2 |
|
BLAKE2b-256 | 373abf2e6801e694a6c3e832dcb7208424c183c1a7247e8aaa66b3d52f9ebbcd |
mxmake-1.0a6-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6528fb00042103eec19431d213bde9a8168493d7cedc38df23e307e2a4fdcd1f |
|
MD5 | bcff411b947474e02be1458667e1e670 |
|
BLAKE2b-256 | 98fec0dbdc7c3ad06f68c1cc2ac187388e5a9093a93b340caa5401379d6100a2 |