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:
Ole-Morten Duesund 2026-08-25 15:07:07 +02:00
commit ac5a49ef62
6 changed files with 330 additions and 17 deletions

View file

@ -32,7 +32,7 @@ Given a `conanfile.py`, `conandeps` tells you three things in one report:
### Installation
Requires Python 3.83.11 (Conan 1.x does not run on 3.12+). With
Requires Python 3.8 or newer. With
[uv](https://docs.astral.sh/uv/):
```bash
@ -68,7 +68,12 @@ conandeps CONANFILE [-r REMOTE] [-pr PROFILE] [-s KEY=VALUE] [-o PKG:KEY=VALUE]
| `--build-types` | Comma-separated build types to check. Default: `Release,Debug,RelWithDebInfo`. |
| `-u`, `--update` | Ask the remote for newer recipes/binaries (`conan -u`). |
| `--html FILE` | Also write a self-contained HTML report (no scripts, no external assets). |
| `-v` | Echo Conan's own output to stderr. |
| `-v` | Stream Conan's own output to stderr live. |
| `-q` | Suppress the progress lines on stderr. |
Progress (`[1/3] resolving graph for build_type=Release on knor ...`) goes to
stderr; the report itself goes to stdout, so redirecting stdout to a file
gives a clean report.
Exit status: `0` all binaries present, `1` at least one is missing, `2` Conan
failed to build the graph (for example a version conflict). This makes it