跳转到主要内容

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 517PEP 660,因此它与所有 Python 构建前端兼容,并支持可编辑安装。

[!注意] 可编辑安装需要支持符号链接,这在大多数平台上可用,但在 Windows 上可能默认未启用。

它支持可选的 prepare_metadata_for_build_wheelprepare_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 (11.7 kB 查看哈希值)

上传

构建分布

whool-1.2-py3-none-any.whl (9.4 kB 查看哈希值)

上传 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面