Skip to content

Move workflow requirements from ewoks and add them to graph schema 1.4 - #520

Open
woutdenolf wants to merge 7 commits into
mainfrom
requirements-from-ewoks
Open

woutdenolf wants to merge 7 commits into
mainfrom
requirements-from-ewoks

Conversation

@woutdenolf

@woutdenolf woutdenolf commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

Part of ewoks-kit/ewoks#343. Merge this first; the ewoks side is ewoks-kit/ewoks#365.

  • Move ewoks._requirements to ewokscore.requirements, with its tests.
    • Public API: ewokscore.requirements and ewokscore.requirements.environment (used by ewoks). All other submodules are private.
    • ewokscore does not know ewoks: add_requirements records the bootstrap distributions it is given, install_requirements adds the extra_distributions it is given.
    • The ewoks section (version and engine) of the requirements becomes bootstrap: {"distributions": {name: version}}.
  • Tests: the home directory of the package managers is patched per test instead of per package.
    • Needed after the move: the session fixture testkernel of ewokscore installs a Jupyter kernel in the home directory. With pytest 8 (Python 3.8/3.9 jobs) the patched home was still active at the end of the session, so removing the kernel failed (KeyError: 'pytest_kernel'). ewoks has no such fixture.
  • Tests: adding distributions runs with every package manager, also when they conflict with the requirements.
    • ensure_ewoks became the generic ensure_distributions; its old test could not detect lost version constraints and never ran with conda or pixi.
    • Adding to a project that does not pin its dependencies (uv, poetry, pixi) can change versions: this is now logged as a warning.
  • Graph schema 1.4: the requirements graph attribute may be the dict that ewoks convert saves (package manager, its files, python, distributions), or the requirements.txt list as before.
    • Fixes ewoks lint, which rejected graphs saved by ewoks convert because schema 1.3 only allowed a list.
  • CI: install uv, poetry, pixi and conda; the tests for those package managers are skipped without them.

🤖 Generated with Claude Code

@woutdenolf
woutdenolf force-pushed the requirements-from-ewoks branch 2 times, most recently from 6060944 to c0bd84e Compare November 6, 2026 16:00
@woutdenolf woutdenolf added this to the v5.1.0 milestone Nov 6, 2026
… imports

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@woutdenolf
woutdenolf force-pushed the requirements-from-ewoks branch from c0bd84e to 5b63bb3 Compare November 6, 2026 16:16
@woutdenolf
woutdenolf requested review from a team and removed request for a team November 6, 2026 16:20
@woutdenolf
woutdenolf marked this pull request as draft November 6, 2026 16:40
@woutdenolf
woutdenolf force-pushed the requirements-from-ewoks branch 6 times, most recently from d709f0f to 3dcc17c Compare November 11, 2026 14:57
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@woutdenolf
woutdenolf force-pushed the requirements-from-ewoks branch from 3dcc17c to 7d369a2 Compare November 11, 2026 14:58
woutdenolf and others added 4 commits November 11, 2026 16:05
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…conflict with the requirements

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@woutdenolf
woutdenolf force-pushed the requirements-from-ewoks branch from 7d369a2 to be7ebca Compare November 11, 2026 15:05
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@woutdenolf
woutdenolf requested a review from a team November 11, 2026 15:38
@woutdenolf
woutdenolf marked this pull request as ready for review November 11, 2026 15:38

This branch has not been deployed

No deployments
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.

1 participant