Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
fda6c9f
[IMP] avoid to crash during analysis, if repository is not correct; […
legalsylvain Oct 5, 2016
c071877
[ADD] initial 10.0 commit
hbrunn Jul 31, 2017
7a14db1
[DEL] custom field and views using it
hbrunn Aug 1, 2017
e1b5fbc
Make the github login field editable (#16)
sbidoul Jan 9, 2018
6f2667b
[MIG] oca_custom: Migration to 11.0
cubells May 21, 2018
a1b5b34
[12.0][MIG] custom_oca: Migration to v12
cristinamartinrod Jan 9, 2019
e503db0
[IMP] oca_custom: black, isort, prettier
CarlosRoca13 Jul 2, 2020
aac8c65
[MIG] oca_custom: Migration to v13.0
CarlosRoca13 Jul 2, 2020
7c0913a
[MIG] oca_custom: Migration to 14.0
Jul 20, 2021
24286c1
[UPD] README.rst
OCA-git-bot Sep 3, 2023
4976f93
[UPD] Update oca_custom.pot
Mar 17, 2025
e60e04d
[ADD] oca_all: module with all OCA instance dependencies
petrus-v Mar 17, 2025
75e7079
FIX oca_all dependencies
petrus-v Jun 16, 2025
a2752f4
Add missing depenencies likes in production
petrus-v Jul 3, 2025
d046788
[UPD] README.rst
OCA-git-bot Jul 22, 2025
5d58e43
[ADD] icon.png
OCA-git-bot Jul 22, 2025
4981f6c
[UPD] Update oca_all.pot
Jul 22, 2025
7ae3ddc
[IMP] oca_all: add base_deterministic_session_gc
HekkiMelody Sep 15, 2025
1573a7c
[UPD] README.rst
OCA-git-bot Oct 9, 2025
22bf88a
[IMP] OCA's Odoo: odoo-community.org development/release
petrus-v Mar 17, 2025
4c3e1fb
Use standard mechanism to declare dev dependencies
sbidoul Jun 9, 2025
0c84d8d
Add openupgradelib
sbidoul Jun 9, 2025
bb8c568
freeze pytest version
petrus-v Jun 18, 2025
83fac76
Add missing depenencies likes in production
petrus-v Jul 3, 2025
0827a3f
integrate account_statement_import_online_wise Tom's fix using forein…
petrus-v Jul 21, 2025
8e599fa
[REF] add locust benchmark and bump website_apps_store
petrus-v Aug 28, 2025
a537838
[UPD] remove merged OCA branches and update module versions to the me…
thomaspaulb Oct 9, 2025
7bdb119
[ADD] Contributors docs
thomaspaulb Jan 10, 2026
e2e1607
[14.0][IMP] Kickstarter-page: update CONTRIBUTING.md #67
arnaudlayec Nov 14, 2025
0cd5410
[MIG] [18.0] oca_custom
Kiplangatdan Nov 7, 2025
25d78a5
[18.0][MIG] oca_all
Kiplangatdan Nov 19, 2025
1e95b23
[MIG] pyproject.toml 14 to 18
Jan 8, 2026
c6b4f9e
Add test-requirements.txt.
Hussam-Suleiman Jan 14, 2026
d219561
[ADD] account_invoice_overdue_reminder
thomaspaulb Jan 28, 2026
8cc93a4
[UPD] survey_xlsx was merged
thomaspaulb Feb 4, 2026
69d8dc4
[UPD] addons table in README.md
OCA-git-bot Feb 4, 2026
b16dd32
[UPD] README.rst
OCA-git-bot Feb 4, 2026
0ad5303
[BOT] add or update setup/_metapackage
OCA-git-bot Feb 4, 2026
ec492a2
[UPD] Update oca_all.pot
Feb 4, 2026
9574df9
[UPD] Update oca_custom.pot
Feb 4, 2026
842d29e
Draft:[18.0][RFR] #12975 Review automated action
KKamaa Jan 26, 2026
73054c0
fixup! Draft:[18.0][RFR] #12975 Review automated action
KKamaa Jan 28, 2026
170e7bd
fixup! fixup! Draft:[18.0][RFR] #12975 Review automated action
KKamaa Jan 28, 2026
530a2db
fixup! fixup! fixup! Draft:[18.0][RFR] #12975 Review automated action
KKamaa Jan 28, 2026
e49e365
fixup! fixup! fixup! fixup! Draft:[18.0][RFR] #12975 Review automated…
KKamaa Jan 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
239 changes: 239 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
# Contribute to the OCA's Odoo instance (kick-starter guide)

This one-pager guide aims to help happy volunteers to contribute to the OCA's Odoo
instance, supposedly the OCA's Internal Tools team.

## Table of content

1. [Introduction](#introduction): who we are, how we work
2. [Getting Started](#getting-started)
- [Concepts](#concepts): main concepts to understand and general organization
- [Processes](#processes): helping doing the work without missing crucial steps
- [How-Tos](#how-tos): how to do specific tasks
3. [FAQ](#FAQ)

## Introduction

This repository is managed by OCA's Internal Tools team:

- email: [[email protected]](mailto:[email protected])
- [Github team page](https://github.com/orgs/OCA/teams/internal-tools)
- [Github project Kanban](https://github.com/orgs/OCA/projects/13)

Please refer to the document
[Scope & Objective](https://docs.google.com/document/d/1RcOUstPJDev1bgPZcNXWiHBt5PeqraisU5bKIZatcnY/edit?pli=1&tab=t.0#heading=h.jrsgv4k2u2ao)
to understand the governance and missions of the Internal Tools team within the OCA.
Under the watch of OCA board, this document mainly explains:

- The "Raison d'être" of the Internal Tools group
- Tasks and responsabilities
- Autonomy scope
- How to become part of the group
- Internal governances (leaders & members)
- Useful processes to start working in the group

## Getting Started

This section will guide you to:

1. Build a test environment on a developer's machine, replicating OCA's Odoo production
instance
2. Push a change in production to OCA's Odoo production instance

### Concepts

This repository is setup as other OCA's repositories to launch CI as usual and as an
extra configuration in order to build the OCA' Docker image used by our Odoo instance,
as well as facilitate the bootstrapping of a development environment.

Managing and freezing modules versions rely on python tools:

- [uv](https://docs.astral.sh/uv/)
- [hatch-odoo](https://pypi.org/project/hatch-odoo/)

### Processes

Here we focus on what to do without explaining how to do it.

### Release

While we are building and publishing a docker image the current state is that the image
is build at deploy time on OCA server.

While technically speaking there is nothing more than accessing to a public commit to
deploy a new version it's a common practice to merge your work on branch 14.0 before
deploying a new version in production.

> **Note**: in this repository we allow unreleased dependencies.

#### Deployment

Ask administrator to deploy the given commit.

### How-Tos

Here we focus on how to do it, it's a suggest way to works but feel free to use your own
way.

#### Setup developer environment

Requirements:

- **uv**: several methods exist to install it, one can be
`curl -LsSf https://astral.sh/uv/install.sh | sh`. It will install other
prerequisites.
- Postgresql
- Some dependencies to be able to build some python packages: `libpq-dev`,
`build-essential`, ...
- wkhtmltopdf

Run the following commands to prepare a python virtual environment with the correct
python version (which uv will download for you if necessary) and install the required
dependencies:

```bash
git clone [email protected]:OCA/oca-custom -branch 14.0
cd oca-custom
uv sync
```

#### Setup database

Setup database with demo data and all OCA modules installed:

```bash
uv run odoo -d oca-custom -i oca_all --stop-after-init --without-demo=
```

The `oca_all` module contains the `__manifest__.py` with all Odoo modules dependencies
for the OCA Odoo instance.

#### Neutralize database

If you are allow to access to a production database, neutralization happens while
stating the Docker container if the running environnement is not the production server.

On development, if your are not using docker you can running neutralize scripts such as:

```bash
find entrypoints/neutralize/*.sql -type f -exec psql <dbname> -f {} \;
```

#### Development

For addons living in this repository, you can just change code and restart Odoo with the
`uv run` command.

For addons in other repositories, the procedure is as follows:

- check out the repository somewhere, ie /src/\$repo
- add the following line to `pyproject.toml` in the `[tool.uv.sources]` section:

```pyproject
odoo14-addon-$youraddon = { path = "/srv/$repo/setup/$youraddon", editable = true }
```

- run `uv sync`
- restart Odoo

#### Use unreleased dependency

There is two different goals:

- making the test CI pass: using regular test-requirements.txt files add a line such as

```
odoo14-addon-membership-delegated-partner-line @ git+https://github.com/OCA/vertical-association@refs/pull/151/head#subdirectory=setup/membership_delegated_partner_line
```

- bring the unreleased dependency in the uv project (and the built docker image), add
the following line to `pyproject.toml` in the `[tool.uv.sources]` section:

```pyproject
odoo14-addon-membership-delegated-partner-line = { git = "https://github.com/OCA/vertical-association", rev = "refs/pull/151/head", subdirectory = "setup/membership_delegated_partner_line" }
```

#### Launch tests

Run tests using pytest launcher.

```bash
uv run pytest --odoo-database oca-custom --cov ./oca_psc_team/ oca_psc_team/
```

#### Update OCB Branch

```bash
uv sync -P odoo
```

#### Update a specific OCA module dependency using the latest pypi release

```bash
uv sync -P odoo14-addon-<module-name>
```

Note bug https://github.com/astral-sh/uv/issues/14684, that says if multiple packages
are sourced from the same branch/PR, we need to specify both of them as to upgrade,
otherwise they don't get rescanned.

#### Bump all dependencies to the latest version

```bash
uv sync -U
```

## FAQ

#### How can I start contributing in OCA toolings?

- Get to know the manifest document of OCA's Internal Tools team:
[Scope & Objective](https://docs.google.com/document/d/1RcOUstPJDev1bgPZcNXWiHBt5PeqraisU5bKIZatcnY/edit?pli=1&tab=t.0#heading=h.jrsgv4k2u2ao).
- Write to us at
[[email protected]](mailto:[email protected]).
- Install a test environment on your machine of the OCA's Odoo instance by following the
[§ Getting Started](#getting-started).

#### How to communicate with the OCA Internal Tools?

Our main communication channel is the mailing list
[[email protected]](mailto:[email protected]). For
task-related discussion, also directly use the Chatter of the Odoo tasks.

#### Where is the tasks backlog of the OCA Internal Tools?

We use the Odoo project **OCA internal tools workgroup** on the OCA's Odoo instance to
organize our tasks and priorities. A public access to the project can be provided to OCA
members who contributes to the tooling tasks (not requesting privacy form signing).

#### How to access the backend of OCA's Odoo instance?

It can be useful to access Odoo back-end for both task management and browse instance's
modules and data. For such, prerquisites are:

- being a member of the OCA and the **OCA Internal Tools group**
- be registered on OCA's Odoo instance
- fullfil and send back the **Data protection & privacy** form, available on OCA website
[Resources / How to guides / Protect data & privacy when you support OCA projects](https://odoo-community.org/privacy)

#### What are useful Github repositories?

- The current **oca-custom** is the main repository. It contains both all Odoo modules
dependencies of OCA instance in `oca_all/__manifest__.py` and all configuration to
build an Odoo test instance the `uv`, as described in
[Getting Started](#getting-started).
- [**apps-store**](https://github.com/OCA/apps-store/tree/14.0) holds mechanisms of OCA
modules replication to official Odoo's App Store

#### How to get representive data, for troubleshooting and test?

Contact the mailing list to get a neutralized and anonymized database.

#### How to gain command line access and read logs?

Only a few people have admin server access, please reach the mailing list for further
details.

#### How to refresh test instance from production instances (on the server)?

`home/odoo/instance/README` gives some guidance.
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,12 @@ oca-custom

[//]: # (addons)

This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools.
Available addons
----------------
addon | version | maintainers | summary
--- | --- | --- | ---
[oca_all](oca_all/) | 18.0.0.0.1 | <a href='https://github.com/petrus-v'><img src='https://github.com/petrus-v.png' width='32' height='32' style='border-radius:50%;' alt='petrus-v'/></a> | All oca modules dependencies
[oca_custom](oca_custom/) | 18.0.1.0.0 | | Custom Settings for OCA Instance

[//]: # (end addons)

Expand Down
91 changes: 91 additions & 0 deletions oca_all/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=======
OCA All
=======

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:0ac028a6276458862ff4220ae52cb85d631494c73015209b8511fd7923e6e6f8
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foca--custom-lightgray.png?logo=github
:target: https://github.com/OCA/oca-custom/tree/18.0/oca_all
:alt: OCA/oca-custom
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/oca-custom-18-0/oca-custom-18-0-oca_all
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/oca-custom&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

OCA's Odoo instance's dependencies.

Installing this module will create an instance likes the one used to
manage the OCA association.

.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
:local:

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/oca-custom/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/oca-custom/issues/new?body=module:%20oca_all%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Pierre Verkest <[email protected]>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-petrus-v| image:: https://github.com/petrus-v.png?size=40px
:target: https://github.com/petrus-v
:alt: petrus-v

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-petrus-v|

This module is part of the `OCA/oca-custom <https://github.com/OCA/oca-custom/tree/18.0/oca_all>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Empty file added oca_all/__init__.py
Empty file.
Loading