Traduction automatique. Les données et les chiffres font référence ; la formulation peut contenir des erreurs de traduction et certains fragments peuvent rester en anglais. La version faisant foi est celle des pages en anglais et en ukrainien. signalez-nous tout terme inexact
Migration tracker: Odoo 20.0
How many OCA repositories already carry a 20.0 branch, how many of those hold real modules, and what the same measurement looked like for 19.0. One set of numbers, one piece of code, two dates.
The 20.0 branch does not exist yet — not in OCA, not at Odoo itself. Last checked 2026-09-16 20:00 UTC; the watcher asks git ls-remote every 15 minutes. 8 days remain until the Odoo Experience keynote on 2026-09-24.
The zeros below are a measurement, not a blank: we ask for the refs of every OCA repository — the watcher hourly, the harvest nightly — and 20.0 is in none of them. With zero branches the remaining rows are zero by definition — a branch that does not exist holds neither modules nor a template. Once the first branch appears, the contents of the trees are read as a separate step, and until they are read those rows show dashes: “the branch exists” and “the branch holds modules” do not collapse into one number here.
Odoo 20.0
| Measured | Value |
|---|---|
| Repositories with the branch | 0 of 234 |
| of them with modules | 0 |
| of them OCA template only | 0 |
| of them not read yet | 0 |
| Modules in those branches | 0 |
Snapshot 2026-09-16 19:45 UTC.
Daily series: 27 points since 2026-08-19, all of them zero. The first non-zero point will show up here on its own.
How 19.0 went — the same measurement
19.0 was released on 2025-09-01. This is where it stands 12 months later. Both columns are counted by one piece of code: each reads the branch tree and counts directories holding a top-level __manifest__.py.
| Measured | Value |
|---|---|
| Repositories with the branch | 232 of 234 |
| of them with modules | 122 |
| of them OCA template only | 110 |
| of them not read yet | 0 |
| Modules in those branches | 1 311 |
Snapshot 2026-09-08 06:47 UTC. Trees are read only where the ref has moved, so the number stays current without re-cloning everything.
Two counters, never one
“The branch exists” and “the branch holds modules” are different statements, and on 19.0 the gap between them is large: the OCA template rolls out across the organisation on its own — one Initial commit, no __manifest__.py anywhere in the branch history. A tracker counting branches alone would show growth that is not there.
| Date | Repositories | Modules | Δ modules |
|---|---|---|---|
| 2026-09-02 | 232 | 1 277 | |
| 2026-09-03 | incomplete snapshot — not a measurement | ||
| 2026-09-04 | 232 | 1 293 | |
| 2026-09-05 | 232 | 1 299 | +6 |
| 2026-09-06 | 232 | 1 302 | +3 |
| 2026-09-07 | 232 | 1 300 | -2 |
| 2026-09-08 | 232 | 1 311 | +11 |
| 2026-09-09 | 232 | 1 316 | +5 |
| 2026-09-10 | 232 | 1 321 | +5 |
| 2026-09-11 | 232 | 1 334 | +13 |
| 2026-09-12 | 232 | 1 344 | +10 |
| 2026-09-13 | 232 | 1 344 | +0 |
| 2026-09-14 | 232 | 1 345 | +1 |
| 2026-09-15 | 232 | 1 353 | +8 |
| 2026-09-16 | 232 | 1 361 | +8 |
Weekend rows are dimmed; an empty Δ after an “incomplete snapshot” row is a refusal to compute growth across a day we did not measure. A zero on Saturday and Sunday is normal, not a stall: the growth happens on working days — measured, not assumed. A negative Δ is not a fault of the count: OCA sometimes force-pushes a branch back to the empty template, and that day the modules on it are gone — the index publishes the actual state of the branch, not its history.
Trend by series
Modules in the branch, one point per day. A series shorter than 14 points is not drawn at all: a curve over a few points reads as a trend while being just a segment. Incomplete harvest runs are excluded — the dataset flags them in the partial column.
How many modules have somewhere to move at all
Before the release we ran 1 290 modules of the 19.0 branch on Odoo’s development line — the one 20.0 will come out of. 442 started with no change to the code beyond the version string in the manifest. That does not mean they will install on 20.0: the manifest still has to be updated, and the platform itself will change before release. It does mean that for those 442 the port is a mechanical step rather than work.
How this is measured, with every caveat — the methodology section.
What this page will not carry
Forecasts and ETAs. The 19.0 growth runs at about ten modules per working day and zero at weekends, and at the edge rates the yearly range spreads fivefold. A line reading “at this pace parity arrives in May” drawn from that is a claim, not a fact, and we do not make it.
A “who ports worst” ranking. Technically possible from the same data. It will not happen.
Subscribe
Atom feed of 20.0 events: one entry for “a branch appeared in this repository” and a separate one for “modules appeared in that branch”. Those are different pieces of news, and merging them would announce progress that is not there yet. This tracker has no subscription form and will not get one — a feed needs neither an address nor a registration.
The feed is empty right now, and that is the truthful answer: no events yet. Subscribing makes sense precisely now — so you hear about the first one rather than finding it on your second visit.