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 |