whool - 为Odoo插件构建后端
项目描述
whool
一个符合标准的Python构建后端,用于打包单个Odoo插件。
[!注意] 如果您正在考虑打包客户项目或插件集合,您可能需要考虑hatch-odoo项目。
快速入门
在插件旁边的__manifest__.py旁边创建一个名为pyproject.toml的文件,内容如下
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
💡您可以使用
pipx run whool init命令来完成此操作。
完成此操作后,您可以像处理任何常规Python项目一样处理插件。特别是
pipx run build --wheel --outdir /tmp/dist/或pip wheel --no-deps --wheel-dir /tmp/dist/ .将创建一个wheel。- 假设
odoo已通过pip在当前Python环境中安装(例如,使用pip install --editable ./odoo),则pip install --editable .将安装插件及其依赖项(它将从中拉取PyPI)并在Odoo插件路径中可用,无需修改Odoo的--addons-path选项。
包含在分发包中的文件
whool将打包所有在git控制下的文件,并忽略其他所有内容。
📝 TODO:解释sdist与wheel中包含的内容,以及如何从sdist构建。
生成包的版本号
生成分发包的版本受以下git提交历史记录的影响。
📝 TODO:详细说明(同时请参阅setuptools-odoo文档)
配置
以下选项可以在pyproject.toml中设置
📝 TODO:解释此内容(同时请参阅setuptools-odoo文档)
[tool.whool]
depends_override = {}
external_dependencies_override = {}
post_version_strategy_override = "..."
odoo_series_override = "..."
如果设置,以下环境变量将覆盖相应的 pyproject.toml 选项
WHOOL_POST_VERSION_STRATEGY_OVERRIDE
标准合规性
whool 符合 PEP 517 和 PEP 660,因此它与所有 Python 构建前端兼容,并支持可编辑安装。
[!注意] 可编辑安装需要支持符号链接,这在大多数平台上可用,但在 Windows 上可能默认未启用。
它支持可选的 prepare_metadata_for_build_wheel 和 prepare_metadata_for_build_editable 钩子,以加快元数据准备速度。
与 setuptools-odoo 的比较
该项目是 setuptools-odoo 的继任者,作为符合标准规范的 Python 构建后端。
与 setuptools-odoo 相比,whool 的主要预期好处是每个插件根目录中用 pyproject.toml 文件替换了 setup 目录和 setup.py 文件。它更少侵入性,且常规操作不需要符号链接。
setuptools-odoo 依赖于少量文档化的钩子和已弃用的 setuptools 扩展机制,这逐渐导致了兼容性问题。
setuptools-odoo 提供了一种打包多插件项目的机制。这现在由 hatch-odoo 项目处理。
setuptools-odoo-make-default 命令的等效命令现在是 whool init,它可以在当前目录是一个插件时初始化一个 pyproject.toml,或者在没有插件的所有直接子目录中。
可以使用基于标准的工具(如 pyproject-dependencies)轻松构建 setuptools-odoo-get-requirements 的等效命令。示例可以在 OCA/maintainer-tools 中找到。
开发
发布和发布到 PyPI
- 运行
towncrier build --version X.Y.Z更新更改日志。 - 提交并推送更改。
- 转到 GitHub 并创建带有标签
vX.Y.Z的发布。
发布将自动上传到 PyPI。
项目详情
下载文件
下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
whool-1.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 1656b54377fb1b990b4913976ee707c129a07e92a9e8ff6574351bedcec14f72 |
|
| MD5 | be22325898b61aa00b95bf7d7ce3ef70 |
|
| BLAKE2b-256 | 97baa76600b8130b082c1302293eccc1c487842a6376639b0f0d684bf86f5aee |