Repository navigation
Releases: SparkDrago05/odoo-dev-panel
Release list
Odoo Dev Panel 0.14.1
Fixed
- Crash at launch from an oversized saved window size. The window size was stored in physical pixels, so it changed whenever the display scale differed between closing and reopening (for example a laptop panel at 150% and an external monitor at 100%). A saved size could grow until GTK could not allocate the window:
Unable to create Cairo image surface, then a segmentation fault at every start. The size is now kept in logical pixels in.window-size.json, and a damaged value is ignored.
An existing oversized .window-state.json no longer stops the app from starting; nothing has to be deleted by hand. Position, maximized and fullscreen state are remembered as before.
Full Changelog: v0.14.0...v0.14.1
Odoo Dev Panel 0.14.0
Full Changelog: v0.13.0...v0.14.0
Odoo Dev Panel 0.13.0
Find out why a local Odoo is slow, look inside its database without writing SQL, and see the log of an Odoo you started elsewhere.
New
Performance (new section in the sidebar, Ctrl+9)
- What is going on now: each Odoo process tree's CPU and memory; PostgreSQL sessions with their state, running time, wait event and the sessions blocking them; lock counts; connections against PostgreSQL's limit.
- A short verdict: Odoo busy, connections near the limit, a session waiting for a lock (and who holds it), a transaction left open, a long query, debug or SQL logging,
--devslowing pages, workers that could open more connections than PostgreSQL allows. When nothing is wrong, it says so. - Everything is read as the installation's own PostgreSQL role. Other roles' queries stay hidden unless you Grant pg_monitor (one sudo script, shown first, read-only statistics, not superuser; revocable).
- Cancel query stops a running statement of the installation's own sessions after you confirm. Connections are never terminated.
Database explorer (Databases → a database → Models, external IDs, size…), read-only
- Models with their fields, types, relations in and out, required and stored flags, custom fields and the modules that define them.
- External IDs, searchable.
- Database size, the largest tables, and exact row counts capped at 100,000.
SQL log: tick Log SQL in Run (odp start --log-sql) and the Problems view groups every query by statement, with count and time.
Instances started outside the app (a terminal, an IDE, a systemd unit) show their log on their page when the config sets a logfile you can read, or from the unit's journal, with Problems and clickable tracebacks.
The window reopens at the size, position and maximized state it was closed with (on Wayland, the size).
CLI: odp perf ROOT [--cancel PID] [--grant|--revoke], odp db models|model|xmlids|sizes|count ROOT DB, odp logs --sql, odp logs --config CONFIG [-f].
Install
sudo apt install ./odoo-dev-panel_0.13.0_amd64.debUpgrading from 0.12.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.12.0...v0.13.0
Odoo Dev Panel 0.12.0
Debug Odoo from VS Code without building the command by hand, and jump from a traceback to the line.
New
Debug (tab on each config's page)
- Presets: a database, modules to update or install,
--devflags and a fixed debugpy port; or modules to test under the debugger in a throwaway database (dropped when the tests pass, kept when they fail). - Start under debugpy: Odoo runs as the installation's run-as user, like any other run, with
--workers=0 --max-cron-threads=0so breakpoints in requests hit. Your config file is not changed. The plan shows the exact command and checks that debugpy is installed (Python tab) and the port is free. - VS Code launch.json… writes one attach entry per preset into
<installation>/.vscode/launch.json. You see the diff first; your other entries stay; an entry with the same name is replaced only if you tick it; a file with comments is never rewritten (you get the entries to paste); the previous file is kept as a backup. - Run has a Debug with debugpy option, and the Tasks step
instance.starttakesdebug_port.
Tracebacks open in your IDE: in any log and in Problems, a File "…", line N line opens that file at that line (VS Code, PyCharm; ODP_IDE picks the editor).
While a debug session runs, any local user can connect to its port on 127.0.0.1 and run code as the run-as user. Use it on a machine you do not share.
CLI: odp debug list|add|edit|delete|plan|start|vscode|open, odp start --debug-port N [--debug-wait].
Install
sudo apt install ./odoo-dev-panel_0.12.0_amd64.debUpgrading from 0.11.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.11.0...v0.12.0
Odoo Dev Panel 0.11.0
Workflows: run a sequence of typed operations with one preview, confirmations where data changes, and retry from the step that failed.
New
Tasks (new section in the sidebar, Ctrl+8)
- Workflows of typed steps: pull or fetch repositories; snapshot, back up, clone, neutralize, restore, revert or drop a database; upgrade, install or test modules; validate or install Python packages; start or stop an instance; and a command step. Each step uses the same plan as the matching panel or
odpcommand, so the checks and refusals are the same. - Built-in recipes: Safe upgrade (snapshot the database and filestore, upgrade the modules, then run their tests in a throwaway database), Pull and upgrade, and Neutralized test copy (clone, neutralize, start Odoo on the copy). Copy a recipe to change it.
- Parameters (installation, config, database, modules, a new database name, text) are asked for when you run a workflow and checked against what the app discovered.
- Preview before anything runs: every step with its checks, the exact commands, and who runs it (you, or the installation's run-as user through its agent).
- Confirmations: steps that change data wait for you unless the workflow marks them
auto = true. A command step and a database drop always wait. - Safe failure: each step is planned again just before it runs, and the first failure stops the run. Earlier steps are not undone; snapshots and receipts stay. Retry starts again at the failed step with the same parameters. A workflow changed since the run cannot be retried.
- Commands are argument lists, never shell lines, run as you or as the run-as user. The preview names the user and the folder.
- History of every run (steps, statuses, commands, no output) in
~/.local/state/odoo-dev-panel/tasks/history.jsonl. - Workflows are TOML files in
~/.config/odoo-dev-panel/workflows/, edited in the app with live validation or in any editor.
CLI: odp tasks list|show|ops|preview|run|retry|history|import|delete, for example odp tasks run safe-upgrade -p config=/etc/odoo/odoo17/client.conf -p database=client_db -p modules=sale_x.
Install
sudo apt install ./odoo-dev-panel_0.11.0_amd64.debUpgrading from 0.10.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.10.0...v0.11.0
Odoo Dev Panel 0.10.0
The Python environment of every installation, and the development tools Odoo needs.
New
Python tab (in each installation)
- Interpreter at a glance: the Python the venv runs, the version it was built for, the version pinned for this Odoo series, and whether it is the managed interpreter or the system Python (which a distribution upgrade can break).
- Requirements, measured. Every line of Odoo's
requirements.txtand of your repositories' requirement files, with its status: met, missing, wrong version (installed outside the specifier), not for this Python, or unreadable. Aliases likepsycopg2-binarycount. - Conflicts between requirement files are shown only when no version can satisfy them (for example two different pins).
- Install missing packages in one step, or type packages to add (
name,name==1.2,name[extra]>=2). They are installed withuvinto the installation's own venv, as the user that runs Odoo, and the command is shown first. URLs, paths and pip options are refused. Nothing is uninstalled. - Validate imports: import Odoo and every required package with the venv's interpreter, as the run-as user, and see which ones fail.
- Copy the package list (
name==version), compare with another installation, measure disk use, and rebuild a broken venv. The Doctor's broken-venv finding links to this tab.
Development tools
- debugpy into the installation's venv, ready for an IDE to attach.
- rtlcss (with Node.js) for right-to-left languages, and wkhtmltopdf with patched Qt for PDF reports, installed through one root script you can read before it runs. wkhtmltopdf is the official 0.12.6.1 build for Ubuntu 22.04 (no official 24.04/26.04 build exists); the app checks its SHA256 before installing it, and it works on Ubuntu 24.04 and 26.04.
CLI: odp python show|install|validate|export|disk|tools ROOT, odp python tool debugpy|rtlcss|wkhtmltopdf.
Install
sudo apt install ./odoo-dev-panel_0.10.0_amd64.debUpgrading from 0.9.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.9.0...v0.10.0
Odoo Dev Panel 0.9.0
A module center for daily Odoo development.
New
Module center (the Modules tab of an installation)
- Every module of a config in one list: the modules on its addons_path and the ones in the installation's repositories that it does not load. Each shows its repository, its state in the database you pick, when the manifest version differs from the database, and manifest problems.
- Changed modules. Uncommitted work in your repositories is mapped to modules: which kinds of files changed (manifest, Python, XML/CSV data, assets, translations, tests), new and removed modules, and modules whose dependency changed. A suggestion (upgrade, install, restart, reload) is shown as a guess; nothing is upgraded by itself.
- Manifest checks: missing
__init__.py, version format and series, license, missing dependencies, data files that do not exist, circular dependencies, shadowed copies. - Upgrade and install from the list or for several selected modules. The exact
odoo-bin ... -u/-i ... --stop-after-initcommand is shown first, a snapshot of the database is taken first by default, and the log stays in Sessions. - Run tests safely. Tests run in a new
odp_test_*database, never in yours, limited to the selected modules (--test-tags /module), with demo data by default. Results show passed/failed counts and the failing tests; the database is dropped when everything passes and kept for inspection when something fails. A history keeps every run. - New module from a minimal template (manifest, models, security, views) into one of your repositories, with every file shown first.
- Open a module in your IDE from the list.
- CLI:
odp modules changed|check|upgrade|install|test|tests|drop-test|scaffold|graph.odp modules CONFIG [MODULE]still shows the dependency graph.
Install
sudo apt install ./odoo-dev-panel_0.9.0_amd64.debUpgrading from 0.8.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.8.0...v0.9.0
Odoo Dev Panel 0.8.0
Git repositories in the workspace, and reproducible setups from profiles.
New
Repositories
- Repositories tab and section. Every installation lists its Git repositories: Community, Enterprise, themes and custom addons, including nested folders such as
custom/cms/admissions, worktrees and repositories on the addons path outside the root. Each shows its branch, uncommitted changes, commits ahead or behind, and problems with an explanation and a command to copy. Ctrl+7 opens all repositories of all installations. - Safe operations. Clone into a folder you choose, fetch, pull (fast-forward only), switch branch, and check out a tag or commit after typing it again. The exact commands are shown first. Nothing is ever reset, cleaned, force-pushed, rebased or merged; uncommitted changes block a pull or switch instead of being lost.
- Bulk fetch and pull report every repository separately (done, failed with the reason, skipped, cancelled), can stop after the current repository, and retry only the failed ones.
- Repositories owned by another Linux user are shown read-only. Your SSH agent and Git credential helpers are used; URLs with a password or token are refused.
- Open a repository in your IDE, a terminal or the file manager. See changed files, a file's diff, and incoming and outgoing commits.
- CLI:
odp repo list|show|diff|open|add|forget|fetch|pull|switch|checkout|apply|addons.
Profiles and bundles
- Profiles are TOML files with install defaults, safe config options and repositories; a bundle is a profile with only repositories. An optional org overlay file adds your organization's repositories and branches under every profile.
{version}and{series}let one profile serve several Odoo versions. Profiles never contain passwords. - New installation wizard in four steps: setup, sources (repository rows with nested folders and a live folder tree), review, install. The review shows where each value came from, checks every destination folder, checks with
git ls-remotethat each branch exists and you have access, and shows what is left from a previous incomplete run. Save your choices as a profile from there. - Apply a profile to an existing installation: missing repositories are cloned, existing ones are kept. Then you see, per config, what addons_path would gain, and only the configs you tick are changed (with a backup).
- Export an installation as a profile: version, repositories, branches and safe settings, never passwords, database settings or ports. What was left out is listed.
- Browse for the Enterprise archive in the wizard.
- Manage profiles and the org overlay in Settings. CLI:
odp profile list|show|import|export|delete|org,odp provision plan|run --profile NAME --dest NAME=FOLDER.
Install
sudo apt install ./odoo-dev-panel_0.8.0_amd64.debUpgrading from 0.7.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.7.0...v0.8.0
v0.7.0
A new workspace interface, and systemd services for Odoo.
New
Workspace
- Explorer. The sidebar lists every installation with its instances under it, with running, stopped and problem markers. Right-click any item for its actions; arrow keys move through the tree.
- Installation and instance pages. An installation has tabs for Overview, Instances, Databases, Modules and Diagnostics. An instance page has the run form, with the exact command shown before you start, and its recent sessions.
- Inspector. Selecting a database, Doctor finding, container, service or instance shows its details and actions on the right. On narrow windows it opens as a drawer.
- Output panel. The output of the session you follow stays at the bottom of every page. Resize it, or hide it with Ctrl+J.
- Command palette. Ctrl+K finds pages, installations, instances, databases, running sessions and actions. Commands open the same dialogs as the buttons, so password prompts, checks and typed confirmations still apply.
- Light and dark themes, a compact density, and Geist fonts bundled with the app.
Screens
- Databases: one action per row (Back up) and the rest in a menu. Neutralize and Drop are set apart in red and still ask you to type the database name.
- Doctor: filter by severity, group by installation or severity, and read why a finding matters and how to fix it next to the list.
- Sessions: agents, running sessions and history side by side with the selected session's output, problems and shell.
- Logs: level colors, tracebacks marked, level filter, search, line wrap, copy, and follow-the-end. Long logs stay fast.
Services
- systemd units that run Odoo are listed with their state and boot setting. Start, stop, restart, enable and disable ask for your password through sudo. Read the journal and the unit file. Units that do not run Odoo are never listed or touched.
- CLI:
odp services list|status|start|stop|restart|enable|disable|logs|show.
Install
sudo apt install ./odoo-dev-panel_0.7.0_amd64.debUpgrading from 0.6.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.6.0...v0.7.0
Odoo Dev Panel 0.6.0
A picture of module dependencies, module states from a database, and more ways to compare.
New
Modules
- Picture. Click a module to see what it needs on the left and what needs it on the right, as a diagram you can click through. Limit it with the depth setting; very large graphs ask you to.
- State in database. Choose a database to see each module's state in it: installed, to upgrade, or not in the database. It also flags modules installed at another version than the manifest (typical after moving a database to a newer Odoo series: run
-uon them) and modules the database holds that the addons_path cannot find, which Odoo cannot load. Databases whose role uses peer authentication are read through the run-as user's agent. - Also look in a folder. Add a folder of modules that the config does not load, to see how they fit in.
Compare
- A new switch between Configs, Installations and Databases.
- Installations compares two installations as a whole: Odoo version, git commit, Python version and venv packages.
- Databases compares the installed modules of two databases, by state and version. Modules that are only known, never installed, are left out.
All of this is read-only: manifests are read, never imported, and no database is changed.
Install
sudo apt install ./odoo-dev-panel_0.6.0_amd64.debUpgrading from 0.5.0: install the new .deb over it. Agents and running Odoo instances are not affected. Check the download against SHA256SUMS.
Full Changelog: v0.5.0...v0.6.0