Tradução automática. Os dados e os números são a fonte da verdade; a redação pode conter erros de tradução e alguns trechos podem continuar em inglês. A versão autoritativa são as páginas em inglês e em ucraniano. avise-nos se algum termo estiver impreciso

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.

O branch 20.0 existe na Odoo desde 17/09/2026 às 07:00 UTC; o observador registou-o dentro do seu intervalo de sondagem de 15 minutos. Repositórios da OCA que já o têm: 237 de 240. O vigia do branch rodou pela última vez em 13/10/2026 03:00 UTC — é a hora da verificação dele, não a da tabela abaixo, que tem a sua própria data de instantâneo. A keynote do Odoo Experience aconteceu em 24/09/2026.

Aqui contam os repositórios da OCA que têm addons. Repositórios de serviço (ferramentas, modelos) e OCA/OCB — o fork do próprio Odoo pela OCA, não um repositório de addons — ficam fora dos dois números, então git ls-remote em OCA/OCB pode mostrar um branch 20.0 que esta contagem não inclui.

As compilações noturnas do master agora carregam 20.1a1 (compilação de 12/10/2026) — essa é a linha 20.1, não a 20.0. O master deixou de ser uma aproximação da 20.0 entre duas compilações noturnas: a última rotulada 19.5a1 é de 17/09/2026 e a primeira rotulada 20.1a1, de 18/09/2026. Nenhuma noturna do master jamais teve o rótulo 20.0 — em 2.507 compilações datadas publicadas desde 2017. As compilações noturnas oficiais da 20.0 apareceram em 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.

A fila de revisão: pull requests para 20.0

O contador de branches acima é plano por construção: um módulo só conta depois que a sua migração é mesclada. Antes disso, o movimento está na fila de revisão da OCA, e este bloco o mede por dentro.

O que é medidoValor
Pull requests abertos para o branch 20.0282
  dos quais rascunhos41
Repositórios com pelo menos um pull request aberto52
Abertos nas últimas 24 horas, em qualquer estado19
Mesclados19
  dos quais migrações de módulo ([MIG] no título)10

Instantâneo de 13/10/2026 02:50 UTC, busca do GitHub. É uma fila viva: os números mudam em menos de uma hora, então cada um só é verdadeiro junto com o seu horário.

Por repositório: pr-queue.csv, o mesmo instantâneo (13/10/2026 02:50 UTC).

O que é contado: pull requests, não módulos — um pull request costuma levar um módulo, mas nada garante isso. «Abertos» inclui rascunhos. org:OCA abrange também OCA/OCB, o fork do próprio Odoo pela OCA, que o contador de branches acima deixa de fora. Um pull request é uma intenção; uma instalação é um fato: estes números não entram em nenhuma porcentagem deste site e não são veredito sobre nenhum módulo.

Reproduza em 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-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.

Duas execuções datadas, lado a lado

O mesmo conjunto congelado de módulos, executado duas vezes contra duas plataformas diferentes. Só a plataforma mudou: o código dos módulos é byte a byte o que a primeira execução usou, provado pelos hashes do manifesto e da árvore de cada módulo. A primeira execução continua publicada tal como foi medida — esta é acrescentada ao lado, não no lugar dela.

ExecuçãoImagem da plataformaMódulosInstalamFalhamFalta uma dependênciaAtribuído à plataforma
10/09/2026modidx/odoo:master-deps-202609101.29044230845
18/09/2026modidx/odoo:20.0-deps-202609181.29043234851

Cada execução do conjunto está numa única coluna, por isso cada linha soma o número de módulos.

1.321 módulos, o conjunto congelado. Em cada manifesto muda uma linha: para 19.5.* na execução de 10/09/2026 e para 20.0.* na de 18/09/2026, sempre para a série da própria plataforma.

Dos 1.290 módulos medidos em ambas as execuções, 1.276 mantiveram o mesmo veredito. 0 passaram a instalar, 10 deixaram de instalar e 4 passaram de uma atribuição à plataforma para uma dependência em 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 do rastreador: Apareceram módulos no branch 20.0 de OCA/sale-workflow, 12/10/2026 15:00 UTC.

Dados atualizados em 2026-10-13 03:00 UTC · build 4117cc2 · publicamos o log de instalação com data, não uma avaliação do fornecedor · O CSV e o JSON são abertos

Dúvidas ou um resultado errado: abrir uma issue ou hello@allservices.one

Privacidade · Termos

Projeto independente. Sem vínculo com a Odoo S.A. nem com a Odoo Community Association.