Les 39 puces du non-publié décrivent du travail fini qu'aucun numéro ne permettait de citer. La section 1.8.0 les porte, avec la note de migration que réclament le choix de l'interpréteur Python et le retrait d'Ubuntu 20.04 et 22.04. La version déclarée suit, comme le veut doc/RELEASE.base.md : le fichier semver que lit env_var.sh, les huit pyproject, npm, CLAUDE.md et la note des versions supportées. La ligne de contracts/compatibility.json reste en 1.7.0, elle atteste un appariement mobile éprouvé et non la version courante. Le commentaire de todo.py ne nomme plus de version, celle du dépôt étant marquée « default » dans le fichier des versions supportées. Vérifié : ERPLIBRE_VERSION=1.8.0, parité 17/8/10/2/2, tests de version verts. --- EN --- The unreleased list's 39 entries describe finished work no number could cite. The 1.8.0 section carries them, with the migration note that choosing the Python interpreter and dropping Ubuntu 20.04 and 22.04 call for. The declared version follows, as doc/RELEASE.base.md wants: the semver file env_var.sh reads, the eight pyproject files, npm, CLAUDE.md and the supported-version note. The contracts/compatibility.json row stays at 1.7.0, attesting a tested mobile pairing and not the current version. The todo.py comment names no version any more, the repository's own being marked « default » in the supported-version file. Checked: ERPLIBRE_VERSION=1.8.0, 17/8/10/2/2 parity, version tests green. Assisted-by: Claude Opus 5 |
||
|---|---|---|
| .. | ||
| auto_ask.py | ||
| database_manager.py | ||
| deploy_form_extras.py | ||
| deploy_form_lib.py | ||
| deploy_form_plan.py | ||
| dev_tools.py | ||
| kdbx_manager.py | ||
| logo_ascii.txt | ||
| longtest_menu.py | ||
| migration_form.py | ||
| migration_stats.py | ||
| migration_status.py | ||
| migration_status_tui.py | ||
| proxmox_deploy_form.py | ||
| proxmox_menu.py | ||
| qemu_access.py | ||
| qemu_deploy.py | ||
| qemu_deploy_form.py | ||
| qemu_hardware.py | ||
| qemu_install.py | ||
| qemu_install_monitor.py | ||
| qemu_manage.py | ||
| qemu_menu.py | ||
| qemu_network.py | ||
| qemu_privilege.py | ||
| qemu_recover.py | ||
| README.base.md | ||
| README.fr.md | ||
| README.md | ||
| source_todo.sh | ||
| textual_setup.py | ||
| todo.json | ||
| todo.py | ||
| todo_example.json | ||
| todo_file_browser.py | ||
| todo_i18n.py | ||
| todo_install.py | ||
| todo_prefs.py | ||
| todo_telemetry.py | ||
| todo_upgrade.py | ||
| version_manager.py | ||
| vpn_menu.py | ||
TODO is an assistant robot to use ERPLibre
Execute it with ./script/todo/todo.py or make todo.
For a new project, copy todo_example.json to private/todo/todo_override.json | private/todo/todo_override_private.json and edit it.
The mail/ package is the mail client reachable from Assistant > Mail:
several IMAP/SMTP accounts, a local cache, and a Textual TUI. See
../../doc/EMAIL.md.
Where the code lives
todo.py carries the menus and the general helpers. Everything around a
single subject sits in its own file, and the whole thing is assembled by
mixins on the TODO class — one file, one subject, its header states its
boundary.
| File | What it owns |
|---|---|
todo.py |
the menus, the configuration, the general helpers |
qemu_menu.py |
the QEMU/KVM menu, the image catalogue, the statistics |
qemu_deploy.py |
deciding then running a deployment |
qemu_install.py |
the recipes run inside a VM |
qemu_manage.py |
lifecycle, disks, hardware, cleanup, addresses |
qemu_access.py |
SSH, tunnels, consoles, Android emulator |
proxmox_menu.py |
the same, on a REMOTE Proxmox VE host |
The two deployment forms — libvirt here, Proxmox over there — ask the same questions, so they share a foundation rather than each holding a copy:
| File | What it owns |
|---|---|
deploy_form_lib.py |
pure logic (sizes, plan, totals, spec), the shared CSS, the resource-row factory, the progress view |
deploy_form_plan.py |
the plan's gestures: overrides, locks, copies, renaming, free values |
qemu_deploy_form.py |
what QEMU/KVM adds: desktops, tools, branches, install profiles |
proxmox_deploy_form.py |
what Proxmox adds: host, storage, bridge, VMID, address |
A form inherits PlanMixin and provides three hooks: which presets each
resource offers, the name a VM would fall back to, and what a lock freezes.
test_todo_deploy_form_lib.py fails if a form redefines a gesture the
foundation already carries — that is what keeps the architecture from drifting
back into two copies.