Commit graph

643 commits

Author SHA1 Message Date
60fb60e156 [IMP] qemu: a VM one can reach, and a first boot that does not stall
The monitor froze the address given at launch, so it lost the VM as soon as
cloud-init renamed the host and DHCP handed out another lease. It now
re-resolves at each attempt, in the views too, and reads virsh without sudo
— « sudo -n » fails in a detached session with no tty.

First boot also stopped paying for what it does not need: the guest agent
leaves cloud-init, snapd and locale-gen go, apt takes the fastest mirror.
The timezone follows the host. And when KVM is missing, the deployment says
so before the wait instead of being mysteriously fifteen times slower.

--- FR ---

Le suivi figeait l'adresse connue au lancement : il perdait donc la VM dès
que cloud-init posait le vrai nom d'hôte et que DHCP donnait un autre bail.
Il la ré-résout désormais à chaque tentative, dans les vues aussi, et lit
virsh sans sudo — « sudo -n » échoue dans une session détachée, sans tty.

Le premier démarrage cesse aussi de payer l'inutile : l'agent invité sort
de cloud-init, snapd et locale-gen disparaissent, apt prend le miroir le
plus rapide. Le fuseau suit l'hôte. Et faute de KVM, le déploiement le dit
avant l'attente, au lieu d'être quinze fois plus lent sans raison visible.

Assisted-by: Claude Opus 5
2026-08-10 03:10:50 -04:00
c84fbc559d [FIX] manifest: give repo init a branch name, not a bare SHA
repo cannot resolve a commit into a manifest revision on a FRESH workspace:
it gave up on « unparseable HEAD », then repo sync on « manifest not
found ». An already-initialised .repo accepts the SHA, which is why only
new installations were hit — four fresh VMs failed identically.

--- FR ---

repo ne sait pas résoudre un commit en révision de manifeste sur un espace
de travail NEUF : il abandonnait sur « unparseable HEAD », puis repo sync
sur « manifest not found ». Un .repo déjà initialisé accepte le SHA, d'où
un défaut limité aux installations neuves — quatre VM ont échoué ainsi.

Assisted-by: Claude Opus 5
2026-08-10 03:10:50 -04:00
b28b734338 [ADD] migration: see and repair the website COW views
A copy-on-write view freezes the module view it came from; the module moves
on and the upgrade dies hours later on a missing anchor. These tools
predict, snapshot, diff, neutralize and reset them. The migration screen
gains the real state of each step, replay from any of them, and statistics.

--- FR ---

Une vue copy-on-write fige la vue de module dont elle vient ; le module
évolue et la mise à niveau meurt des heures plus tard sur un point
d'ancrage absent. Ces outils les prévoient, photographient, comparent,
neutralisent et réinitialisent. L'écran de migration gagne l'état réel de
chaque étape, la reprise depuis n'importe laquelle, et des statistiques.

Assisted-by: Claude Opus 5
2026-08-10 03:10:50 -04:00
b1c1095977 [ADD] analyse: inspect an Odoo database without restoring it
A read-only toolkit answering « what is in this database, and what will
break on a version bump »: schema size and tables no model claims,
customised views compared with their module source, and the x_ fields
Studio left behind. It reads a backup zip directly, so a 40 GB dump needs
no restore, and it reaches every answer from the TODO menu.

--- FR ---

Une boîte à outils en lecture seule qui répond à « qu'y a-t-il dans cette
base, et qu'est-ce qui cassera à la montée de version » : taille du schéma
et tables qu'aucun modèle ne réclame, vues personnalisées comparées à leur
source, champs x_ laissés par Studio. Elle lit un zip de sauvegarde tel
quel, donc sans restaurer, et tout s'atteint depuis le menu TODO.

Assisted-by: Claude Opus 5
2026-08-10 03:10:50 -04:00
18a6f064f5 [FIX] execute: redact the secrets before printing a command
CodeQL flagged five clear-text logging alerts here, and they are real:
todo.py and kdbx_manager.py build « --default_password_auth '<KeePass
password>' » and db_restore.py « --master_password=… », while this file
printed the command before and after every run and logged it on error. The
« if "password" in command » guard covered one branch out of six.

Redaction sits at the display point, not at construction: six outputs here
against commands built all over the repository. Only the value goes, never
the option name, and the RETURNED command stays clear — « [1] redo the
command » needs it. Verified that PreferredAuthentications=password survives.

--- FR ---

CodeQL signalait ici cinq journalisations en clair, et elles sont réelles :
todo.py et kdbx_manager.py construisent « --default_password_auth '<mot de
passe KeePass>' » et db_restore.py « --master_password=… », tandis que ce
fichier affichait la commande avant et après chaque exécution et la
journalisait en erreur. Le garde « if "password" in command » couvrait une
branche sur six.

Le caviardage est au point d'affichage, non à la construction : six sorties
ici, contre des commandes bâties partout dans le dépôt. Seule la valeur
part, jamais le nom de l'option, et la commande RENVOYÉE reste en clair —
« [1] refaire la commande » en dépend. Vérifié que
PreferredAuthentications=password reste intact.

Assisted-by: Claude Opus 5
2026-08-07 03:41:26 -04:00
67e902e416 [IMP] todo: menu sections, icons and prompts
Groups the long menus into sections with icons, accepts o/oui everywhere,
shows the default of each yes/no question, and stops offering a traceback
line as a database name when PostgreSQL is unreachable.

--- FR ---

Regroupe les menus longs en sections avec icônes, accepte o/oui partout,
affiche la valeur par défaut de chaque question oui/non, et cesse de
proposer une ligne de trace d'appel comme nom de base quand PostgreSQL est
injoignable.

Assisted-by: Claude Opus 4.8
Assisted-by: Claude Opus 5
2026-08-07 03:41:26 -04:00
1208c919a1 [ADD] todo: preferences and Configuration menu
Stores the per-user settings in ~/.erplibre/todo_prefs.json: which deploy
interface to use, what to display while deploying, which migration
interface. A missing or corrupt file reads as defaults.

--- FR ---

Range les réglages propres à l'utilisateur dans
~/.erplibre/todo_prefs.json : interface de déploiement, affichage pendant
le déploiement, interface de migration. Un fichier absent ou corrompu se
lit comme les valeurs par défaut.

Assisted-by: Claude Opus 4.8
2026-08-07 03:22:26 -04:00
4dfe058c70 [ADD] todo: navigation telemetry
Records the menus visited and shows them as a tree, a kanban or a list.
The tree is derived from the code, so a command never visited appears too,
and can be run from there.

--- FR ---

Enregistre les menus visités et les présente en arbre, en kanban ou en
liste. L'arbre est dérivé du code, si bien qu'une commande jamais visitée
y figure aussi, et peut être lancée de là.

Assisted-by: Claude Opus 4.8
2026-08-07 03:22:26 -04:00
7d4922bf09 [ADD] todo: QEMU/KVM menu
Deploy, list, test, resize, delete and clean up VMs. Adds the SSH
configuration with recursive ProxyJump, port forwarding, and registration
of the QEMU hosts in virt-manager.

--- FR ---

Déployer, lister, tester, redimensionner, supprimer et nettoyer des VM.
Ajoute la configuration SSH avec ProxyJump récursif, la redirection de port
et l'enregistrement des hôtes QEMU dans virt-manager.

Assisted-by: Claude Opus 4.8
2026-08-07 03:22:26 -04:00
c44ce4b814 [ADD] todo: TUI form to deploy VMs
Shows every deployment setting at once, with a plan that recomputes on each
change and marks the collisions. A collapsible progress view follows.

--- FR ---

Affiche tous les réglages de déploiement d'un coup, avec un plan qui se
recalcule à chaque changement et signale les collisions. Une vue de
progression repliable suit.

Assisted-by: Claude Opus 4.8
2026-08-07 03:22:26 -04:00
ba5aa5c97d [ADD] todo: dashboard to follow the VM installs
One Textual dashboard per install run: live status, logs, host telemetry,
error counts and history. The installs run detached, so closing it does not
stop them.

--- FR ---

Un tableau de bord Textual par exécution : état en direct, logs, télémétrie
de l'hôte, comptes d'erreurs et historique. Les installations tournent
détachées : le fermer ne les arrête pas.

Assisted-by: Claude Opus 4.8
2026-08-07 03:22:26 -04:00
5e7391252b [ADD] todo: install Textual on demand
The TUI screens need Textual. Rather than naming it, the CLI offers to
install it for the running interpreter, bounded to the major the screens
are written for.

--- FR ---

Les écrans TUI ont besoin de Textual. Plutôt que de le nommer, le CLI
propose de l'installer pour l'interpréteur courant, borné à la majeure pour
laquelle les écrans sont écrits.

Assisted-by: Claude Opus 4.8
Assisted-by: Claude Opus 5
2026-08-07 03:22:26 -04:00
dd98955192 [IMP] install: support Fedora, Debian, Ubuntu and Arch
Adds a Fedora dependency installer, rewrites the Arch one on pacman rather
than an AUR helper absent from cloud images, and repairs the Debian path:
apt lock timeout, PostGIS best-effort, Ubuntu 26.04, Node 22.

--- FR ---

Ajoute un installeur de dépendances Fedora, réécrit celui d'Arch sur pacman
plutôt qu'un assistant AUR absent des images cloud, et répare le chemin
Debian : attente du verrou apt, PostGIS best-effort, Ubuntu 26.04, Node 22.

Assisted-by: Claude Opus 4.8
Assisted-by: Claude Opus 5
2026-08-07 03:22:26 -04:00
63534e0473 [ADD] qemu: deploy ERPLibre VMs from cloud images
Deploys Ubuntu, Debian, Fedora and Arch cloud images through libvirt, on
amd64, arm64 and s390x. Handles the image download with mirror fallback,
the cloud-init seed, UEFI without Secure Boot, and the host setup.

--- FR ---

Déploie des images cloud Ubuntu, Debian, Fedora et Arch via libvirt, en
amd64, arm64 et s390x. Gère le téléchargement avec repli sur miroir, le seed
cloud-init, l'UEFI sans Secure Boot et la préparation de l'hôte.

Assisted-by: Claude Opus 4.8
2026-08-07 03:22:26 -04:00
4acd397c11 [ADD] brin_advisor brin_cluster 2026-08-07 02:52:33 -04:00
864f07c681 [IMP] todo: add erase-database menu command
Give users a guided, confirmation-gated way to drop one or all
databases from the interactive CLI. Previously this meant running
make db_drop_all or odoo_bin db --drop by hand, which is easy to
mistype and offers no safeguard. The new entry requires an explicit
'oui'/'yes' (default no) before any irreversible deletion.

Generated by Claude Code 2.1.191 claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-08-07 02:52:26 -04:00
627056b747 [ADD] install: add NTFY self-hosted push notification server
Add a one-command installer for the ntfy push notification server
(Ubuntu/Debian and Arch Linux), wired into the todo.py Deploy menu.

Users can now deploy a local ntfy server from the CLI and subscribe
to topics from their mobile device (ntfy app) to receive push
notifications from ERPLibre.

Generated by Claude Code 2.1.101 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-08-07 02:52:17 -04:00
ba0b919f83 [ADD] make: add SSH remote deployment targets and todo.py integration
Enable deploying and managing ERPLibre on remote servers via SSH
directly from make and the interactive todo.py CLI, since only
local deployment was previously supported.

- New conf/make.ssh.Makefile with 11 targets: ssh_check, ssh_push,
  ssh_install, ssh_run, ssh_stop, ssh_restart, ssh_status, ssh_logs,
  ssh_make, ssh_install_systemd, ssh_install_nginx
- Variables: SSH_HOST (required), SSH_USER, SSH_PORT, SSH_KEY,
  SSH_PATH, SSH_TARGET, SSH_DOMAIN, SSH_ADMIN_EMAIL
- Execute > Deploy menu extended with 11 SSH options in todo.py
- All strings translated fr/en in todo_i18n.py

Generated by Claude Code 2.1.101 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-08-07 02:52:12 -04:00
6443855a92 [FIX] install: --with_extra sans effet sur un env déjà installé (CybroOdoo)
« Installation avec modules extra » (--with_extra) ne clonait pas CybroOdoo
sur un env déjà installé : validate_environment renvoyait « valide » ->
update_environment (où l'état extra est posé via set_version_installed) était
sauté -> get_version_extra restait False -> git_merge_repo_manifest n'ajoutait
pas manifest/git_manifest_extra_odooXX.xml -> CybroOdoo jamais synchronisé ni
ajouté à config.conf (« Nothing to do »).

Nouvelle étape apply_extra_modules(), appelée dans main() quand --with_extra
est demandé (même si l'env de base est déjà installé) : pose l'état extra,
régénère le manifest local + repo sync (clone CybroOdoo). La post-étape qui
suit régénère config.conf, qui prend alors le nouveau chemin d'addons.

--- EN ---

« Install with extra modules » (--with_extra) did not clone CybroOdoo on an
already-installed environment: validate_environment answered « valid » ->
update_environment, where the extra state is set through
set_version_installed, was skipped -> get_version_extra stayed False ->
git_merge_repo_manifest did not add
manifest/git_manifest_extra_odooXX.xml -> CybroOdoo was never synced nor
added to config.conf (« Nothing to do »).

A new step, apply_extra_modules(), is called from main() whenever
--with_extra is requested, even on an already-installed base environment: it
sets the extra state and regenerates the local manifest plus a repo sync,
which clones CybroOdoo. The post-step that follows regenerates config.conf,
which then picks up the new addons path.

Assisted-by: Claude Opus 4.8
2026-08-07 02:49:59 -04:00
b9c9ed8241 [FIX] install: propager l'échec au code de sortie (faux ✅ du suivi corrigé)
update_env_version.py (cible « make install_odoo_XX ») calculait un statut
mais ne faisait JAMAIS sys.exit() et IGNORAIT le retour de
update_environment() (l'install réelle : venv/poetry). Résultat : même
quand install_locally.sh échouait (ex. poetry status 127), le script
sortait 0 -> make 0 -> remote « && » continuait (service créé) ->
__ERPLIBRE_EXIT__ 0 -> le suivi d'installation affichait ✅ à tort.

- main() suit un exit_code : install_system() ou update_environment()
  renvoyant une valeur non nulle (os.system : 0 = succès) -> exit_code=1.
- sys.exit(main() or 0) propage réellement l'échec.
- Étapes post-install (pycharm, git_repo_update, generate_config) exécutées
  seulement si l'install a réussi (sinon .venv.erplibre absent -> cascade
  d'erreurs).

Chaîne désormais complète : install_locally.sh exit 1 -> install_locally_
dev.sh exit 1 -> os.system != 0 -> install_erplibre != 0 ->
update_environment != 0 -> main exit_code=1 -> sys.exit(1) -> make échoue
-> remote && stoppe -> __ERPLIBRE_EXIT__ != 0 -> dashboard ❌.

--- EN ---

update_env_version.py, the « make install_odoo_XX » target, computed a status
but NEVER called sys.exit() and IGNORED the return of update_environment(),
the real install with its venv and poetry. As a result, even when
install_locally.sh failed — poetry status 127, say — the script exited 0 ->
make exited 0 -> the remote « && » carried on and created the service ->
__ERPLIBRE_EXIT__ was 0 -> and the install monitor wrongly showed ✅.

- main() tracks an exit_code: install_system() or update_environment()
  returning non-zero — with os.system, 0 means success — sets exit_code=1.
- sys.exit(main() or 0) actually propagates the failure.
- The post-install steps (pycharm, git_repo_update, generate_config) only run
  when the install succeeded; otherwise .venv.erplibre is missing and errors
  cascade.

The chain is now complete: install_locally.sh exit 1 ->
install_locally_dev.sh exit 1 -> os.system != 0 -> install_erplibre != 0 ->
update_environment != 0 -> main exit_code=1 -> sys.exit(1) -> make fails ->
the remote && stops -> __ERPLIBRE_EXIT__ != 0 -> dashboard ❌.

Assisted-by: Claude Opus 4.8
2026-08-07 02:49:49 -04:00
751cdbbd29 [FIX] selenium: importer Optional (NameError sur l'annotation de type)
extraire_svg_graphique_by_3d annote « -> Optional[str] » mais le module
n'importait pas Optional -> « NameError: name 'Optional' is not defined »
au chargement. Ajout de « from typing import Optional ».

--- EN ---

extraire_svg_graphique_by_3d is annotated « -> Optional[str] » but the module
never imported Optional -> « NameError: name 'Optional' is not defined » at
import time. Added « from typing import Optional ».

Assisted-by: Claude Opus 4.8
2026-08-07 02:49:42 -04:00
cd65565943 [FIX] selenium: retirer -remote-allow-system-access (refusé par geckodriver récent)
webdriver.Firefox échouait : « InvalidArgumentException: Argument
--remote-allow-system-access can't be set via capabilities ». Cet argument
(ajouté pour le Firefox snap d'Ubuntu) est désormais REFUSÉ via les
capabilities par les geckodriver récents, qui gèrent seuls l'accès système
du snap. Il cassait donc TOUS les setups sur geckodriver récent (ici Arch
sans snap). On ne le passe plus.

--- EN ---

webdriver.Firefox was failing with « InvalidArgumentException: Argument
--remote-allow-system-access can't be set via capabilities ». That argument,
added for Ubuntu's snap Firefox, is now REFUSED through capabilities by
recent geckodriver versions, which handle the snap's system access on their
own. It therefore broke EVERY setup running a recent geckodriver — here Arch,
with no snap at all. It is no longer passed.

Assisted-by: Claude Opus 4.8
2026-08-07 02:49:25 -04:00
fef9edbfb1 [IMP] script install: quiet poetry/repo by default, EL_VERBOSE to opt in
Installation was very noisy: poetry ran "install -vvv" and repo sync /
git daemon ran with -v/--verbose. They are now quiet by default
(poetry -q, repo sync -q, no git daemon --verbose) and the detailed
logs come back only when EL_VERBOSE=1.

Applied to install_locally.sh (poetry) and every manifest script (repo
sync + git daemon). env_var.sh documents EL_VERBOSE and respects a value
already set in the environment, so "EL_VERBOSE=1 make install_odoo_18"
works.

--- FR ---

L'installation était très bavarde : poetry tournait en « install -vvv », et
repo sync comme git daemon en -v/--verbose. Ils sont désormais silencieux par
défaut — poetry -q, repo sync -q, plus de git daemon --verbose — et les
journaux détaillés ne reviennent qu'avec EL_VERBOSE=1.

Appliqué à install_locally.sh (poetry) et à tous les scripts de manifest
(repo sync et git daemon). env_var.sh documente EL_VERBOSE et respecte une
valeur déjà passée dans l'environnement, si bien que « EL_VERBOSE=1 make
install_odoo_18 » fonctionne.

Assisted-by: Claude Opus 4.8
2026-08-07 02:49:14 -04:00
6e4cae594b [UPD] script selenium lib: improve diagnostic file download 2026-08-07 02:32:19 -04:00
f8dbfb5487 [UPD] script selenium lib: refresh can wait finish loading 2026-08-07 02:32:15 -04:00
6562db7bb8 [FIX] selenium cancel exit when need humain navigation 2026-08-07 02:32:11 -04:00
c2d42fcc06 [UPD] selenium: update path driver 2026-08-07 02:32:07 -04:00
e46b6612c7 [UPD] script selenium update darkreader-firefox.xpi 2026-08-07 02:32:03 -04:00
de954a146b [FIX] selenium lib: can change default_timeout and change multi-click 2026-08-07 02:31:59 -04:00
4c799aebc3 [IMP] script selenium lib get elements and multiple click 2026-08-07 02:31:50 -04:00
ac4925fd26 [FIX] script selenium support new firefox version 2026-08-07 02:31:45 -04:00
d83cbee234 [UPD] selenium support detection error 2026-08-07 02:31:38 -04:00
281ecd322d [UPD] selenium lib support convertir_svg_en_png_via_selenium 2026-08-07 02:31:34 -04:00
d3512caeac [FIX] selenium lib: get_element wait_clickable return 1 element 2026-08-07 02:31:28 -04:00
596315e41a [IMP] script selenium lib: support download file for network hub
- downloading file and share information with =data=
- default directory is /tmp and not home download seluser
2026-08-07 02:31:24 -04:00
133c1ce1f9 [FIX] script todo upgrade: don't create branch if already exist 2026-08-07 02:11:11 -04:00
d8749422cd [FIX] todo upgrade: download_database_backup_cli lives on db_manager
Choosing « remote » as the migration source raised AttributeError: the method
had moved to DatabaseManager, and todo_upgrade still called it on the TODO
object. The remote path was therefore unusable — the only way to start a
migration from a production backup rather than a local zip.

--- FR ---

Choisir « remote » comme source de migration levait une AttributeError : la
méthode avait été déplacée vers DatabaseManager, et todo_upgrade l'appelait
toujours sur l'objet TODO. Le chemin distant était donc inutilisable — le seul
moyen de démarrer une migration depuis une sauvegarde de production plutôt que
depuis un zip local.

Assisted-by: Claude Opus 5
2026-08-07 02:10:50 -04:00
c41c771ca1 [FIX] install: bump Node.js to v22 for Capacitor v8 support
@capacitor/cli v8.x requires Node.js >=22.0.0. The install script
was pinning NODE_MAJOR=20, causing a fatal error when installing
the mobile app via todo.py.

--- FR ---

@capacitor/cli v8.x exige Node.js >= 22.0.0. Le script d'installation
figeait NODE_MAJOR=20, d'où une erreur fatale à l'installation de
l'application mobile depuis todo.py.

Assisted-by: Claude Sonnet 4.6
2026-08-07 02:09:48 -04:00
9e551c9baf [FIX] script todo database_manager: try click for first installation 2026-08-07 02:09:44 -04:00
3c4841d221 [FIX] generate_config: drop odoo_design-themes from the addons path
The path was listed for every version, but git_manifest_odoo18.0.xml does not
declare that repository — only 12.0 to 17.0 and the extra 18.0 manifest do. On
Odoo 18 without the extra modules, repo never syncs the directory, so Odoo was
handed an addons path entry that does not exist.

--- FR ---

Le chemin était listé pour toutes les versions, alors que
git_manifest_odoo18.0.xml ne déclare pas ce dépôt — seuls les manifestes de
12.0 à 17.0 et le manifeste extra de 18.0 le font. Sur Odoo 18 sans les modules
extra, repo ne synchronise jamais ce répertoire : on donnait donc à Odoo une
entrée de chemin d'addons qui n'existe pas.

Assisted-by: Claude Opus 5
2026-08-07 02:09:40 -04:00
cf78ed1bdc [IMP] installation: parallelize repo sync and poetry install
Poetry install and git-repo sync are independent (different write
paths). Running them sequentially wastes time. Split install_locally.sh
into EL_PHASE=setup|poetry|all phases so install_locally_dev.sh can
background the repo sync while poetry runs in the foreground, reducing
total install time by up to 50% on slow connections.

Set EL_PARALLEL_INSTALL=0 to restore sequential behavior for debugging.

--- FR ---

L'installation poetry et la synchronisation git-repo sont indépendantes —
elles écrivent à des endroits différents — et les enchaîner fait perdre du
temps. install_locally.sh est découpé en phases EL_PHASE=setup|poetry|all
pour qu'install_locally_dev.sh puisse lancer la synchronisation des dépôts
en arrière-plan pendant que poetry tourne au premier plan, réduisant la
durée totale jusqu'à 50 % sur une connexion lente.

EL_PARALLEL_INSTALL=0 rétablit le comportement séquentiel pour le débogage.

Assisted-by: Claude Sonnet 4.6
2026-08-07 02:09:35 -04:00
66b21422c4 [UPD] improve speed install odoo 18 minimal 2026-08-07 02:09:29 -04:00
2922e1f277 [ADD] installation: add optional extra modules (CybroOdoo)
CybroOdoo repos are large and slow to clone, making them unsuitable
for default installation. Moves them to opt-in per-version extra
manifests, introduces .erplibre-state.json to track installation
options per Odoo version, and surfaces the choice in the TODO CLI
sub-menu. Switch auto-detects extra from state and warns when no
state is recorded.

--- FR ---

Les dépôts CybroOdoo sont volumineux et lents à cloner, ce qui les rend
inadaptés à une installation par défaut. Ils passent dans des manifestes
extra par version, activés à la demande ; .erplibre-state.json est
introduit pour suivre les options d'installation de chaque version d'Odoo,
et le choix apparaît dans le sous-menu du CLI TODO. Le changement de
version détecte l'option extra depuis cet état et avertit quand aucun état
n'est enregistré.

Assisted-by: Claude Sonnet 4.6
2026-08-07 02:09:24 -04:00
bf2976ee54 [IMP] update_env_version: add mobile context detection to make version
make version had no visibility into whether the mobile project was
active. Add detection via presence of mobile/erplibre_home_mobile
directory (cloned by repo sync --with_mobile) and display its status
alongside the existing Odoo/Python/Poetry version info.

--- FR ---

make version n'avait aucune visibilité sur l'activité du projet mobile.
Ajoute une détection par la présence du répertoire
mobile/erplibre_home_mobile, cloné par repo sync --with_mobile, et affiche
son état à côté des versions Odoo, Python et Poetry déjà présentes.

Assisted-by: Claude Sonnet 4.6
2026-08-07 02:09:17 -04:00
4e262d63c6 [FIX] installation keep repo when add project 2026-08-07 02:09:07 -04:00
349c881087 [UPD] script manifest update with merge configuration manifest 2026-08-07 02:08:58 -04:00
b4b95042ef [UPD] claude: align the commit command with the AI policy
The template wrote « Generated by Claude Code », the form AI_POLICY.md
replaces with the Assisted-by trailer. Three defects rode along: the model
came from ~/.claude/settings.json, which has no model key here, so it
declared the sonnet default rather than the truth; --author alone failed on
the committer, this checkout having no git identity; and [UPD] was missing
from the tag table while being the most used tag, 134 of the last 400.

The model now comes from the session transcript, the only source that
follows a /model switch — checked, it prints Claude Opus 5. The timezone is
left to the system so contributors keep their own, and the menu substitutes
name and email separately, the placeholders no longer being adjacent.

--- FR ---

Le gabarit écrivait « Generated by Claude Code », la forme que AI_POLICY.md
remplace par le trailer Assisted-by. Trois défauts l'accompagnaient : le
modèle venait de ~/.claude/settings.json, sans clé model ici, si bien qu'il
déclarait le défaut sonnet plutôt que la vérité ; --author seul échouait sur
le committer, ce checkout n'ayant aucune identité git ; et [UPD] manquait au
tableau des tags alors qu'il est le plus utilisé, 134 des 400 derniers.

Le modèle vient désormais de la transcription de session, seule source qui
suive un changement par /model — vérifié, elle rend Claude Opus 5. Le fuseau
est laissé au système, pour que chaque contributeur garde le sien, et le
menu substitue nom et courriel séparément, les jetons n'étant plus accolés.

Assisted-by: Claude Opus 5
2026-08-07 01:56:11 -04:00
4972add36f [FIX] todo upgrade wrong method get_odoo_version 2026-03-29 14:51:02 -04:00
c8025eb2a0 [IMP] todo: add sshfs configuration command
Add interactive sshfs mount setup to the system configuration
menu. Users can enter SSH host details manually or select from
~/.ssh/config, then configure a persistent mount with fstab.
Includes i18n strings for all new UI text.

Generated by Claude Code 2.1.81 model claude-sonnet-4-6
2026-03-23 00:33:26 -04:00
340a55e685 [IMP] todo: git patch 2026-03-22 22:21:16 -04:00
82ad4561cb [FIX] script generate_config force workers = 0 for developer 2026-03-22 01:50:25 -04:00
36ae1d9beb [UPD] script Format 2026-03-14 23:26:31 -04:00
bee6d50018 [ADD] todo: add deploy menu with git clone
Allow users to deploy ERPLibre to a local directory
via git clone from the TODO interactive menu, making
onboarding simpler for new developers.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:26:31 -04:00
4fc15c306b [REF] todo: use English text as i18n keys
Replace snake_case i18n keys with their English
translation so developers can read the code without
cross-referencing the translations dictionary.
Remove 5 obsolete duplicate entries.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:26:31 -04:00
6fe2de73b2 [UPD] script execute with more space for command display 2026-03-14 23:26:31 -04:00
91c835d57e [IMP] todo: add Claude configs submenu and command listing
Refactor single commit setup into a generic deployment
mechanism for Claude commands, allowing easy addition of
new commands. Add todo_add_command template and an option
to list installed custom commands with their dates.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:26:31 -04:00
c2e08f1de0 [IMP] todo: add git remote, vim config and automation
Add git remote add command with default name "localhost",
git editor vim configuration via todo.json, and a Claude
automation tool to dynamically add commands to todo.json.
Support new bash_command key in execute_from_configuration.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:15:54 -04:00
230c55c432 [ADD] todo: add RTK management menu
Integrate RTK (Rust Token Killer) into the interactive CLI
to let users install, configure, and monitor token savings
directly from the ERPLibre todo interface.

Generated by Claude Code 2.1.74 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:15:54 -04:00
2569b3f0ba [FIX] todo.py remove tk, not used
- this broke server without gui for pyton 3.12.3
2026-03-14 23:15:54 -04:00
1e731114f5 [IMP] script: update copyright year to 2026
Reflect the current year in all TechnoLibre
license headers across script/, test/, and docker/.

Generated by Claude Code 2.1.74 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 23:16:05 -04:00
438edc3694 [IMP] script: sort execute menu alphabetically
Menu items were in arbitrary order making it hard to
find specific tools as the list grew to 14 entries.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 04:04:17 -04:00
4ea143dd36 [IMP] script: sort clone list alphabetically
The erplibre root repo was appended last and hard to
find among 141 entries. Sort the list so repos are
easy to locate by name.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:56:00 -04:00
d7d72db7bc [FIX] script: show erplibre clone path clearly
The root repo clone command showed "." as target path
which was confusing and easy to miss in the list.
Display "erplibre" instead for clarity.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:50 -04:00
84a021258e [IMP] script: shallow push by default in git server
Repos like odoo and OpenUpgrade blocked for 5+ minutes
trying to unshallow from GitHub (~3GB). Push shallow
by default with receive.shallowUpdate on bare repos.
Add --unshallow flag to opt into full history fetch.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:44 -04:00
24bcb3a7d3 [IMP] script: async init/remote/push in git server
Sequential processing of 100+ repos was slow. Use
asyncio with semaphore-bounded concurrency to run
init, remote and push actions in parallel. New -j flag
controls max parallel jobs (default: 8).

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:41 -04:00
291c9cf5e0 [IMP] script: add erplibre root repo to git server
The root repo (erplibre/erplibre) was missing from the
local git server because it is not in the Google Repo
manifest. Include it so a full clone of the platform
is possible from the local server across all 4 actions.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:36 -04:00
43fd5a17ae [REF] script: use Execute helper in git daemon
Replace raw subprocess.Popen and manual signal handling
with Execute.exec_command_live for consistency with
other refactored scripts.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:32 -04:00
8083c8010e [REF] script: improve variable naming conventions
Remove Hungarian notation prefixes (lst_, dct_) from variable
names in git_repo_manifest, git_repo_update_group, and their
tests for better readability and consistency with the codebase
refactoring effort.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:43 -04:00
d60caa3897 [REF] script: improve variable naming conventions
Replace Hungarian notation prefixes (lst_, dct_) with
descriptive English names for better readability across
git and todo modules.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:43 -04:00
095eaa1661 [REF] script: extract git helpers into modules
Reduce GitTool class size by moving URL transformation
and GitHub API logic into dedicated repo_url and
github_api modules for better separation of concerns.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:43 -04:00
4a46ebbf4c [REF] script: add type hints to execute and i18n
Improve code maintainability and IDE support by adding
type annotations to function signatures and instance
variables in execute.py and todo_i18n.py. Also let
Black simplify unnecessary parentheses.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:43 -04:00
2dde5467db [REF] script: add type hints and remove duplicate methods
Complete the manager extraction by removing methods from todo.py
that were already moved to database_manager.py (select_database,
restore_from_database, create_backup_from_database, open_file_image_db,
download_database_backup_cli). Add type annotations to manager
classes for better code clarity. Update tests to target the
manager instances directly.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:43 -04:00
ec134d9299 [REF] script: extract managers from todo into modules
Reduce complexity of todo.py by extracting database,
kdbx, and version logic into dedicated manager classes.
Update tests to reference new module paths.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:43 -04:00
666f285fca [REF] script: improve naming and translate to English
Continue variable renaming to remove Hungarian notation
prefixes (dct_, lst_) and adopt descriptive names. Translate
remaining French comments and user-facing strings to English
for consistency across the codebase.

Generated by Claude Code 2.1.72 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:27 -04:00
e27c544f02 [REF] script: rename variables to follow naming conventions
Replace Hungarian notation, French variable names, and
lowercase constants with clear English names across 5
scripts: config_file, execute, kill_process_by_port,
todo, and git_tool. Remove unused find_in_private
variable. All 142 tests pass.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 02:06:02 -04:00
98d2ea890c [ADD] todo: add AI assistant tools menu with Claude Code commit setup
Provide developers with a streamlined way to configure Claude Code
commit templates directly from the TODO CLI, reducing manual setup
and ensuring consistent commit formatting across the team.

Generated by Claude Code 2.1.72 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 02:06:02 -04:00
d87bb46354 [ADD] TODO run test from script 2026-03-11 02:06:02 -04:00
a80c436e75 [IMP] script git_local_server: tool to deploy git server to share code
Generated by Claude Code v2.1.71 model Opus 4.6
2026-03-11 02:05:55 -04:00
86863f8e20 [UPD] TODO format 2026-03-11 00:55:28 -04:00
2dd43bba01 [IMP] script kill process by port: add protection and interactive menu 2026-03-09 16:18:14 -04:00
3d80d1df75 [UPD] erplibre pip requirement missing tldextract and PyYAML
- Update selenium and comment about it
2026-03-08 18:59:00 -04:00
6fe4fd0676 [IMP] script TODO support running test 2026-03-08 16:09:44 -04:00
f1f57758a1 [IMP] i18n script todo 2026-03-08 16:09:44 -04:00
a0b9a93bb1 [IMP] script todo: support security check python environment 2026-03-08 16:09:44 -04:00
dd11ed8990 [IMP] todo: create backup command and improve restore database name 2026-03-07 00:48:08 -05:00
9499e19045 [IMP] script search class model: transmit information module to install 2026-03-07 00:48:08 -05:00
67222ea129 [FIX] TODO: config regenerate .repo/local_manifests/erplibre_manifest.xml 2026-03-07 00:48:08 -05:00
0a7bca4801 [UPD] script todo_upgrade support odoo --neutralize 2026-03-07 00:48:08 -05:00
449224f91b [IMP] script todo: network option for ssh forwarding and performance 2026-03-07 00:48:08 -05:00
fe9a8c95ff [IMP] script todo: config setup queue_job 2026-03-07 00:48:08 -05:00
f0cc9b2eb9 [IMP] script todo feature debug file todo.py 2026-03-07 00:48:08 -05:00
dfc340d0c4 [IMP] script todo: support run custom database 2026-03-07 00:48:08 -05:00
9cc3e88c16 [FIX] todo database open dialog correction 2026-03-07 00:48:08 -05:00
6c0005bca2 [FIX] script execute first installation 2026-03-07 00:48:08 -05:00
a80b0a3539 [IMP] installation support LinuxMint 22.3 2026-03-07 00:06:45 -05:00
a2d3aa2a78 [ADD] Multilingual translation of all documentation (EN/FR)
Added 30 .base.md files using the mmg (Multilingual Markdown Generator)
format to automatically generate English (.md) and French (.fr.md)
versions of all project documentation.
Updated conf/make.documentation.Makefile to process all .base.md files
via `make doc_markdown`.
2026-03-04 22:23:52 -05:00
c1465098f0 [FIX] script todo import first time 2026-02-14 05:54:13 -05:00
f829615b43 [IMP] script todo open shell into code option 2026-02-13 04:07:57 -05:00
facd1c928e [IMP] script update config from database and implement TODO configuration
- execute script remote endline from output
2026-02-13 04:07:53 -05:00
c580493099 [IMP] script repo change addons list from backup file
- check module to identify addons path
2026-02-13 04:07:48 -05:00
54f8ba0feb [UPD] script execute to share exec_command_live 2026-02-13 04:07:44 -05:00
02582d3ad8 [UPD] script refactor git_tool using path.join 2026-02-13 04:07:40 -05:00
3a42960069 [UPD] OSX installation: remove python 3.7 2026-02-13 04:07:32 -05:00
268cbae712 [FIX] script with nproc jobs, support osx 2026-02-12 00:52:32 -05:00
Manel Guechetouli
8c3a3fb4c1 [FIX] in selenium_lib firefox snap path 2026-02-12 00:16:42 -05:00
273763a4fb [FIX] script selenium: support snap firefox for Ubuntu 2026-02-05 12:26:29 -05:00
11d2547d8f [UPD] script selenium: force sleep before activate dark mode 2026-02-05 02:07:47 -05:00
e2d9163f8a [FIX] todo.py check using cmd_source_default before crash 2026-02-04 09:09:59 -05:00
b193a2ccb1 [FIX] script selenium: increase timeout to 60 seconds when get element 2026-02-04 09:09:07 -05:00
b25275b0ae [ADD] more repo odoo 18 from OCA 2026-01-25 00:27:49 -05:00
a4496f3e4e [ADD] odoo 18 manifest repo shopfloor 2026-01-25 00:27:45 -05:00
844f5f5671 [ADD] repo automation oca 2026-01-25 00:27:40 -05:00
8ec3a39840 [ADD] cetmix odoo 18 and update poetry dependency 2026-01-25 00:27:36 -05:00
1b087d25df [ADD] script addons install with debug 2026-01-23 02:57:20 -05:00
4327f7da9d [ADD] manifest odoo 16 to 18 new repo design-themes from odoo 2026-01-23 02:57:10 -05:00
4a83999ace [UPD] typo certbot 2026-01-10 04:52:39 -05:00
45469a8777 [ADD] make robotlibre rewrite config with queue_job channels 2026-01-10 04:52:31 -05:00
65785c57e5 [FIX] script search_class_model: support lambda datetime now and clean code 2026-01-10 04:52:25 -05:00
9769bc83b5 [FIX] todo upgrade: copying database when missing 2026-01-05 07:52:30 -05:00
8f297f148d [UPD] todo mobile support change context name and fix first page image 2025-12-28 01:40:42 -05:00
a2155facc6 [UPD] mobile rename repo for erplibre_home_mobile 2025-12-28 00:48:38 -05:00
595ebb2f51 [UPD] script todo mobile: support rename software and change menu image 2025-12-27 05:48:37 -05:00
9122244aee [IMP] script kill_process_by_port: script to kill odoo execution with TODO
- implement todo process kill by process, read config port
2025-12-22 04:03:42 -05:00
665bc9284d [IMP] script selenium lib: wait_is_invisible with get_element 2025-12-20 03:15:51 -05:00
e2125a7735 [IMP] script database restore: support neutralize 2025-12-20 03:15:51 -05:00
1d113ac5a0 [FIX] script code_generator extract class support selection 2025-12-20 03:15:51 -05:00
50247a5fb7 [FIX] s390x ubuntu 25.10 not support wkhtmltopdf 2025-12-20 03:15:51 -05:00
627e630f5b [UPD] script installation ubuntu 25.10 2025-12-20 03:15:51 -05:00
f09a1252e2 [UPD] script selenium: dashboard use odoo_website_menu_click 2025-12-20 03:15:51 -05:00
8aa8b8d166 [ADD] script docker copy file 2025-12-20 03:15:51 -05:00
07a149bde4 [IMP] script selenium lib: support specific directory for selenium grid
- fix algorithm scrollto_element, center it, not scroll if already in
view if not too low
2025-12-02 00:34:46 -05:00
c9a3d68cc9 [ADD] install arch linux add sshpass package 2025-12-02 00:29:33 -05:00
d1755f6683 [FIX] script db_drop_all.py fix execute_shell 2025-11-30 21:35:14 -05:00
5b87769e2e [UPD] script replace subprocess.check_output to subprocess.run 2025-11-27 00:43:22 -05:00
9ca904a2ec [FIX] script migrate process_backup_file.py permission 2025-11-26 03:32:18 -05:00
19901ed8b9 [FIX] script format: ignore git repo if not installed 2025-11-26 03:32:18 -05:00
8968a2098c [FIX] poetry update use ignore requirement from erplibre version 2025-11-25 23:39:04 -05:00
4b65631004 [IMP] script search_class_model: support detection args into fields 2025-11-25 22:15:52 -05:00
e15f4f3f85 [UPD] selenium: disable enable_tour in same time of dark mode 2025-11-22 00:04:30 -05:00
a2a03fa30f [FIX] code generator new project code error 2025-11-22 00:04:24 -05:00
526205f7ae [FIX] script test: async adapt python 3.12, support test odoo 18 erplibre 2025-11-22 00:04:19 -05:00
fd2e3594d1 [UPD] script format: support hidden addons/addons repository if contain git 2025-11-19 23:37:50 -05:00
f1e1de2270 [IMP] script: migration database zip or prod to fix postgresql 18 module mail 2025-11-19 23:37:39 -05:00
32fe737bd8 [UPD] script search class model: remove astor and update code, add parameters 2025-11-16 04:08:14 -05:00
01d92d3c8e [FIX] script search class model: upgrade to python 3.11 with ast 2025-11-16 04:08:09 -05:00
018b651243 [IMP] selenium web login enable dark mode into Odoo 2025-11-11 06:27:35 -05:00
0b0ee69730 [ADD] todo: implement run for mobile compilation and question env
- can modify env file to  adapt the mobile for the project
2025-11-11 05:19:56 -05:00
b14dc7a082 [IMP] mobile home installation and run 2025-11-11 05:19:14 -05:00
41fbc39c21 [FIX] script config: support merge dict configuration between 3 config
- fix upgrade when missing log
2025-11-11 00:07:17 -05:00
ff83d5e627 [FIX] format script ignore some files/directory 2025-11-11 00:07:06 -05:00
f21ff0bfbb [ADD] todo support robotlibre and fixes 2025-11-10 03:23:57 -05:00
c1b9a5fee4 [UPD] format and update license 2025-11-08 23:53:07 -05:00
f4dec8a73a [FIX] script pycharm_configuration: support odoo workspace different version 2025-11-08 23:53:07 -05:00
5277fc1a81 [IMP] selenium devops: generate code example 01 2025-11-08 23:53:07 -05:00
c19ca7a554 [FIX] selenium video: firefox windows size 2025-11-08 23:53:07 -05:00
8ab3883b22 [IMP] script format: support format detected all repo 2025-11-06 03:40:46 -05:00
7a05cd29b8 [FIX] pymssql compilation error 2025-11-06 01:11:28 -05:00
093bbed5ce [FIX] git clean repo manifest adapt for multi odoo 2025-11-05 04:36:47 -05:00
cee492a2a7 [UPD] generate_config: adapt config for odoo 18 2025-11-05 02:17:46 -05:00
f1f4769a21 [FIX] script format support space into files 2025-11-04 22:41:39 -05:00
4739615ca4 [IMP] script deployment DNS with cloudflare 2025-11-02 02:14:15 -05:00
1a27ea3cae [UPD] script refactor install_daemon, python script to customize services 2025-11-02 02:14:15 -05:00
86d14cf244 [IMP] script nginx certbot support admin email with non-interactive 2025-11-01 03:42:51 -04:00
a74a19f71e [UPD] script support s390x installation OS 2025-11-01 01:09:36 -04:00
da779aa9e4 [ADD] script performance: use tool to test request per second on website 2025-11-01 01:09:32 -04:00
de6d1b5eeb [UPD] todo: show error when missing odoo version for odoo command 2025-10-31 21:56:38 -04:00
d7d14123bf [FIX] selenium error git rebase 2025-10-31 17:29:01 -04:00
3d6b340b6d [UPD] script selenium better tools to navigate into Odoo
- support external selenium service to support selenium from Odoo
instance
- move selenium installation to erplibre virtual environment
- support user test instead of admin
2025-10-31 01:45:52 -04:00
cbc43fde3c [IMP] todo support odoo upgrade
- add example odoo test
- prevent delete production file with validation
- add makefile with selenium
- script prod to dev uninstall module after installation
- adapt todo with private directory
- script to download remote database
- TODO show documentation for migration
2025-10-31 01:43:26 -04:00
93617b1a65 [IMP] support multi version odoo on same workspace
- oficially support odoo 18 instead of odoo 16
- support postgis/postgresql 18 into docker
- change version erplibre 1.6.0
- support private environment and support local git repo manifest
- support switch odoo version
- support docker for each version
- update os installation
- upgrade python requirement
- separate virtual environment for erplibre and odoo
2025-10-31 01:36:26 -04:00
de9779cfc2 [IMP] refactoring .venv.erplibre
- erplibre separate venv erplibre and odoo
- rename python-version to python-odoo-version
- add conf/python-erplibre-version
- rename .venv to .venv.erplibre
- move .venv/repo to .venv.erplibre/bin/repo
- install pyenv into .venv.erplibre
- install poetry into .venv.odooVERSION

- first installation show odoo version to install
- can install erplibre without odoo
- update README.md information about installation with TODO
- change image from github to locally
- remove link creation .venv

- update version: remove code to force create symbolic link .venv
- use dynamic merge manifest, will be able to merge different odoo
version
- can add dev tools
- default manifest is empty to remove conflict
2025-10-31 01:34:26 -04:00
e7e3a37ed3 [FIX] poetry update: move lock file if exist
- support non standard versionning pip like 1.3.*
- ignore other odoo version and comments
2025-10-31 01:33:39 -04:00
fc73d0b9bd [UPD] TODO: auto installation
- better script message first execution
- search pycharm-community
- calculate time execution
- integrate crash diagnostic at importation
- show version installed and show installation option into cli
2025-10-31 01:33:34 -04:00
0ac7728d2f [FIX] poetry iscompatible: crash when semversion has alpha char 2025-10-31 01:33:29 -04:00
c28ea337b5 [FIX] script install debian missing libcups2-dev 2025-10-31 01:33:19 -04:00
566e97d069 [UPD] install_locally show error when missing poetry version 2025-10-31 01:33:11 -04:00
a1b9c98b5f [IMP] refactoring to support multiple version of Odoo
- change path odoo to support multiple
- conf pycharm exclude folder
- refactor run/test/coverage by use same script
2025-10-31 01:32:11 -04:00
6cfe176557 [FIX] script git_tool: return nothing when .git is not here, instead of crash 2025-10-31 01:32:06 -04:00
467bcdfedf [FIX] script selenium: show screencast directory only when create video 2025-10-31 01:32:02 -04:00
d27e366d97 [FIX] selenium: improve login odoo, need to wait for odoo 18 2025-10-31 01:31:57 -04:00
4324f82273 [UPD] pycharm_configuration support when strange start pycharm 2025-10-31 01:31:48 -04:00
770e4b0966 [UPD] makefile support poetry and refactor poetry update with new rep 2025-10-31 01:31:41 -04:00
9cafb3cead [ADD] install daemon systemd configuration: WorkingDirectory configuration 2025-10-31 01:31:33 -04:00
50ab5e1afa [ADD] script poetry iscompatible copied from package iscompatible 2025-10-31 01:31:29 -04:00
0df36e9440 [ADD] apache configuration template 2025-10-31 01:31:21 -04:00
45e13d4767 [ADD] script nginx deployment
- support widlcard
2025-10-31 01:31:15 -04:00
5ab5642de5 [IMP] script selenium accept private execution
- erplibre private repertory for user private configuration
- move todo_override to private/todo.json
- selenium moving script
2025-08-07 03:31:49 -04:00
05e93b19d9 [UPD] selenium lib support headless and get_text_from_element 2025-06-15 23:45:35 -04:00
1890768be9 [IMP] script selenium lib: support open kdbx and download files 2025-06-02 18:59:47 -04:00
0149a27604 [UPD] script git_tool: better code repo 2025-06-01 14:11:58 -04:00
cde4320dc2 [UPD] script pycharm configuration: support private csv configuration 2025-05-04 05:33:03 -04:00
955806db7e [UPD] script pycharm configuration: exclude with dynamic search 2025-05-04 04:54:25 -04:00
200aea9f8b [IMP] script pycharm configuration: support version control auto-fill 2025-05-04 04:54:25 -04:00
829f7564f4 [UPD] script todo refactor message and propose odoo installation 2025-05-04 04:52:23 -04:00
70c9698c2d [UPD] make open todo and todo force source .venv with gnome-terminal 2025-05-04 01:02:39 -04:00
e6624e24a5 [UPD] script docker update: remove unused code 2025-05-04 01:01:15 -04:00
f13e9431c1 [UPD] config 3 news repositories 2025-05-04 01:01:15 -04:00
ea16502fad [FIX] script selenium: firefox addon enable to run in private 2025-04-30 15:34:01 -04:00
27565351d8 [UPD] script selenium: show robot message and hide it
- record video in directory screencasts
- support conversion webm to mp4
- reduice framerate by defaut, for a better recording, because too much
image
2025-04-29 02:21:50 -04:00
9b94ad49de [IMP] script selenium: refresh and switch tab feature 2025-04-28 06:13:12 -04:00