whool
whool - build backend for Odoo addons
What it is and what it does
whool is a standards-compliant Python build backend designed specifically for packaging Odoo addons as distributable wheels and source distributions. It replaces the older setuptools-odoo project by implementing PEP 517 and PEP 660, making it compatible with modern Python build frontends like build and pip. Instead of requiring setup.py and setup.cfg files, whool uses a minimal pyproject.toml configuration at the root of each addon, making it less intrusive and easier to manage.
The package works by packaging only files under git control, automatically managing dependencies from addon manifests, and supporting editable installs so developers can work on addons in place without modifying Odoo's addons-path. It includes a command-line tool (whool init) to initialize pyproject.toml in addon directories, and integrates with standard Python packaging workflows. For multi-addon projects or customer deployments, the documentation recommends using hatch-odoo instead.
Use it for:
- Package individual Odoo addons as wheels for distribution to PyPI or private repositories.
- Set up editable installs of Odoo addons in development environments without modifying Odoo configuration.
- Migrate from setuptools-odoo to a standards-compliant build backend while maintaining addon compatibility.
- Automate dependency resolution from addon manifests during the build process.
- Initialize pyproject.toml configuration across multiple addon directories with whool init.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
whool is a PEP 517 and PEP 660 compliant build backend that packages individual Odoo addons as Python distributions, replacing the deprecated setuptools-odoo.
Yes, if you are packaging individual Odoo addons for distribution. whool is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and offers low installation friction. It is the modern successor to setuptools-odoo and is standards-compliant with PEP 517/660. Not suitable for multi-addon projects (use hatch-odoo instead) or if your addons are not under git control.
Install
whool on PyPI
pip
pip install whooluv
uv add whoolpoetry
poetry add whoolInstalling whool
Before you install
Low friction: pure Python wheel with four runtime dependencies (importlib-metadata, manifestoo-core, tomli, wheel). Active maintenance with last commit 2026-08-10 and a release on 2025-07-26.
License in practice
MIT license (permissive) means you can use whool in commercial and proprietary projects with minimal restrictions, provided you include the license notice.
Quickstart
pip install whool
# In your addon directory, create pyproject.toml:
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
# Then build:
pip wheel --no-deps --wheel-dir /tmp/dist/ .
Requires git control of addon files (whool packages only files under git control). Editable installs on Windows require symbolic link support to be enabled.
Verify before relying
- Whether version numbering is automatically derived from git commit history as mentioned in the description but not fully documented.
- How configuration options in [tool.whool] (depends_override, external_dependencies_override, post_version_strategy_override, odoo_series_override) are actually used in practice.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — importlib-metadata, manifestoo-core, tomli, wheel |
| Maintenance | actively maintained — 384 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 154,597/month — #10,849 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: whool-1.3-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
setuptools-odooSetuptools-odoo automates packaging of Odoo…
copyleft · top 15,000 on PyPI
manifestoo-coreParses and reasons about Odoo addon manifests,…
permissive · top 15,000 on PyPI
OdooRPCOdooRPC is a Python client library that…
copyleft · top 15,000 on PyPI
wheywhey is a PEP 517 build backend that creates…
permissive · top 15,000 on PyPI
cmeelcmeel is a PEP 517 build backend that packages…
permissive · top 5,000 on PyPI
ERPpeekERPpeek is a command-line and library client…
permissive · top 15,000 on PyPI
pep517Provides subprocess-isolated wrappers around…
permissive · top 5,000 on PyPI
pylint-odooA Pylint plugin that adds Odoo-specific code…
agpl · top 15,000 on PyPI
wheel-stubA PEP 517 build backend that creates stub…
permissive · top 5,000 on PyPI
openupgradelibProvides utility functions for Odoo database…
agpl · top 15,000 on PyPI