Skip to content

Release 2026-09-20 (i4 4d9b6cfd) - #266

Merged
lfengad merged 2 commits into
mainfrom
release/2026-09-20-4d9b6cfd
Sep 20, 2026
Merged

lfengad merged 2 commits into
mainfrom
release/2026-09-20-4d9b6cfd

Conversation

@yy-code-nv

Copy link
Copy Markdown
Collaborator

Automated release from i4.

_source_commit: 4d9b6cfd3731fdbbca883184937d40a64d2dca52-dirty
_dest_commit (base): c23e51f2f157ae3e51cfcd86ebfb5464850894f2

_source_commit: 4d9b6cfd3731fdbbca883184937d40a64d2dca52-dirty
_dest_commit:   c23e51f
@lfengad
lfengad enabled auto-merge (squash) September 20, 2026 06:19
lfengad pushed a commit that referenced this pull request Sep 20, 2026
## Why

Release PRs #265 and #266 fail the `unittest` job and nothing else. The
tree they ship now includes
`cosmos_framework/data/generator/augmentors/hr_lr_degradation/codec.py`,
which calls `VideoFrame.reformat(threads=...)` (PyAV >= 17). This repo
lists `av` with no floor and the lock resolved **16.1.0**, so 12 codec
tests fail with `TypeError: reformat() got an unexpected keyword
argument 'threads'`.
`degrade_test.py::test_codec_round_trip_bounds_encoder_and_decoder_threads`
then leaves its non-daemon thread-count sampler running (the error is
raised before `stop.set()`), pytest never exits after printing its
summary at ~36 min, and the job is killed at the 60-minute timeout. Same
picture on both days.

## What

Mirror the three constraints `cosmos-framework-private` already has
(suggested by @lfengad):

| change | private origin |
|---|---|
| `av>=17,<18; python_version < '3.11'` |
nvidia-cosmos/cosmos-framework-private#94 |
| `av>=18,<19; python_version >= '3.11'` (what the imaginaire4 images
ship) | private e428840 |
| `requires-python = ">=3.10,<3.14"` |
nvidia-cosmos/cosmos-framework-private#92 |

The cap is not optional: without it uv 0.12.17 cannot re-resolve this
lock at all (`multi-storage-client 0.44.0` has no aarch64 wheel for the
Python 3.14 split), so no dependency bump can land here until it does.

## Verification

- uv 0.12.17 (the version `setup-uv@v7` installs) reproduces `main`'s
`uv.lock` byte-for-byte on the untouched tree.
- After the change the only `(name, version)` pairs that move are `av
16.1.0 -> 17.1.0 / 18.1.0`; every other package is unchanged. The large
diff is the dropped 3.14 resolution splits, exactly as in private #92.
- `uv lock --check` passes.

## Follow-ups (not in this PR)

- The sampler thread in `degrade_test.py` should be daemon or wrapped in
`try/finally` so a codec failure can never hang the whole unittest job
again; that is an imaginaire4-side change (the file is release-mapped).
- Once this lands, re-run #266's GPU Tests (or regenerate it); the
failing tests then run on PyAV 18.
@lfengad
lfengad merged commit 96303bb into main Sep 20, 2026
16 of 17 checks passed
@lfengad
lfengad deleted the release/2026-09-20-4d9b6cfd branch September 20, 2026 10:28
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.

4 participants