Skip to content

PyVELM v1.0.1

Release date: 2026-06-01

Patch release after v1.0.0: ORM super chaining, nested menu groups, versioned docs (mike), documentation and CI updates, and early MySQL/MariaDB portability work.


Highlights

ORM super chaining

Stacked _inherit extensions can call super().write(vals) or self.super().write(vals) (Odoo / velmphp ergonomics). The registry records inherit_chain for introspection.

class PartnerPro(models.Model):
    _inherit = "res.partner"

    def write(self, vals):
        # before hooks …
        super().write(vals)
        # after hooks …

Runnable example: examples/modules/super_chain_demo* (three-layer button_cancel stack).

See Declaring models → Super chaining.

Nested menu groups

m.group("business", "Business", icon="square-3-stack-3d").children([
    m.group("business.directory", "Directory").children([
        m.item("business.partners", "Partners", view="partner.list"),
    ]),
])

MenuBranch.children() sets parent= from the containing group; the loader flattens trees via flatten_menus(). Cross-module parent= is unchanged.

See Modules → Menus and Navigation.

Versioned documentation

  • GitHub Pages per-release trees (/latest/, /1.0/, …) via mike.
  • Material version picker in the site header.
  • Docs CI deploys on v* tags; PRs run mkdocs build --strict only.

See Doc versions (mike).

MySQL / MariaDB (work in progress)

Early portability for a future v1.1 line:

  • DialectCapabilities for mysql / mariadb
  • DSN normalisation (mysql+pymysql://)
  • Portable DDL/type mapping and schema reset
  • MariaDB CI job + HTTP smoke

Requires pymysql (core dependency). Postgres and SQLite remain the supported production paths for this release.

See multi-database.md.


Upgrade

pip install -U "pyvelm==1.0.1"
pyvelm db migrate

After changing views/menu.py, Apps → Sync affected modules so ir.ui.menu parents stay in sync.