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.

La branche 20.0 existe chez Odoo depuis le 17/09/2026 à 07:00 UTC ; la sonde l'a enregistrée dans son intervalle d'interrogation de 15 minutes. Dépôts OCA qui la portent déjà : 237 sur 240. Le veilleur de branche est passé pour la dernière fois le 13/10/2026 03:00 UTC : c'est l'heure de sa vérification, pas celle du tableau ci-dessous, qui porte sa propre date d'instantané. La keynote Odoo Experience a eu lieu le 24/09/2026.

Sont comptés ici les dépôts de l'OCA qui contiennent des addons. Les dépôts de service (outils, modèles) et OCA/OCB — le fork d'Odoo lui-même par l'OCA, pas un dépôt d'addons — sont exclus des deux nombres ; git ls-remote sur OCA/OCB peut donc montrer une branche 20.0 que ce décompte n'inclut pas.

Les builds nocturnes de master portent désormais 20.1a1 (build du 12/10/2026) : c'est la ligne 20.1, pas la 20.0. Master a cessé d'être une approximation de 20.0 entre deux builds nocturnes : le dernier étiqueté 19.5a1 date du 17/09/2026, le premier étiqueté 20.1a1 du 18/09/2026. Aucun build nocturne de master n'a jamais porté l'étiquette 20.0, sur 2 507 builds datés publiés depuis 2017. Les builds nocturnes officiels de 20.0 sont apparus le 24/09/2026 08:45 UTC.

Odoo 20.0

MeasuredValue
Repositories with the branch237 of 240
  of them with modules10
  of them OCA template only227
  of them not read yet0
Modules in those branches56
  of them not disabled (no installable: False in the manifest)6

Snapshot 2026-10-13 02:45 UTC.

So a 20.0 branch on its own says almost nothing: 227 of the 237 repositories that carry it hold only the empty OCA template.

DateRepositoriesModulesΔ modules
2026-09-3023646
2026-10-0123646+0
2026-10-0223646+0
2026-10-0323646+0
2026-10-0423646+0
2026-10-0523649+3
2026-10-0623750+1
2026-10-0723751+1
2026-10-0823753+2
2026-10-0923754+1
2026-10-1023752-2
2026-10-1123752+0
2026-10-1223756+4
2026-10-1323756+0

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.

La file de revue : pull requests vers 20.0

Le compteur de branches ci-dessus est plat par construction : un module ne compte qu'une fois sa migration fusionnée. Avant cela, le mouvement se trouve dans la file de revue de l'OCA, et ce bloc le mesure de l'intérieur.

MesureValeur
Pull requests ouvertes vers la branche 20.0282
  dont brouillons41
Dépôts ayant au moins une pull request ouverte52
Ouvertes dans les dernières 24 heures, quel que soit leur état19
Fusionnées19
  dont migrations de module ([MIG] dans le titre)10

Instantané du 13/10/2026 02:50 UTC, recherche GitHub. C'est une file vivante : les nombres bougent en moins d'une heure, chacun n'est donc vrai qu'avec son heure.

Par dépôt : pr-queue.csv, le même instantané (13/10/2026 02:50 UTC).

Ce qui est compté : des pull requests, pas des modules — une pull request porte généralement un module, mais rien ne le garantit. « Ouvertes » inclut les brouillons. org:OCA couvre aussi OCA/OCB, le fork d'Odoo lui-même par l'OCA, que le compteur de branches ci-dessus exclut. Une pull request est une intention, une installation est un fait : ces nombres n'entrent dans aucun pourcentage de ce site et ne sont un verdict sur aucun module.

À reproduire en cinq secondes : org:OCA is:pr is:open base:20.0 · org:OCA is:pr is:merged base:20.0

A porting trap measured on 20.0: model_id in ir.access.csv

In 20.0, access rules live in ir.access.csv, and its model_id column holds the model's technical name (res.partner, website.adsense.settings), not an XML id. We checked every such file in the official odoo:20.0 image (2026-10-05): 235 files, 2 573 values with a dot (the other 12 are website and test models), no model_* anywhere and no model_id/id column. Copy model_<name> over from an old ir.model.access.csv, where the column was model_id:id, and the module fails to load with No matching record found for name 'model_…' in field 'Model'. If you really need an XML id, name the column model_id/id.

How 19.0 went — the same measurement

19.0 was released on 2025-09-01. This is where it stands 13 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.

MeasuredValue
Repositories with the branch233 of 236
  of them with modules123
  of them OCA template only110
  of them not read yet0
Modules in those branches1 430
  of them not disabled (no installable: False in the manifest)—

Snapshot 2026-09-29 08:49 UTC. Trees are read only where the ref has moved, so the number stays current without re-cloning everything. Each snapshot counts against the OCA addons repositories that existed on its own date — 236 for this one, 240 for the 20.0 one above.

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.

DateRepositoriesModulesΔ modules
2026-09-292331 430
2026-09-302331 431+1
2026-10-012331 434+3
2026-10-022331 440+6
2026-10-032331 446+6
2026-10-042331 446+0
2026-10-052331 447+1
2026-10-062341 448+1
2026-10-072341 451+3
2026-10-082341 457+6
2026-10-092341 462+5
2026-10-102341 466+4
2026-10-112341 466+0
2026-10-122341 466+0

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.

16.0
54 points · 2026-08-19…2026-10-12 · 3 099 → 3 143 (+44) · 1 incomplete snapshot excluded
17.0
53 points · 2026-08-19…2026-10-12 · 1 930 → 1 997 (+67) · 1 incomplete snapshot excluded
18.0
53 points · 2026-08-19…2026-10-12 · 2 877 → 3 035 (+158) · 1 incomplete snapshot excluded
19.0
53 points · 2026-08-19…2026-10-12 · 1 192 → 1 466 (+274) · 1 incomplete snapshot excluded
20.0
54 points · 2026-08-19…2026-10-13 · 0 → 56 (+56) · 1 incomplete snapshot excluded

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.

Deux exécutions datées, côte à côte

Le même ensemble gelé de modules, exécuté deux fois face à deux plateformes différentes. Seule la plateforme a changé : le code des modules est octet pour octet celui de la première exécution, prouvé par les empreintes du manifeste et de l'arborescence de chaque module. La première exécution reste publiée telle qu'elle a été mesurée ; celle-ci s'ajoute à côté, et non à sa place.

ExécutionImage de la plateformeModulesS'installentÉchouentDépendance manquanteAttribué à la plateforme
10/09/2026modidx/odoo:master-deps-202609101 29044230845
18/09/2026modidx/odoo:20.0-deps-202609181 29043234851

Chaque exécution de l'ensemble figure dans une seule colonne : chaque ligne totalise donc le nombre de modules.

1 321 modules, l'ensemble gelé. Une seule ligne change dans chaque manifeste : vers 19.5.* pour l'exécution du 10/09/2026 et vers 20.0.* pour celle du 18/09/2026, à chaque fois vers la série propre de la plateforme.

Sur les 1 290 modules mesurés dans les deux exécutions, 1 276 ont gardé le même verdict. 0 se sont mis à s'installer, 10 ont cessé de le faire et 4 sont passés d'une attribution à la plateforme à une dépendance manquante.

ok→attributed_platform: 10 · attributed_platform→dep: 4

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.

Dernier événement du suivi : Des modules sont apparus dans la branche 20.0 de OCA/sale-workflow, 12/10/2026 15:00 UTC.

Données mises à jour le 2026-10-13 03:00 UTC · build 4117cc2 · nous publions le journal d'installation avec sa date, pas une note attribuée à l'éditeur · Le CSV et le JSON sont ouverts

Une question ou un résultat erroné: ouvrir un ticket ou hello@allservices.one

Confidentialité · Conditions

Projet indépendant. Sans lien avec Odoo S.A. ni avec l'Odoo Community Association.