Traducción automática. Los datos y las cifras son la fuente de verdad; la redacción puede contener errores de traducción y algunos fragmentos pueden seguir en inglés. La versión autorizada son las páginas en inglés y en ucraniano. avísenos si un término no es exacto
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 rama 20.0 existe en Odoo desde el 17/09/2026 a las 07:00 UTC; el observador la registró dentro de su intervalo de sondeo de 15 minutos. Repositorios de OCA que ya la incluyen: 237 de 240. El vigilante de la rama se ejecutó por última vez el 13/10/2026 04:00 UTC: es la hora de su comprobación, no la de la tabla de abajo, que lleva su propia fecha de instantánea. La keynote de Odoo Experience tuvo lugar el 24/09/2026.
Aquí se cuentan los repositorios de OCA que contienen addons. Los repositorios de servicio (herramientas, plantillas) y OCA/OCB — el fork de OCA del propio Odoo, no un repositorio de addons — quedan fuera de ambos números, así que git ls-remote sobre OCA/OCB puede mostrar una rama 20.0 que este recuento no incluye.
Las compilaciones nocturnas de master llevan ahora 20.1a1 (compilación del 12/10/2026): esa es la línea 20.1, no la 20.0. Master dejó de ser una aproximación a 20.0 entre dos compilaciones nocturnas: la última etiquetada 19.5a1 es del 17/09/2026 y la primera etiquetada 20.1a1, del 18/09/2026. Ninguna nocturna de master ha llevado nunca la etiqueta 20.0, en 2.507 compilaciones fechadas publicadas desde 2017. Las compilaciones nocturnas oficiales de 20.0 aparecieron el 24/09/2026 08:45 UTC.
Odoo 20.0
| Measured | Value |
|---|---|
| Repositories with the branch | 237 of 240 |
| of them with modules | 10 |
| of them OCA template only | 227 |
| of them not read yet | 0 |
| Modules in those branches | 56 |
of them not disabled (no installable: False in the manifest) | 10 |
Snapshot 2026-10-13 04:01 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.
| Date | Repositories | Modules | Δ modules |
|---|---|---|---|
| 2026-09-30 | 236 | 46 | |
| 2026-10-01 | 236 | 46 | +0 |
| 2026-10-02 | 236 | 46 | +0 |
| 2026-10-03 | 236 | 46 | +0 |
| 2026-10-04 | 236 | 46 | +0 |
| 2026-10-05 | 236 | 49 | +3 |
| 2026-10-06 | 237 | 50 | +1 |
| 2026-10-07 | 237 | 51 | +1 |
| 2026-10-08 | 237 | 53 | +2 |
| 2026-10-09 | 237 | 54 | +1 |
| 2026-10-10 | 237 | 52 | -2 |
| 2026-10-11 | 237 | 52 | +0 |
| 2026-10-12 | 237 | 56 | +4 |
| 2026-10-13 | 237 | 56 | +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 cola de revisión: pull requests hacia 20.0
El contador de ramas de arriba es plano por construcción: un módulo cuenta solo cuando su migración se ha fusionado. Antes de eso, el movimiento está en la cola de revisión de OCA, y este bloque lo mide desde dentro.
| Qué se mide | Valor |
|---|---|
| Pull requests abiertos hacia la rama 20.0 | 282 |
| de ellos borradores | 41 |
| Repositorios con al menos un pull request abierto | 52 |
| Abiertos en las últimas 24 horas, en cualquier estado | 18 |
| Fusionados | 19 |
de ellos migraciones de módulo ([MIG] en el título) | 10 |
Instantánea del 13/10/2026 03:50 UTC, búsqueda de GitHub. Es una cola viva: los números cambian en menos de una hora, así que cada uno es cierto solo junto con su hora.
Por repositorio: pr-queue.csv, la misma instantánea (13/10/2026 03:50 UTC).
Qué se cuenta: pull requests, no módulos: un pull request suele llevar un módulo, pero nada lo garantiza. «Abiertos» incluye los borradores. org:OCA abarca también OCA/OCB, el fork de OCA del propio Odoo, que el contador de ramas de arriba deja fuera. Un pull request es una intención; una instalación es un hecho: estos números no entran en ningún porcentaje de este sitio y no son veredictos sobre ningún módulo.
Reprodúzcalo en cinco segundos: 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.
| Measured | Value |
|---|---|
| Repositories with the branch | 233 of 236 |
| of them with modules | 123 |
| of them OCA template only | 110 |
| of them not read yet | 0 |
| Modules in those branches | 1.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.
| Date | Repositories | Modules | Δ modules |
|---|---|---|---|
| 2026-09-30 | 233 | 1.431 | |
| 2026-10-01 | 233 | 1.434 | +3 |
| 2026-10-02 | 233 | 1.440 | +6 |
| 2026-10-03 | 233 | 1.446 | +6 |
| 2026-10-04 | 233 | 1.446 | +0 |
| 2026-10-05 | 233 | 1.447 | +1 |
| 2026-10-06 | 234 | 1.448 | +1 |
| 2026-10-07 | 234 | 1.451 | +3 |
| 2026-10-08 | 234 | 1.457 | +6 |
| 2026-10-09 | 234 | 1.462 | +5 |
| 2026-10-10 | 234 | 1.466 | +4 |
| 2026-10-11 | 234 | 1.466 | +0 |
| 2026-10-12 | 234 | 1.466 | +0 |
| 2026-10-13 | 234 | 1.476 | +10 |
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.
Dos ejecuciones fechadas, una junto a otra
El mismo conjunto congelado de módulos, ejecutado dos veces contra dos plataformas distintas. Solo cambió la plataforma: el código de los módulos es byte a byte el que usó la primera ejecución, demostrado con los hashes del manifiesto y del árbol de cada módulo. La primera ejecución sigue publicada tal como se midió: esta se añade a su lado, no en su lugar.
| Ejecución | Imagen de la plataforma | Módulos | Se instalan | Fallan | Falta una dependencia | Atribuido a la plataforma |
|---|---|---|---|---|---|---|
| 10/09/2026 | modidx/odoo:master-deps-20260910 | 1.290 | 442 | 3 | 0 | 845 |
| 18/09/2026 | modidx/odoo:20.0-deps-20260918 | 1.290 | 432 | 3 | 4 | 851 |
Cada ejecución del conjunto está en una sola columna, así que cada fila suma el número de módulos.
1.321 módulos, el conjunto congelado. En cada manifiesto cambia una línea: a 19.5.* en la ejecución del 10/09/2026 y a 20.0.* en la del 18/09/2026, cada vez a la serie propia de la plataforma.
De los 1.290 módulos medidos en ambas ejecuciones, 1.276 mantuvieron el mismo veredicto. 0 pasaron a instalarse, 10 dejaron de hacerlo y 4 pasaron de una atribución a la plataforma a una dependencia que falta.
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.
Último evento del seguimiento: Aparecieron módulos en la rama 20.0 de OCA/sale-workflow, 12/10/2026 15:00 UTC.