Skip to content

[BETA] 4.25.0#132

Open
brinkflew wants to merge 14 commits intomainfrom
beta
Open

[BETA] 4.25.0#132
brinkflew wants to merge 14 commits intomainfrom
beta

Conversation

@brinkflew
Copy link
Copy Markdown
Contributor

Description

Only odoo/addons is required as other base modules are loaded by the framework. Explicitly adding that path in the addons-paths of odoo-bin introduces errors when running an upgrade locally.

Compliance

  • I have read the contribution guide
  • I made sure the documentation is up-to-date both in doctrings and the docs directory
  • I have added or modified unit tests where necessary
  • I have added new libraries to the requirements.txt file, if any
  • I have incremented the version number according the versioning guide
  • The PR contains my changes only and no other external commit

Only `odoo/addons` is required as other base modules are loaded by
the framework. Explicitly adding that path in the addons-paths of
`odoo-bin` introduces errors when running an upgrade locally.
@brinkflew brinkflew self-assigned this Jan 28, 2026
Instead, only load table definitions and constraints when the table
is created. This only impacts Odev's database, used for internal
operations.

Performance gains:
- Framework loaded: 5ms (1.3%)
- Framework started: 48ms (6.4%)
- Execution completed: 46ms (5.5%)
Avoid some costly operations when update is not needed.

Performance gains:
- Framework loaded: 6ms (1.7%)
- Framework started: 48ms (5.8%)
- Execution completed: 51ms (6.5%)
Plugins where installed at every run of odev, taking a substantial
amount of time. Also check for missing requirements before running
`pip install`, as the operation is generally 50 times faster and can
prevent running a useless install.

Performance gains:
- Framework loaded: 25ms (8.1%)
- Framework started: 211ms (42.3%)
- Execution completed: 184ms (31.1%)
Move some imports to lazy-load features only when required.

Performance gains: minimal
We noticed the implematation of `functools.ttl_cache` was not fit with
our needs and was failing to cache some subprocesses results.
This had an unnecessary toll on performances when listing databases.
Allow choosing a value for the bypass (do or do not).
Only run the subprocess once for all databases instead of once per
database. This makes it more efficient if coupled with proper caching.
@brinkflew brinkflew marked this pull request as draft January 28, 2026 18:52
Stop filtering detached and version-mismatched worktrees in the shared iterator so
commands can decide how to handle each case themselves. This avoids false
"worktree does not exist" errors when a command needs to inspect detached
worktrees before applying its own logic.
`warnings.deprecated` exists only from Python 3.13 onward; add
`odev.common.deprecation` with a pre-3.13 shim and use it from `console` so
CI on 3.10–3.12 can import the stack again.

Stop shadowing the `upgrade` argument in `Odev.update()` and run the post-
update path when the repo or plugins reported changes (or `upgrade=True`).
Fix `install_requirements` treating the `missing_requirements` generator as
always truthy, and skip cleanly when there is no `requirements.txt` so test
plugins can install.

Make `test_04_restart_on_update` force `__should_update_now` so `start()`
exercises update reliably. Add 3.13 to the unit-test matrix and ignore
`.cursor/` and `.agents/` for local tooling.
@brinkflew brinkflew changed the title [IMP] Do not load unecessary odoo/odoo/addons in addons-paths [BETA] 4.25.0 Mar 21, 2026
@brinkflew brinkflew marked this pull request as ready for review March 23, 2026 10:23
* fix: only process requested version worktrees in GitCommand

* fix: respect ODEV_NO_SSH_AGENT and handle decryption failure gracefully

* fix: correctly handle detached HEAD and missing upstream in worktrees

* fix: resolve pre-commit issues and improve robustness

* chore: bump version to 4.26.0
…134)

* [REF] core: support AI CLI sandboxed execution

* fix(rest): add ConnectionResetError to retryable exceptions

The REST connector now catches ConnectionResetError in addition to RequestsConnectionError during requests. This ensures that the built-in retry logic is triggered when a connection is reset by the peer, improving resilience against transient network issues.

* fix(test): improve debugger detection regex

* [IMP] rest: improve cookie handling and fix caching order
- Add head method to RESTConnector
- Fix virtualenv check in LocalDatabase
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants