Commit graph

58 commits

Author SHA1 Message Date
7b749e43bb [ADD] vpn : préréglages de site, importés d'un profil AnyConnect
Un site publie sa passerelle, son protocole et son groupe de connexion.
Les retaper sur chaque poste, c'est se tromper un jour sur le seul champ
qui décide du service joint. Un préréglage est un profil PARTIEL, sans
identifiant ni secret : c'est ce qui lui permet de circuler.

Les répertoires sont lus dans l'ordre et le plus tardif gagne sur un même
identifiant, pour qu'un site corrige un gabarit livré sans modifier de
fichier suivi, donc sans conflit au prochain pull. Un fichier illisible
est signalé et sauté : sinon la panne se lit « aucun préréglage » alors
qu'il y en a dix. Un profil AnyConnect porte déjà les trois balises
utiles, il est donc lu directement. Vérifié : 19 tests unitaires.

--- EN ---

A site publishes its gateway, protocol and connection group. Retyping
them on every machine means getting the one field that decides which
service you reach wrong some day. A preset is a PARTIAL profile, with no
username and no secret: that is what lets it be handed around.

Directories are read in order and the latest wins on the same identifier,
so a site can fix a shipped template without editing a tracked file, and
without a conflict on the next pull. An unreadable file is reported and
skipped: otherwise the fault reads as "no preset" when ten exist. An
AnyConnect profile already carries the three useful tags, so it is read
directly. Checked: 19 unit tests.

Assisted-by: Claude Opus 5
2026-09-04 06:26:34 -04:00
e14356a51e [ADD] release : publier 1.8.0, section de changelog et version déclarée
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
2026-09-04 05:57:20 -04:00
f0a1457c20 [UPD] version : porter la version déclarée d'ERPLibre à 1.7.0
Le tag v1.7.0 existe depuis mars et chaque déclaration disait encore 1.6.0.
« .erplibre-semver-version » est la source que env_var.sh lit dans
ERPLIBRE_VERSION. « pyproject.toml » est un lien vers le fichier de la version
d'Odoo active : les huit portent la version d'ERPLibre, en laisser sept à
1.6.0 ferait dépendre la version déclarée de la bascule d'Odoo. Les étiquettes
d'images docker restent à 1.6.0 : elles nomment des images publiées, empreinte
de compilation comprise, que la construction n'a pas encore produites.
Vérifié : env_var.sh rend 1.7.0, les quatre JSON se relisent, et les tests de
version et de configuration passent.

--- EN ---

Tag v1.7.0 has existed since March and every declaration still said 1.6.0.
`.erplibre-semver-version` is the source env_var.sh reads into
ERPLIBRE_VERSION. `pyproject.toml` is a link to the file of the active Odoo
version: all eight carry the ERPLibre version, and leaving seven at 1.6.0
would make the declared version depend on an Odoo switch. The docker image
tags stay at 1.6.0: they name published images, build hash included, that the
build step has not produced yet. Checked: env_var.sh renders 1.7.0, the four
JSON files reload, and the version and configuration tests pass.

Assisted-by: Claude Opus 5
2026-09-04 05:34:45 -04:00
2435f0f6d3 [ADD] script todo : /todo_generate_code, effort high et règles du dépôt
Les règles à appliquer avant de coder sont éparpillées entre les configs,
les hooks et les modules maison, et la documentation en contredit
plusieurs : autopep8 est recommandé alors que le script sort en 1, aucun
script oca-* n'est installé, la racine n'a ni .pre-commit-config.yaml ni
.pylintrc, et flake8 comme pylint-odoo ne vivent que dans le venv Odoo,
que rien ne lance. Le gabarit énonce ce que l'outillage impose, à effort
high, l'épinglage ultracode restant celui de l'utilisateur.

Vérifié : 146 règles relevées, 142 confirmées contre leur citation, 4
retirées. Deux gardes lient chaque entrée du menu à un gabarit présent
qui déclare le bon nom.

--- EN ---

The rules to apply before coding are scattered across the configs, the
hooks and the in-house modules, and the documentation contradicts several
of them: autopep8 is recommended although the script exits 1, no oca-*
script is installed, the root carries neither .pre-commit-config.yaml nor
.pylintrc, and flake8 as well as pylint-odoo live only in the Odoo venv,
which nothing invokes. The template states what the tooling enforces, at
high effort, the ultracode pin remaining the user's own.

Checked: 146 rules surveyed, 142 confirmed against their citation, 4
dropped. Two guards tie each menu entry to a template that exists and
declares the right name.

Assisted-by: Claude Opus 5
2026-09-02 07:16:23 -04:00
4f85a4f225 [ADD] script todo : /todo_plan_max, planifier avant d'ajouter une entrée
Ajouter une entrée commence par des décisions qu'aucun gabarit
n'imposait : quel menu parent, motif A ou B, quoi faire en cas d'échec,
ce qui est détruit, ce qui touche à une donnée client. La commande les
demande avant d'écrire, planifie avec superpowers quand le plugin est
là, et pose sa spécification dans tasks/, non versionné. Son frontmatter
fixe l'effort à max, seule valeur de l'énumération ; ultracode est un
épinglage de session que l'utilisateur tape, non un réglage de gabarit.

Vérifié : les deux gabarits déployés dans un HOME jetable, relus « à
jour » par l'écran de contexte.

--- EN ---

Adding an entry starts with decisions no template forced: which parent
menu, pattern A or B, what to do on failure, what gets destroyed, what
touches customer data. The command asks them before writing, plans with
superpowers when the plugin is there, and lays its specification in
tasks/, which is not versioned. Its frontmatter sets effort to max, the
only value in the enumeration; ultracode is a session pin the user
types, not a template setting.

Checked: both templates deployed into a throwaway HOME, read back as up
to date by the context screen.

Assisted-by: Claude Opus 5
2026-09-02 06:35:57 -04:00
c32e7d87c9 [ADD] script todo : déployer /git_prepare_merge depuis le menu Claude
Une fusion apporte plusieurs commits d'un coup, et rien ne guidait les
deux écrits qu'elle demande : l'entrée de changelog et le message de
merge. La commande déployée impose la source — CHANGELOG.base.md, les
fichiers générés étant perdus au prochain doc_markdown — et le corps
bilingue avec son trailer, que le garde-fou ne verra jamais, commit-msg
ignorant tout message ouvrant sur « Merge ». Elle prépare, elle ne
fusionne pas : le message part dans tasks/, non versionné.

Vérifié : 45 tests du menu, et un déploiement dans un HOME jetable que
l'écran de contexte relit « à jour » face à son gabarit.

--- EN ---

A merge lands several commits at once, and nothing guided the two pieces
of writing it needs: the changelog entry and the merge message. The
deployed command imposes the source — CHANGELOG.base.md, the generated
files being lost at the next doc_markdown — and the bilingual body with
its trailer, which the guard rail never sees, commit-msg skipping any
message opening on « Merge ». It prepares, it does not merge: the
message goes to tasks/, which is not versioned.

Checked: 45 menu tests, and a deployment into a throwaway HOME that the
context screen reads back as up to date against its template.

Assisted-by: Claude Opus 5
2026-09-02 06:15:43 -04:00
4701660203 [UPD] convention : nommer les fichiers à l'indexation, pas git add -A
`git add -A` indexe tout ce qui n'est pas suivi. Or `private/` et `tasks/` ne
le sont pas EXPRÈS : le premier est le seul endroit autorisé à porter une
donnée de client, le second reçoit l'enquête précisément parce qu'il ne part
pas dans git. Un ratissage les commit tous les deux.

Il emporte aussi ce qui est en cours ailleurs dans le checkout, sous un sujet
qui ne le couvre pas. Le gabarit nomme désormais les fichiers et renvoie à
`git add -p` quand un fichier porte deux sujets.

La règle porte la même consigne : le gabarit ne se lit qu'à l'appel de la
commande, la règle est chargée à chaque session.

--- EN ---

`git add -A` stages everything untracked. Yet `private/` and `tasks/` are
untracked ON PURPOSE: the first is the only place allowed to carry customer
data, the second receives the investigation precisely because it does not go
into git. A sweep commits both.

It also swallows whatever else is in flight in the checkout, under a subject
that does not cover it. The template now names the files and points at
`git add -p` when one file carries two subjects.

The rule carries the same instruction: the template is read only when the
command is invoked, the rule is loaded every session.

Assisted-by: Claude Opus 5
2026-08-30 06:14:05 -04:00
0e5441ac39 [ADD] commentaires : un relevé non bloquant, sa règle, le code nettoyé
Rien ne relevait les commentaires hors convention. L'outil lit commentaires et
docstrings, jamais le code autour, et rend deux familles inégales :
l'identifiant — adresse, courriel, chemin de compte, nom de la liste privée —
est une trouvaille ; le récit — témoignage, date, personne — un signal à relire.

Le hook pre-commit le lance sur l'index, sort toujours en 0 — un contrôle
bloquant à cette échelle se fait désinstaller — et parle quand l'outil échoue.
La règle du générateur et sa doc portent le nettoyage au fur et à mesure, et
l'exemple d'un interdit s'invente : base, adresse, compte et hôte en prennent un.

L'écran du contexte est posé, sans entrée de menu. Vérifié : 252 tests des six
fichiers d'essai touchés passent.

--- EN ---

Nothing reported the comments that break the convention. The tool reads
comments and docstrings, never the code around them, and returns two unequal
families: identifying data — address, e-mail, account path, private-list name
— is a finding; narrative — witness marker, date, person — a signal to re-read.

The pre-commit hook runs it on the index, always exits 0 — a blocking check at
that scale gets uninstalled — and speaks when the tool fails. The generator
rule and its doc carry the clean-up as you go, and a forbidden thing's example
is invented: a real database, address, account and host each take one.

The context screen is in place, with no menu entry. Checked: 252 tests of the
six touched fixture files pass.

Assisted-by: Claude Opus 5
2026-08-30 06:08:30 -04:00
5fb49da0f2 [ADD] convention : dire le fonctionnement, pas le contexte ni les noms
Le dépôt n'avait aucune règle sur le commentaire de code : le seul modèle
d'écriture était le corps de commit, et le gabarit y renvoyait le
raisonnement qui n'y tenait pas. Le récit s'écoulait dans les sources,
avec les noms qu'il portait.

L'épreuve tient en une phrase : le code est le sujet, au présent de ce
qu'il fait. Une phrase dont le sujet est un incident, une machine, une date
ou une personne part vers tasks/, non versionné ; le mode de défaillance
que le code empêche reste. Rien d'identifiant hors de private/, et
seulement sur un dépôt privé.

--- EN ---

The repository had no rule at all about code comments: the only writing
model available was the commit body, and the template sent the reasoning
that did not fit there into a comment. The story flowed into the sources,
carrying the names it named.

The test fits in one sentence: the code is the subject, in the present of
what it does. A sentence whose subject is an incident, a machine, a date or
a person goes to tasks/, unversioned; the failure mode the code prevents
stays. Nothing identifying outside private/, and only on a private
repository.

Assisted-by: Claude Opus 5
2026-08-30 05:11:36 -04:00
f9edaa4e59 [ADD] git : un garde-fou commit-msg pour le sujet
Rien ne tenait la convention sur le sujet : le tag est respecté partout,
c'est la longueur qui glisse. Le hook refuse le mécanique et rien de plus
— tag absent, plus de 72 caractères, sujet ouvrant sur une citation ; dire
sur quoi porte le code reste un jugement qu'aucun hook ne rendra. Il compte
des caractères et non des octets, sans quoi un sujet français de 72
caractères tomberait sur ses accents. Le refus enseigne le repli vers des
mots-clés plutôt que la troncature, et nomme `--no-verify` : un garde-fou
qui refuse trop est désinstallé. Les tests pèsent donc autant les
acceptations, « Merge branch » ou fixup de rebase. Le lanceur balaie le
préfixe test_git_ : 32 tests jamais exécutés, le total va de 1021 à 1071.

--- EN ---

Nothing held the subject convention: the tag is respected everywhere, it
is the length that slips. The hook refuses the mechanical and nothing more
— no tag, over 72 characters, a subject opening on a quotation; whether it
says what the code is about stays a judgement no hook will make. It counts
characters, not bytes, or a 72-character French subject would fall on its
accents. The refusal teaches the fallback to keywords rather than
truncation, and names `--no-verify`: a guard rail that refuses too much
gets uninstalled. So the tests weigh the acceptances as much, a "Merge
branch" or a rebase fixup. The runner sweeps the test_git_ prefix: 32
tests never ran, and the total goes from 1021 to 1071.

Assisted-by: Claude Opus 5
(cherry picked from commit c9abf4d1b723ae8ff3762d39bfe1d6982400d12d)
2026-08-29 02:11:04 -04:00
55a093a86d [ADD] convention : ce qu'un sujet de commit doit dire
Le manuel encadrait le corps en détail — pourquoi, dix lignes par langue, ce
qu'on ne répète pas du diff — et ne disait du sujet que « courte, à
l'impératif ». Le sujet est pourtant lu cent fois pour une fois que le corps
l'est : git log --oneline, un blame, un bisect, une note de version.

Faute de règle, les sujets dérivent vers le symptôme et la métaphore, qui se
lisent bien sans nommer la partie du système en jeu. La règle ajoute une
épreuve, pas un gabarit : lire le sujet seul, sans diff ni corps, et savoir
ce qui change et où. Les trois exemples avant/après viennent de l'historique
du dépôt, un exemple inventé ne convainquant personne.

--- EN ---

The manual framed the body in detail — why, ten lines per language, what not
to repeat from the diff — and said of the subject only that it be short and
imperative. Yet the subject is read a hundred times for every reading of the
body: git log --oneline, a blame, a bisect, a release note.

With no rule, subjects drift towards the symptom and the metaphor, which read
well without naming the part of the system at stake. The rule adds a test,
not a template: read the subject alone, with no diff and no body, and be able
to say what changes and where. The three before/after pairs come from the
repository's own history, an invented example convincing nobody.

Assisted-by: Claude Opus 5
(cherry picked from commit c86357eab899c65f41287d4f19e88d0da98285c4)
2026-08-29 02:11:04 -04:00
5b748e347e [ADD] make: une cible pour les tests unitaires, dépendance mobile déclarée
Ces 382 tests ne tournaient que lancés à la main, donc jamais. « make test »
demande une base de données et plusieurs minutes ; ceux-ci lisent le code et
exécutent les fragments de shell générés, sudo, pgrep et pkill bouchonnés, en
une dizaine de secondes. Deux cibles : test_unit, et test_unit_file pour la
boucle d'écriture.

La dépendance à mobile/erplibre_home_mobile est DITE plutôt que supposée : le
lanceur l'annonce présente ou absente, et les tests du vrai transfert se
déclarent ignorés — avec la commande qui manque — au lieu de passer en silence.
Vérifié dans les trois états : dépôt absent, présent non compilé, compilé.

Au passage, compile_and_run.sh vérifie le transfert des dépôts, comme
l'installation d'une VM et par le même script.

--- EN ---

These 382 tests only ran when invoked by hand, so never. "make test" wants a
database and several minutes; these read the code and run the generated shell
fragments with sudo, pgrep and pkill stubbed, in about ten seconds. Two targets:
test_unit, and test_unit_file for the writing loop.

The dependency on mobile/erplibre_home_mobile is STATED rather than assumed: the
runner announces it present or absent, and the real-transfer tests declare
themselves skipped — naming the missing command — instead of passing quietly.
Checked in all three states: repo absent, present but unbuilt, built.

Along the way, compile_and_run.sh verifies the repo transfer, like a VM install
and through the same script.

Assisted-by: Claude Opus 5
2026-08-23 02:11:50 -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
eaa9e7ffa8 [IMP] make docker: docker_show_absolute_path
- will show all absolute path for workspace docker container
2026-08-07 02:11:33 -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
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
92e711d5a1 [UPD] claude: drop the redundant « model » from the commit template 2026-08-07 01:05:41 -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
c3684ee320 [IMP] conf: simplify Claude commit template
The previous template used a piped shell command to detect the
active model, which caused permission errors in sandboxed
environments. Replace with a simple Python script approach and
add disable-model-invocation for reliability.

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
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
6ece30e54b [UPD] ERPLibre version default odoo 18 2026-03-08 16:09:44 -04:00
11ab53bc2d [UDP] make doc parallel doc_markdown 2026-03-07 00:46:05 -05:00
c80f74853c [FIX] make duplicate docker_build_odoo_18 2026-03-07 00:06:45 -05:00
3a89caa33e [UPD] doc replace odoo 16 by odoo 18 2026-03-07 00:06:11 -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
45469a8777 [ADD] make robotlibre rewrite config with queue_job channels 2026-01-10 04:52:31 -05:00
b9faf85505 [IMP] make installation install_erplibre 2025-12-20 03:15:51 -05:00
1a05a5d2a2 [FIX] makefile correct docker-compose from clean all 2025-11-26 03:32:18 -05:00
526205f7ae [FIX] script test: async adapt python 3.12, support test odoo 18 erplibre 2025-11-22 00:04:19 -05:00
aac9815414 [FIX] makefile support odoo version 2025-11-19 23:37:55 -05:00
b14dc7a082 [IMP] mobile home installation and run 2025-11-11 05:19:14 -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
963d691c86 [UPD] make robotlibre update 2025-11-06 03:41:16 -05:00
1747aa720b [UPD] make robotlibre: ignore optimization 2025-11-05 02:15:54 -05:00
25a1c789d2 [IMP] make robot libre 2025-11-04 23:24:43 -05: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
be146bb2a5 [ADD] pycharm configuration: poetry update 2025-10-31 01:33:23 -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
770e4b0966 [UPD] makefile support poetry and refactor poetry update with new rep 2025-10-31 01:31:41 -04:00
dfcd8ba91f [UPD] makefile build docker with clean
- docker compose volume private
2025-08-07 03:32:06 -04:00
fc842fc3f2 [ADD] module image db: more default module installation suggested by OCA 2025-05-30 00:26:33 -04:00
200aea9f8b [IMP] script pycharm configuration: support version control auto-fill 2025-05-04 04:54:25 -04:00
f4a6911217 [UPD] makefile refactoring by moving commands into conf
- create make.private.Makefile for private project
2025-05-04 01:02:39 -04:00
7dc8da3f02 [IMP] bot assistant TODO 2025-04-27 02:40:20 -04:00
c1341a4198 [UPD] change 1.5.0 to 1.6.0 2025-04-25 23:25:43 -04:00
d91c3c2e95 [IMP] support change odoo and python version
- Makefile show version, switch version and install different version
- erplibre_version with odoo_version, poetry_version and python_version
- support multiple docker version
- support odoo 12, odoo 14, odoo 16
- bullseye, bookworm debian
- update latest version
- script update_env_version to detect actual version and refactor it
- adapt file path to support multiple version
- poetry with verbose by default, ignore python keyring
- python script to generate image db with parallel for all odoo version
- check_addons_exist before generate all image
- support delay to change queue parallel
- fix odoo 12 product configurator
- can show demo website
- swith odoo
- force create addons if missing
- update manifest, because gen config break with wrong manifest
2024-11-02 02:26:02 -04:00
8632c1501d [UPD] script pycharm: improve pycharm configuration management
- support default configuration
2023-12-02 14:14:23 -05:00