Every version moves something in the frontend. The widgets that keep working are the ones that stay on public APIs, keep their state in a store rather than the DOM, and never patch a template they do not own. What that looks like in practice.
More posts
Where QWeb reports go wrong, and how to tell quicklyMost broken PDFs come down to one of four things: a missing paper format, a field that is empty in production, wkhtmltopdf disagreeing with your CSS, or a t-foreach over the wrong recordset. A short triage order that finds it fast.Shipping a module to the Odoo Apps storePublishing is its own small project: the manifest, the screenshots, the version branches, and the review notes that come back. Notes from getting a POS module through, and the things I would prepare earlier next time.Planning an Odoo migration you can actually roll backThe scripts matter less than the order you run them in. How I audit custom modules first, port deprecated APIs before touching data, and keep a parity check after every run so a bad migration is a restore rather than a rebuild.