通过使用可配置的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 |