[![Support the OCA](https://odoo-community.org/readme-banner-image)](https://odoo-community.org/get-involved?utm_source=repo-readme) # madmooose OSS Odoo Apps [![Pre-commit Status](https://github.com/madmooose/odooapps/actions/workflows/pre-commit.yml/badge.svg?branch=16.0)](https://github.com/madmooose/odooapps/actions/workflows/pre-commit.yml?query=branch%3A16.0) [![Build Status](https://github.com/madmooose/odooapps/actions/workflows/test.yml/badge.svg?branch=16.0)](https://github.com/madmooose/odooapps/actions/workflows/test.yml?query=branch%3A16.0) [![codecov](https://codecov.io/gh/madmooose/odooapps/branch/16.0/graph/badge.svg)](https://codecov.io/gh/madmooose/odooapps) Open Source Odoo Apps i develop and maintain for projects of mine. Should be contributed to the OCA at some point. ## Installation (wheelhouse) Every push to a series branch (`16.0`, `17.0`, …) builds a wheel for each changed addon and publishes it to this Forgejo instance's PyPI package registry (see [`.forgejo/workflows/wheelhouse.yml`](.forgejo/workflows/wheelhouse.yml)). Each module is published as `odoo-addon-` and installs straight into Odoo's addons path. Point pip/uv at the registry index (a read token is required for a private repo): ```bash uv pip install \ --index-url "https://:@git.ziemlichoptimal.de/api/packages/odoo/pypi/simple/" \ odoo-addon-sale-order-batch ``` Or pin it in `requirements.txt` for a production deployment: ```text --extra-index-url https://:@git.ziemlichoptimal.de/api/packages/odoo/pypi/simple/ odoo-addon-sale-order-batch ``` Versions follow whool's `.N` post-version scheme: a manifest version of `16.0.2.4.3` is published as `16.0.2.4.3.`, where `N` increments with each commit to the addon. Pin an exact version for reproducible deploys, or omit the version to always get the latest build. [//]: # (addons) This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools. [//]: # (end addons) ## Licenses This repository is licensed under [AGPL-3.0](LICENSE). However, each module can have a totally different license, as long as they adhere to Niels Göttsch policy. Consult each module's `__manifest__.py` file, which contains a `license` key that explains its license. ----