Skip to content

test: e2e matrix entry for local.py config_dev branch#18

Merged
trisdoan merged 7 commits intomainfrom
test/local-py-config-dev
Mar 12, 2026
Merged

test: e2e matrix entry for local.py config_dev branch#18
trisdoan merged 7 commits intomainfrom
test/local-py-config-dev

Conversation

@nilshamerlinck
Copy link
Copy Markdown
Contributor

@nilshamerlinck nilshamerlinck commented Mar 2, 2026

Summary

All previously stacked PRs have been merged into main. This PR now contains the remaining e2e infrastructure commits plus fixes for legacy Odoo dependency resolution issues discovered during testing.

E2E infrastructure

  • test: add e2e matrix entry for local.py config_dev with OCA contributor config — adds the test-oca job that tests with the full OCA contributor module set using the auto-generated per-version repo list from trobz/odoo-addons-repos
  • ci: cache uv binary in tool-cache (PR Tmp #50) — caches the uv binary in both test-native and test-oca jobs to avoid GitHub Releases downloads on warm runs; also pins uv to 0.10.8 and adds ignore-empty-workdir: true

Dependency resolution fixes (Odoo ≤13 + OCA addons)

  • fix: handle magento as NBI packagemagento depends on suds-jurko, which needs --no-build-isolation + legacy setuptools<58. Since suds-jurko is a transitive dep (not in direct requirements), PR feat: auto-handle packages requiring --no-build-isolation #44's scan never detected it. Adding magento to _NO_BUILD_ISOLATION_PACKAGES ensures it and its transitive deps are built with the venv's legacy setuptools.

  • fix: relax python-dateutil and pytz pins when pandas is requiredpandas>=1.0 needs python-dateutil>=2.7.3 and pytz>=2017.3, but Odoo ≤13 pins ==2.5.3 and ==2016.7 respectively. Without relaxing both, the resolver walks every pandas version down to 0.13.1 and fails on its invalid pytz>=2011k specifier. Adds "pandas": ["python-dateutil", "pytz"] to _KNOWN_TRANSITIVE_CONFLICTS.

  • fix: relax python-dateutil and pytz pins when altair is requiredaltairpandaspython-dateutil>=2.7.3 + pytz>=2017.3. Since pandas is only a transitive dep of altair, the user-source scan won't find it — altair needs its own entry: "altair": ["python-dateutil", "pytz"].

  • fix: relax requests pin when klaviyo-api is required — Every klaviyo-api version requires requests>=2.26.0, but Odoo ≤13 pins ==2.20.0. No compatible version exists without relaxing the pin. Adds "klaviyo-api": ["requests"].

🤖 Generated with Claude Code

@nilshamerlinck nilshamerlinck force-pushed the test/local-py-config-dev branch 13 times, most recently from be96234 to 1e10329 Compare March 4, 2026 10:48
@nilshamerlinck nilshamerlinck force-pushed the test/local-py-config-dev branch 2 times, most recently from 54a80a6 to 57b562e Compare March 6, 2026 08:27
@nilshamerlinck
Copy link
Copy Markdown
Contributor Author

hi @trisdoan

  • fyi still fighting to get this one green, almost done, down to 12.0 job only
  • meanwhile I created PRs for each individual change, they can already be reviewed/merged and of course challenged if needed ;-)

nilshamerlinck and others added 2 commits March 10, 2026 17:28
…or config

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add an explicit actions/cache step for /opt/hostedtoolcache/uv before
setup-uv in both test-native and test-oca jobs. setup-uv runs before
checkout so it can't resolve the version from pyproject.toml and falls
back to a GitHub Releases download every time. Caching the binary with
a static key (uv-binary-${{ runner.os }}-0.10.8) lets warm runs skip
the download entirely.

Also pin uv to 0.10.8 and add ignore-empty-workdir: true to suppress
the "could not find uv.toml/pyproject.toml" warnings.
@nilshamerlinck nilshamerlinck force-pushed the test/local-py-config-dev branch from 51728b5 to edf547c Compare March 10, 2026 10:46
mysql-python is a Python 2-only package that cannot be built on Python 3.
Drop it from _NO_BUILD_ISOLATION_PACKAGES and the _NBI_BUILD_DEPS
ConfigParser hack (ConfigParser on PyPI is Python 2-only and cannot be
installed on Python 3.7+).

Also correct the _MANIFEST_IMPORT_TO_PIP mapping for the `MySQLdb`
import name: the Python 3-compatible package is `mysqlclient`, not
`MySQL-python`.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nilshamerlinck nilshamerlinck force-pushed the test/local-py-config-dev branch from cf93527 to 3ae2195 Compare March 10, 2026 15:30
…s legacy setuptools

magento (v3.1) depends on suds-jurko, which fails to build with setuptools>=58
(use_2to3 removed). Since suds-jurko was only a transitive dep, the existing
_NO_BUILD_ISOLATION_PACKAGES scan never detected it and it was built in isolation
with modern setuptools during the batch install.

Adding magento to _NO_BUILD_ISOLATION_PACKAGES (odoo_version <= 13.0) excludes it
from the batch install and re-installs it with --no-build-isolation after
setuptools<58 is in place, so uv uses the venv's build tools for all packages
in that invocation (including suds-jurko).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nilshamerlinck nilshamerlinck force-pushed the test/local-py-config-dev branch 2 times, most recently from 90204eb to a0e1a66 Compare March 10, 2026 15:37
@nilshamerlinck nilshamerlinck marked this pull request as ready for review March 10, 2026 15:47
@nilshamerlinck nilshamerlinck marked this pull request as draft March 11, 2026 02:03
nilshamerlinck and others added 3 commits March 11, 2026 09:09
pandas>=1.0 depends on python-dateutil>=2.7.3 and pytz>=2017.3, but
Odoo<=13 pins python-dateutil==2.5.3 and pytz==2016.7.  Without
relaxing both, the resolver walks every pandas version down to 0.13.1
and fails on its invalid pytz>=2011k specifier.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
altair depends on pandas, which needs python-dateutil>=2.7.3 and
pytz>=2017.3.  Since pandas is only a transitive dep, altair needs its
own _KNOWN_TRANSITIVE_CONFLICTS entry.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every klaviyo-api version requires requests>=2.26.0, but Odoo<=13 pins
requests==2.20.0.  No compatible version exists without relaxing the pin.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@nilshamerlinck nilshamerlinck force-pushed the test/local-py-config-dev branch from e0386ab to 03c0285 Compare March 11, 2026 02:09
@nilshamerlinck nilshamerlinck marked this pull request as ready for review March 11, 2026 05:33
@trisdoan trisdoan merged commit 9f12e50 into main Mar 12, 2026
54 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants