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

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)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.

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 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 mideValor
Pull requests abiertos hacia la rama 20.0282
  de ellos borradores41
Repositorios con al menos un pull request abierto52
Abiertos en las últimas 24 horas, en cualquier estado18
Fusionados19
  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.

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-302331.431
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
2026-10-132341.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.

16.0
55 points · 2026-08-19…2026-10-13 · 3.099 → 3.144 (+45) · 1 incomplete snapshot excluded
17.0
54 points · 2026-08-19…2026-10-13 · 1.930 → 1.998 (+68) · 1 incomplete snapshot excluded
18.0
54 points · 2026-08-19…2026-10-13 · 2.877 → 3.043 (+166) · 1 incomplete snapshot excluded
19.0
54 points · 2026-08-19…2026-10-13 · 1.192 → 1.476 (+284) · 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.

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ónImagen de la plataformaMódulosSe instalanFallanFalta una dependenciaAtribuido a la plataforma
10/09/2026modidx/odoo:master-deps-202609101.29044230845
18/09/2026modidx/odoo:20.0-deps-202609181.29043234851

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.

Datos actualizados el 2026-10-13 04:00 UTC · build 4117cc2 · publicamos el registro de instalación con su fecha, no una valoración del proveedor · El CSV y el JSON son abiertos

Dudas o un resultado erróneo: abrir un issue o hello@allservices.one

Privacidad · Condiciones

Proyecto independiente. Sin vinculación con Odoo S.A. ni con la Odoo Community Association.