Skip to content

Feat/custom index#222

Merged
tmi merged 5 commits into
developfrom
feat/customIndex
Jun 8, 2026
Merged

Feat/custom index#222
tmi merged 5 commits into
developfrom
feat/customIndex

Conversation

@tmi

@tmi tmi commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Adds an option to specify pip extra indices and find links to job submission

Demonstrated on making the integration tests actually work on more jobs than just noRuntime

tmi and others added 3 commits June 5, 2026 09:32
…stalls

- Add custom_pip_indices: list[str] field to JobInstanceRich (low/core.py)
- Add _pip_index_flags() helper in packages.py: maps absolute paths to
  --find-links (local wheelhouse dirs) and other values to --extra-index-url
- PackagesEnv accepts pip_indices and applies flags in extend() pip calls
- create_venv() accepts pip_indices and passes them to initial install
- RunnerContext gains pip_indices: tuple[str, ...] field (propagated from job)
- Executor now takes JobInstanceRich instead of JobInstance; propagates
  custom_pip_indices to RunnerContext and create_venv
- entrypoint.py passes pip_indices from RunnerContext to PackagesEnv
- Update test fixtures in test_run.py and test_executor.py to wrap
  JobInstance in JobInstanceRich for the Executor constructor
- Add unit tests for _pip_index_flags and PackagesEnv pip_indices behaviour

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- create_venv() and PackagesEnv.__init__() now take list[str] directly
  (no None default) -- callers always have the list from JobInstanceRich
- Add comment on RunnerContext.pip_indices explaining why tuple[str, ...]:
  immutability is intentional and signals fixed-for-executor-lifetime config

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s in PackagesEnv

- JobInstanceRich.custom_pip_indices: list[str] -> tuple[str, ...]
  (pydantic roundtrips correctly: serialises as JSON array, deserialises
  back to tuple via coercion)
- PackagesEnv.__init__ pip_indices: list[str] -> tuple[str, ...]
  stores pre-computed _pip_index_flags list so the identical _pip_index_flags()
  call is not repeated on every extend() invocation
- create_venv pip_indices: list[str] -> tuple[str, ...]
- All callers updated to pass tuples directly (no wrapping needed)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tmi tmi force-pushed the feat/customIndex branch from 228891f to 2521a15 Compare June 5, 2026 09:51
…tests

- Add integration_tests/pyproject.toml so the runtime module can be built
  as a wheel (cascade-integration-runtime) with setuptools
- spawn_remote_gateway now builds both the ekw wheel and the runtime wheel,
  creates /shared/wheels/ on the remote host (mkdir -p), and copies both
  wheels there
- RemoteGatewayHelper gains ekw_wheel and wheels_dir (replaces remote_wheel)
- build_job_spec injects custom_pip_indices = (wheels_dir,) for all non-local
  deployments so workers can pip-install runtime from the local wheelhouse

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tmi tmi marked this pull request as ready for review June 8, 2026 09:56
@tmi tmi force-pushed the feat/customIndex branch from a96c8eb to d8f14fa Compare June 8, 2026 10:00
@tmi tmi merged commit 160709e into develop Jun 8, 2026
11 checks passed
@tmi tmi deleted the feat/customIndex branch June 8, 2026 10:06
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