conandeps: add progress output, silence Conan's SyntaxWarnings, allow Python 3.12+
- Progress lines on stderr for each of the three graph resolutions (with package/missing counts and timing) so a slow remote no longer looks like a hang; -q suppresses them. stdout remains the clean report. - --verbose now streams Conan's output live via a tee instead of dumping it at the end. - Filter SyntaxWarning/DeprecationWarning before importing conans: Conan 1.x modules trip the stricter escape-sequence checks of recent Pythons and printed a screenful of noise on 3.14. - Drop the <3.12 requires-python ceiling. Conan 1.66 falls back to importlib where imp is missing; verified working on 3.14. Fix the Containerfile and docs that claimed otherwise. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYNdaGDrpaqDyT8QtrTQbM
This commit is contained in:
parent
eb7dcb89d4
commit
ac5a49ef62
6 changed files with 330 additions and 17 deletions
12
CLAUDE.md
12
CLAUDE.md
|
|
@ -14,9 +14,12 @@ for what it does and how it is used.
|
|||
- **Conan 1.66 only.** Use the `conans.client.conan_api.ConanAPIV1` API and
|
||||
Conan 1 graph internals (`Node.binary`, `Node.dependencies`,
|
||||
`conanfile.requires`). Do not introduce Conan 2 APIs or a Conan 2 code path.
|
||||
- **Python 3.8–3.11.** Conan 1.x imports the `imp` module, which is gone in
|
||||
3.12. `requires-python` in `pyproject.toml` and the PEP 723 header in
|
||||
`conandeps.py` both say `<3.12`; keep them in sync.
|
||||
- **Python 3.8+.** Conan 1.66 runs on new Pythons too (it falls back to
|
||||
`importlib` where `imp` is gone) – verified on 3.14. It does emit
|
||||
SyntaxWarnings from its own modules there, which `conandeps.py` silences
|
||||
before importing `conans`; keep `conans` imports deferred so that filter
|
||||
is in place first. `requires-python` in `pyproject.toml` and the PEP 723
|
||||
header must stay in sync.
|
||||
- **All development runs inside the container.** Use `./dev.sh <cmd>` for
|
||||
every python/pytest/ruff/uv invocation. Never run `conan` against the
|
||||
host's `~/.conan`; never `pip install` on the host. Rebuild the image with
|
||||
|
|
@ -51,6 +54,9 @@ for what it does and how it is used.
|
|||
header makes the file usable via `uv run conandeps.py` without a checkout.
|
||||
- **Exit codes:** `0` fine, `1` missing binaries, `2` Conan error. CI relies
|
||||
on this.
|
||||
- **stdout is the report, stderr is progress.** Graph resolution against a
|
||||
remote takes a while; progress lines (`_progress`) and `--verbose` live
|
||||
Conan output go to stderr only, so stdout can be redirected to a file.
|
||||
|
||||
## Workflow
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue