Repository navigation
build(env): AUT-2574 lock managed environments and use uv sync - #4837
Conversation
Migrate component and preparation environments to committed uv projects and locks, preserve parent dependency contracts and installed-wheel setup, and make tqdm output resilient to concurrent bar retirement. Lock-update automation is intentionally excluded. Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Resolve the kilocode sandbox-extra and Stirrup conformance conflicts without restoring unlocked installs. Migrate the newly added VoiceBench and CritPt host environments and regenerate their locks together with the changed Harbor and Kilocode locks. The protected scientific task container remains separate. Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test e4269bd |
|
/ok to test e4269bd |
|
🌿 Preview your docs: https://nvidia-preview-pr-4837-558eeb9ae896.docs.buildwithfern.com/nemo/gym |
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
Signed-off-by: svcnemo-autobot <svcnemo-autobot@nvidia.com>
|
/ok to test dc605e1 |
|
/ok to test 1dd1950 |
There was a problem hiding this comment.
Thanks for the follow-up. Most of what I raised last time is fixed (osworld dependencies, the codec torch check, mirror sync, benchmark prepare, macOS locking, the freshness workflow, cvdp pip). I re-checked the current head (1dd1950) and found four things I'd like addressed. Severity: P1 = should be fixed before merge, P2 = real but non-blocking. I may be missing context, so please push back if I've misread anything.
P1 (fix before merge)
-
[P1] Wheel installs break the molopt and OSWorld installers.
setup.pyreplaces every packageduv.lockwith a 54-byte placeholder.chemcotbench/setup_molopt.py:76,98andosworld_agent/install_optional_runtime_deps.shrunuv sync --lockeddirectly on those files. In a wheel built from this head,chemcotbench/molopt/uv.lockandosworld_agent/runtime/uv.lockare placeholders, anduv sync --lockedon one fails withFailed to parse uv.lock. Please route these through_locked_env/_wheel_project, or ship these two locks unchanged. -
[P1] The
transformers>=5.17.0constraint overrides COMET's own limit.unbabel-comet 2.2.7requirestransformers<5.0andhuggingface-hub<1.0. Thewmt_translationandlongmt_evallocks resolvetransformers 5.22.1through the override. I have not tested COMET on transformers 5, so this is a risk rather than a confirmed break. Could we either run the COMET tests on it, or exempt these units from the floor? -
[P1] Lock freshness is not a required check.
component-locks.ymlis path-filtered and is not inNemo_CICD_Test'sneeds. The required pytest tests check that locks exist and match the policy, but not that they are up to date. A stale lock can still merge. Could you make this check required, or call it from a jobNemo_CICD_Testdepends on?
P2 (non-blocking)
- [P2] uv 0.13.4 is now the minimum, but CONTRIBUTING still says 0.11.21.
CONTRIBUTING.md:100and the comments infull-test-suite.yml:35-36say 0.11.21 or newer. With uv 0.11.28 every managed project fails withRequired uv version >=0.13.4 does not match the running version 0.11.28. CI is pinned to 0.13.4, so this only affects contributors. Please update the docs and add a short migration note.
|
/resolve-conflict |
Signed-off-by: oliver könig <okoenig@nvidia.com>
|
/ok to test 982c264 |
Signed-off-by: oliver könig <okoenig@nvidia.com>
|
/ok to test 97d9b77 |
Signed-off-by: oliver könig <okoenig@nvidia.com>
|
/ok to test 02151a6 |
Signed-off-by: oliver könig <okoenig@nvidia.com>
|
/ok to test 558eeb9 |
@ko3n1g, there was an error processing your request: See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/2/ |
|
/ok to test 558eeb9 |
OliviaViessmann
left a comment
There was a problem hiding this comment.
not touching core code from the bionemo side. Approving.
Signed-off-by: oliver könig <okoenig@nvidia.com>
|
/ok to test deb1f9d |
|
Hi @ko3n1g The new local_vllm_model/pyproject.toml lists "pycountry; sys_platform == 'never'" under Repro on main d56eeb5 (still broken after #5604): The parent 3a9b9eb (mistral_common 1.13.0, transformers 5.21.0, pycountry installed) starts fine. |
Background
Make managed installs reproducible for AUT-2574 while preserving custom components and parent-environment compatibility. Lock-update automation is excluded.
What changed
Add managed component/preparation locks and locked sync, retaining custom setup and parent compatibility resolution.
Current externally updated head:
02151a64.The observed description records repairs to Stirrup's removed-file consumer and the Slurm export tests' pip-install assumptions. Independent source and validation reconciliation remains pending.
Preserve Pool's confirmed timeout and model-call evidence when trajectory capture fails. Keep unreadable-trajectory failures fatal after completed inference, and cover both trajectory states in the existing regression test.
Retain upstream driver-install failure reporting around locked sync, clearing the failure trap only after sync succeeds. Update the remote-reader assertion and venv activation fixture to preserve their existing behavior with locked installs.
Retain
tomlkitalongside upstream's OpenTelemetry dev dependency and defaulttiktokendependency. Refresh the affected managed locks while preserving existing component package versions.Details
The requester authorized landing this PR through normal repository requirements and addressing Kajal's remaining requests in a follow-up PR. No check bypass is requested.
Tested
deb1f9d64b38b6ee700dae5ae007ff8682a9a505, joining the previous PR head558eeb9ae8962212e2e9a5c9640026c28d06c80fwith upstreammainat3a9b9eb981ab7a3ea0ebd517cbd4fca1d586768b. Signature and DCO sign-off verified.pre-commit run --all-files: passed, including Ruff, formatting, guardwords and import-linter.git diff --cached --checkpassed.python scripts/component_locks.py --jobs 4: all 267 projects passed. Existing component package versions were preserved; the root lock adopts upstream'stiktoken==0.14.0.pytest -q -o addopts='' --tb=short \ tests/unit_tests/test_slurm_script.py \ tests/unit_tests/test_orchestration_exports.py \ tests/unit_tests/test_remote_managed_recovery.py \ tests/unit_tests/test_remote_reader_transport.py \ tests/unit_tests/test_reader_cleanup.py \ tests/unit_tests/test_reader_login_fallback.py \ tests/unit_tests/test_reader_srun.py \ tests/unit_tests/test_reader_progress.py \ tests/unit_tests/test_allocation_cut_recovery.py \ tests/unit_tests/test_component_dependencies.py \ tests/unit_tests/test_import_linter_coverage.py \ tests/unit_tests/test_locked_env.py \ tests/unit_tests/test_speed_bench_preparation.py \ tests/unit_tests/orchestration/test_orchestration_otel.pygit fetch origin mainconfirmed the merged main commit remains3a9b9eb981ab7a3ea0ebd517cbd4fca1d586768b;git merge-base --is-ancestor origin/main HEADpassed.558eeb9ae8962212e2e9a5c9640026c28d06c80fin run 41814672225. That run retains a separate non-blocking Kilocode conformance failure. These are not verdicts for this merge commit; CI has not been rerun for the latest head.