Commit graph

77 commits

Author SHA1 Message Date
46acd94a29 [UPD] requirement: pin requests 2.32.4 over the 2.31.0 of Odoo 18
Odoo 18 pins requests 2.31.0, affected by CVE-2024-35195 and
CVE-2024-47081, both fixed in 2.32.4. Left to the generated resolution,
the version followed whatever an addon repository declared, down to an
example requirements file under a doc/ directory. The ERPLibre pin now
wins the conflict and states its reason.
Checked: poetry lock resolves, requests is the only package that moves.

--- FR ---

[UPD] requirement : requests 2.32.4 plutôt que le 2.31.0 d'Odoo 18

Odoo 18 épingle requests 2.31.0, touchée par CVE-2024-35195 et
CVE-2024-47081, toutes deux corrigées en 2.32.4. Livrée à la résolution
générée, la version suivait ce qu'un dépôt d'addons déclarait, jusqu'à un
requirements d'exemple sous un répertoire doc/. L'épingle d'ERPLibre
l'emporte désormais et dit sa raison.
Vérifié : poetry lock résout, requests est le seul paquet qui bouge.

Assisted-by: Claude Opus 5.5
2026-09-25 04:14:51 -04:00
3316f70223 [UPD] requirement: aiobotocore 3.9.1 with botocore and boto3 1.43.75
aiobotocore 3.9.1 accepts botocore only in >=1.43.66,<1.43.76, so
botocore 1.43.49 failed the resolution against it. botocore and boto3
move to 1.43.75, the highest release in that range; boto3 1.43.75 needs
botocore>=1.43.75 and s3transfer <0.20, which the lock already holds.
Checked: poetry lock resolves, only the three AWS packages change
version.

--- FR ---

[UPD] requirement : aiobotocore 3.9.1 avec botocore et boto3 1.43.75

aiobotocore 3.9.1 n'accepte botocore que dans >=1.43.66,<1.43.76 :
botocore 1.43.49 faisait échouer la résolution. botocore et boto3
passent à 1.43.75, la plus haute version de cette plage ; boto3 1.43.75
exige botocore>=1.43.75 et s3transfer <0.20, que le lock porte déjà.
Vérifié : poetry lock résout, seuls les trois paquets AWS changent de
version.

Assisted-by: Claude Opus 5.5
2026-09-25 04:14:33 -04:00
c290c7fd76 [UPD] requirement: raise the factur-x floor to 6.8 outside s390x
The lock already resolves factur-x 6.8 on every architecture but s390x,
which keeps its <4 branch; >=4.2 let a regeneration fall back to a 4.x
or 5.x that no install has run. The floor now matches what is locked,
so no installed version changes.
Checked: the lock changes only its content-hash; the calls OCA_edi makes
(generate_from_file, xml_check_xsd, get_flavor, get_level,
get_xml_namespaces, get_facturx_level) match the 6.8 signatures.

--- FR ---

[UPD] requirement : plancher de factur-x à 6.8 hors s390x

Le lock résout déjà factur-x 6.8 sur toute architecture sauf s390x, qui
garde sa branche <4 ; >=4.2 laissait une régénération retomber sur une
4.x ou 5.x qu'aucune installation n'a fait tourner. Le plancher suit
désormais le lock : aucune version installée ne change.
Vérifié : le lock ne change que son content-hash ; les appels d'OCA_edi
(generate_from_file, xml_check_xsd, get_flavor, get_level,
get_xml_namespaces, get_facturx_level) collent aux signatures de 6.8.

Assisted-by: Claude Opus 5.5
2026-09-25 04:14:18 -04:00
2483b95541 [UPD] todo external data: openpyxl 3.1.5, xlsxwriter 3.2.9
The xlsx cleaning of Transform data reaches openpyxl private attributes
(_external_links, _charts, _pivots, _images, _cf_rules), which is why
openpyxl is pinned exactly and each bump has to pass the leak test.
Checked: test_transform_external passes, 511 tests, none skipped,
TestFuiteXlsx included, in a .venv.todo.external_data built from this
file.

--- FR ---

[UPD] todo external data : openpyxl 3.1.5, xlsxwriter 3.2.9

Le nettoyage xlsx de Transform data touche des attributs privés
d'openpyxl (_external_links, _charts, _pivots, _images, _cf_rules) :
d'où une épingle exacte, et chaque montée doit passer le test de fuite.
Vérifié : test_transform_external passe, 511 tests, aucun ignoré,
TestFuiteXlsx compris, dans un .venv.todo.external_data bâti de ce
fichier.

Assisted-by: Claude Opus 5.5
2026-09-25 04:14:02 -04:00
9478ca9d4b [UPD] requirement: Odoo 18 on pandas 3, cryptography 50, aws 1.43
botocore 1.43.49 needs aiobotocore 3.9.0, the only release whose range
(>=1.43.3,<1.43.57) holds it; 3.1.3 capped botocore below 1.42.50 and
failed the resolution. pandas 3.0.6: the seven modules importing it run
their pandas calls unchanged, and no installed package caps it below 3
outside test extras. pyopenssl 26.4.0 accepts cryptography 50.
Pillow 12.3.0 is aligned in todo_external_data.txt.
Checked: the lock keeps its 362 packages, PyMuPDF keeps its s390x
marker, and an installation with the extras succeeds.

--- FR ---

[UPD] requirement : Odoo 18 sur pandas 3, cryptography 50, aws 1.43

botocore 1.43.49 exige aiobotocore 3.9.0, la seule version dont la plage
(>=1.43.3,<1.43.57) le contient ; la 3.1.3 plafonnait botocore sous
1.42.50 et faisait échouer la résolution. pandas 3.0.6 : les sept modules
qui l'importent exécutent leurs appels pandas sans changement, et aucun
paquet installé ne le borne sous 3 hors extras de test. pyopenssl 26.4.0
accepte cryptography 50. Pillow 12.3.0 est aligné dans todo_external_data.
Vérifié : le lock garde ses 362 paquets, PyMuPDF son marqueur s390x, et
une installation avec les extras réussit.

Assisted-by: Claude Opus 5.5
2026-09-25 03:54:53 -04:00
113353d2d3 [UPD] requirement: refresh Odoo 18 lock, pin openai, idna and fsspec
Unpinned, openai and fsspec float to releases that break resolution:
openai 3.x needs idna>=3.18 against the idna==3.6 of Odoo, and s3fs
wants fsspec at its own exact version. openai stays on 2.x, fsspec moves
with s3fs, idna 3.20 overrides Odoo (3.6 carries CVE-2024-3651).
meteostat returns to 1.x, every 2.x caps pytz below 2024. The s390x
exclusion of PyMuPDF now lives in the requirements, so it survives.
Checked: no dependency leaves the pyproject (194 to 196) or the lock.
Not tested: majors ujson 6, plotly 7, python-slugify 9, sqlalchemy 2.1.

--- FR ---

[UPD] requirement : lock Odoo 18 à jour, épingles openai, idna et fsspec

Sans borne, openai et fsspec dérivent vers des versions qui cassent la
résolution : openai 3.x exige idna>=3.18 contre l'idna==3.6 d'Odoo, et
s3fs veut fsspec à sa propre version exacte. openai reste en 2.x, fsspec
suit s3fs, idna 3.20 supplante Odoo (la 3.6 porte CVE-2024-3651).
meteostat revient en 1.x, toute 2.x plafonne pytz sous 2024. L'exclusion
s390x de PyMuPDF vit désormais dans les requirements : elle survit.
Vérifié : aucune dépendance ne quitte le pyproject (194 à 196) ni le lock.
Non testé : majeures ujson 6, plotly 7, python-slugify 9, sqlalchemy 2.1.

Assisted-by: Claude Opus 5.5
2026-09-25 03:15:58 -04:00
f2ba74fd59 [IMP] format : un formateur par contexte, ruff pour l'outillage
« make format » donnait isort et black à tout fichier Python : la cible py37,
plus petit dénominateur commun de six dépôts d'addons, imposait son style au
code de ce dépôt. Le contexte décide désormais — les modules Odoo gardent isort
et black, le reste passe par ruff, réglé dans .ruff.toml, comme la norme OCA
depuis qu'elle a quitté black. Les dépôts rapatriés sous script/ en sont
écartés, chemin nommé compris. La cible y reste py310 : dès 3.14 ruff écrit
« except A, B: » sans parenthèses, que le python3 des hooks ne sait pas lire.
Vérifié : un fichier reçoit deux normes selon son chemin, et aucun dépôt
rapatrié n'est touché.

--- EN ---

"make format" gave isort and black to every Python file: the py37 target,
lowest common denominator of six addons repositories, imposed its style on this
repository's code. Context now decides — Odoo modules keep isort and black,
everything else goes through ruff, set in .ruff.toml, as the OCA standard does
since it left black. The repositories checked out under script/ are excluded, a
named path included. The target stays py310 there: from 3.14 on, ruff writes
"except A, B:" unparenthesised, which the python3 of the hooks cannot read.
Checked: one file gets two standards by its path, and no checked-out
repository is touched.

Assisted-by: Claude Opus 5
2026-09-24 13:30:08 -04:00
cd2b8266d4 [FIX] requirement erplibre : déclarer openpyxl, sauter sans lui
Three Transform data tests wrote an Excel workbook with openpyxl, which the
.venv.erplibre requirements never declared, so the unit suite reported three
errors on every install. openpyxl is now declared there. The tests skip when it
cannot be imported in their own interpreter, since a venv built before this
line still lacks it; the dedicated engine venv is not the right probe, as the
tests write their workbook in-process. Checked: 707 Transform tests pass, and
with openpyxl made unimportable the three are skipped, not errors.

--- FR ---

Trois tests de Transform data écrivaient un classeur Excel avec openpyxl, que
les dépendances de .venv.erplibre ne déclaraient pas : la suite unitaire
rendait trois erreurs sur toute installation. openpyxl y est désormais
déclaré. Les tests se sautent quand il ne s'importe pas dans leur interpréteur,
un venv bâti avant cette ligne ne l'ayant toujours pas ; le venv dédié du
moteur n'est pas la bonne sonde, les tests écrivant leur classeur sur place.
Vérifié : 707 tests de Transform passent, et openpyxl rendu inimportable, les
trois sont sautés et non en erreur.

Assisted-by: Claude Opus 5
2026-09-16 05:36:13 -04:00
60d35afdf4 Revert "[ADD] requirement : déclarer markdown-it-py, moteur de rendu HTML"
This reverts commit aef98311f5.
2026-09-14 07:21:12 -04:00
aef98311f5 [ADD] requirement : déclarer markdown-it-py, moteur de rendu HTML
The researcher assistant renders the model's markdown into HTML before
sanitising it, and markdown-it-py is the engine. It is present in the
environment only through bandit -> rich, so a lint tool holds up the render
path of a portal page: dropping bandit would drop the engine, with no
diagnostic beyond an ImportError at request time. The pin is declared where
functional dependencies live, not among the development ones, and matches the
version already installed.

--- FR ---

L'assistant du chercheur rend le markdown du modèle en HTML avant de
l'assainir, et markdown-it-py est le moteur. Il n'est présent dans
l'environnement que par la chaîne bandit -> rich : un outil de lint porte
donc le chemin de rendu d'une page portail, et retirer bandit retirerait le
moteur, sans autre diagnostic qu'une ImportError au moment de la requête.
L'épingle est déclarée là où vivent les dépendances fonctionnelles, non
celles de développement, et reprend la version déjà installée.

Assisted-by: Claude Opus 5
2026-09-14 05:10:46 -04:00
04b9717e96 [ADD] transform data : anonymiser un fichier externe ou une base Odoo
Partager un fichier ou une base demandait d'anonymiser à la main,
colonne par colonne, ou de ne pas partager. L'entrée ouvre un fichier
externe — Excel, Access, CSV, XML, JSON — ou une base Odoo, dit ce
qu'elle porte, puis en tire une copie. L'original n'est jamais touché.

Deux règles gouvernent ce qui sort. Une colonne n'est laissée intacte
que sur son CONTENU mesuré, hors onze étiquettes structurelles : décider
sur l'étiquette recopiait les colonnes les plus identifiantes en les
annonçant protégées. Et la copie est relue octet par octet, un classeur
portant de la donnée en une douzaine d'endroits hors des cellules.

Vérifié : 5 748 tests — 13 rouges, déjà rouges sur master.

--- EN ---

Sharing a file or a database meant anonymising by hand, column by
column, or not sharing. The entry opens an external file — Excel,
Access, CSV, XML, JSON — or an Odoo database, says what it holds, then
draws a copy of it. The original is never touched.

Two rules govern what comes out. A column is left alone on its measured
CONTENT, bar eleven structural labels: deciding on the label copied the
most identifying columns verbatim while announcing them as protected.
And the copy is reread byte by byte, a workbook holding data in a dozen
places that are not cells.

Checked: 5,748 tests — 13 red, already red on master.

Assisted-by: Claude Opus 5
2026-09-11 00:06:39 -04:00
01a55c0679 [REM] requirement : retirer sshconf, déclaré et jamais importé
Le paquet était déclaré, donc installé dans chaque environnement, et aucun
fichier ne l'importe. Il est aussi le mauvais outil pour ce dépôt : la
configuration SSH s'y lit soit par `ssh -G`, qui connaît les `Include`, les
`Match` et l'héritage des jokers, soit par le lecteur de lignes du paquet,
et une bibliothèque tierce n'apporte ni l'un ni l'autre.

Un test de la découverte affirme déjà qu'il n'est pas importé là où il
tenterait : cette assertion garde tout son sens, elle n'a plus de paquet
derrière elle.

--- EN ---

The package was declared, so installed into every environment, and no file
imports it. It is also the wrong tool for this repository: SSH configuration
is read here either through `ssh -G`, which knows about `Include`, `Match` and
wildcard inheritance, or through the package's own line reader, and a
third-party library brings neither.

A discovery test already asserts it is not imported where it would be
tempting: that assertion keeps all its meaning, it simply no longer has a
package behind it.

Assisted-by: Claude Opus 5
2026-09-09 07:35:15 -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
827998e99a [FIX] odoo 15: declare xlsxwriter, which report_xlsx has always needed
The 15 bump died on

    Unable to upgrade module "report_xlsx" because an external
    dependency is not met: Python library not installed: xlsxwriter

report_xlsx declares {"python": ["xlsxwriter", "xlrd"]} and the 15
pyproject held xlrd alone: the pair arrived half. Every other version
from 12 to 18 declares it -- 15 was the only gap.

Version 1.4.5, as in 16 and 17, and well within what Python 3.8
supports. poetry lock --no-update touched exactly one package: nothing
else moved.

--- FR ---

Le palier 15 mourait sur « Python library not installed: xlsxwriter ».

report_xlsx déclare {"python": ["xlsxwriter", "xlrd"]} et le pyproject
de la 15 ne portait que xlrd : la paire est arrivée à moitié. Toutes les
autres versions de 12 à 18 le déclarent — la 15 était le seul trou.

Version 1.4.5, comme en 16 et 17, largement dans ce que Python 3.8
supporte. poetry lock --no-update n'a touché qu'un paquet : rien
d'autre n'a bougé.

Assisted-by: Claude Opus 5
2026-08-23 02:20:23 -04:00
0f0f853be4 [ADD] migration state: colour the commands, and know when not to
A list of commands in flat text blends into its own headings the moment it
outgrows the screen — which is exactly when it gets read. Commands are now
cyan, steps bold blue, failed ones red, and each verdict wears the colour
of its meaning: 1 is amber, because « there is something to look at » is
not a crash and painting it red worries for nothing.

Colour is refused three times over, and each refusal has cost someone: a
log file full of escape codes, a grep that finds nothing, a terminal that
prints them as text. A pipe is not a screen, and NO_COLOR is honoured.

The full screen goes through Text.from_ansi, which does two things: it
renders the colours, and it takes the rest literally. Textual parses Rich
markup, so a command containing « [1] » was being eaten as a tag and
vanished from the pane without a word. That was true before the colour.

--- FR ---

[ADD] état de migration : colorer les commandes, et savoir s'en abstenir

Une liste de commandes en texte plat se confond avec ses titres dès
qu'elle dépasse l'écran — et c'est justement quand elle le dépasse qu'on
la lit. Les commandes sont en cyan, les étapes en bleu gras, celles qui
ont échoué en rouge, et chaque verdict porte la couleur de son sens : 1
est ambre, car « il y a quelque chose à regarder » n'est pas une panne.

La couleur se refuse trois fois, et chaque refus a coûté à quelqu'un : un
fichier de journal truffé de codes d'échappement, un grep qui ne trouve
plus rien, un terminal qui les affiche en clair.

Le plein écran passe par Text.from_ansi, qui rend les couleurs ET prend le
reste au pied de la lettre : une commande contenant « [1] » était avalée
comme du balisage Rich et disparaissait sans un mot.

Assisted-by: Claude Opus 5
2026-08-22 07:23:59 -04:00
3fbde848f8 [ADD] poetry: pin a dependency per architecture
factur-x >= 4.0 needs saxonche, which Saxonica ships no s390x wheel for.
Pin 3.x there, 4.2+ everywhere else.

PEP 508 markers now survive the whole chain: kept instead of evaluated,
and each line reaches "poetry add" as a single argument -- the
"grep -v ';'" silently dropped them. Since "poetry add" dedupes by name,
the multi-constraint form, which the CLI cannot express, is written back
into the pyproject and the lock regenerated.

PyMuPDF is set aside on s390x for the same reason: MuPDF does not build
there. Along the way, the ignore list missed pymssql, whose key carried
its version, and two pre-existing solver deadlocks, lxml-html-clean and
s3fs, blocked any regeneration.

--- FR ---

factur-x >= 4.0 dépend de saxonche, sans roue s390x chez Saxonica. On
épingle la 3.x là-bas, la 4.2+ ailleurs.

Le marqueur PEP 508 traverse maintenant la chaîne : il est conservé au
lieu d'être évalué, et chaque ligne devient un seul argument de « poetry
add » — le « grep -v ';' » écartait ces lignes en silence. « poetry add »
dédupliquant par nom, la forme multi-contraintes, hors de portée du CLI,
est réécrite dans le pyproject, puis le lock refait.

PyMuPDF est écarté sur s390x pour la même raison : MuPDF ne s'y construit
pas. Au passage, la liste d'ignorés ratait pymssql, dont la clé portait sa
version, et deux blocages préexistants du solveur, lxml-html-clean et
s3fs, interdisaient toute régénération.

Assisted-by: Claude Opus 5
2026-08-16 06:11:44 -04:00
16aecc2d33 [ADD] mail: read and send email from the TODO CLI
An IMAP/SMTP client in the menu, with its tests against real servers. Most
of the work went into refusals: an application password is named only when
the server actually refuses, an accented password is reported as never
having left the machine, and a refusal is recognised by what the server
SAYS rather than by matching its wording. A malformed date no longer takes
the whole folder down, and a received email is never read as markup.

--- FR ---

Un client IMAP/SMTP dans le menu, avec ses tests contre de vrais serveurs.
L'essentiel du travail porte sur les refus : le mot de passe d'application
n'est nommé que lorsque le serveur refuse vraiment, un mot de passe accentué
est signalé comme n'ayant jamais quitté la machine, et un refus se reconnaît
à ce que le serveur DIT plutôt qu'à ses mots. Une date illisible n'emporte
plus le dossier entier, et un courriel reçu n'est jamais lu comme du balisage.

Assisted-by: Claude Opus 5
2026-08-16 03:56:34 -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
203678b9e2 [ADD] requirement erplibre python-magic to support detect extension 2026-08-07 02:10:56 -04:00
5dd5ca10be [UPD] poetry odoo 18 security 2026-05-06 02:11:56 -04:00
c09f336a8f [FIX] pip odoo 18 requirement flanker fix for python3 2026-03-22 01:37:59 -04:00
7eab8ead76 [ADD] odoo 18 support STL file OpenCAD 2026-03-17 04:29:51 -04:00
8f0a5eb1ed [FIX] odoo 18 update poetry ignore mpl_toolkits 2026-03-17 04:26:14 -04:00
542c5a6c78 [UPD] poetry update odoo 18 security 2026-03-17 03:58:21 -04:00
cf3d69b7b0 [ADD] requirement odoo 18: orjson for optimal json usage 2026-03-17 03:53:12 -04:00
09ccbd5f96 [ADD] requirement odoo 18: flanker for mail check 2026-03-17 03:36:29 -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
4037002649 [UPD] odoo 18 poetry update 2026-03-08 16:15:27 -04:00
a0b9a93bb1 [IMP] script todo: support security check python environment 2026-03-08 16:09:44 -04:00
154f9aa03b [FIX] erplibre requirement install mmg for traduction markdown 2026-03-07 00:46:05 -05:00
ea3380af77 [UPD] python requirement odoo 18 with security 2026-02-14 06:45:13 -05:00
eff0183cbf [UPD] poetry update 2026-02-05 02:09:03 -05:00
9394a957e5 [ADD] poetry update with new package pdfminer.six 2026-02-05 02:07:47 -05:00
60824a4cba [UPD] erplibre requirement virtualenv 2026-02-05 02:07:47 -05:00
dependabot[bot]
f58a1983b5 Bump pillow from 12.0.0 to 12.1.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.0.0 to 12.1.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-version: 12.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-05 02:07:47 -05:00
dependabot[bot]
69a0eb8a2a Bump setuptools from 80.9.0 to 80.10.2
Bumps [setuptools](https://github.com/pypa/setuptools) from 80.9.0 to 80.10.2.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v80.9.0...v80.10.2)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 80.10.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-05 02:07:47 -05:00
dependabot[bot]
0db6f36913
Bump isort from 6.1.0 to 7.0.0
Bumps [isort](https://github.com/PyCQA/isort) from 6.1.0 to 7.0.0.
- [Release notes](https://github.com/PyCQA/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PyCQA/isort/compare/6.1.0...7.0.0)

---
updated-dependencies:
- dependency-name: isort
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-05 03:33:01 +00: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
8ec3a39840 [ADD] cetmix odoo 18 and update poetry dependency 2026-01-25 00:27:36 -05:00
a2155facc6 [UPD] mobile rename repo for erplibre_home_mobile 2025-12-28 00:48:38 -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
4ab367934a [UPD] poetry last version with pillow 2025-12-20 03:15:51 -05:00
c2063a4823 [FIX] requirement odoo 18 ignore pyssql for production
- no need Microsoft SQL serveur for production or install it by
configuration
2025-11-25 23:38:26 -05:00
b66f075431 [UPD] poetry downgrade astor 2025-11-16 04:10:05 -05:00
32fe737bd8 [UPD] script search class model: remove astor and update code, add parameters 2025-11-16 04:08:14 -05:00
b795d23342 [UPD] poetry odoo 18 2025-11-16 03:35:05 -05:00
fbc6955514 [UPD] poetry odoo 18 update 2025-11-11 05:46:14 -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