CaltechExperimentalGravity / CaltechExperimentalGravity/system_ident

[deferred] python 3.12 deployment environment — blocked on CDS support, which is NOT promised

Open
#30 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

**Deferred, plan-only. Do not implement.** Opened so the option is recorded with an honest status rather than rediscovered or overstated.

## The idea

A `sysid_deploy` variant at `python=3.12`, mirroring the lean spec in `environment_deploy.yml` — same CDS packages, same structure, python bumped. 3.12 matches this repo's own `environment.yml` pin, which makes it the **last** version worth considering: **no python later than 3.12 needs testing.**

## What is established

`python-awg`, `python-foton`, `cds-crtools` and `python-nds2-client` **do** have linux-64 `py312` builds on conda-forge (4.1.4 also has py313/py314; 4.2.1 has py313). See https://api.anaconda.org/package/conda-forge/python-awg/files

So **package availability is not the blocker.**

## What is NOT established — read this before acting

- **CDS support for 3.12 is unknown and is not promised.** The help desk's statement was that **3.11** is supported, and 3.11 is what CDS publishes (`cds-py311.yaml`). There is no `cds-py312.yaml`.
- Site updates are ongoing, but **do not assume any of them introduce formal 3.12 support** — that is speculation, not a roadmap. This issue must not be read as "3.12 is coming".
- Running ahead of the site's supported version **forfeits the ABI-matching argument** that is the whole reason for tracking the published CDS environment. `python-foton`, `python-awg` and `python-nds2-client` are compiled extensions; the value of pinning to `cds-py311` is that it is the set the site builds and exercises. A self-assembled py312 set has no such backing.

## Trigger to un-defer

Either of:
1. an explicit statement of 3.12 support from CDS / the help desk, **or**
2. a `cds-py312.yaml` appearing at https://apt.ligo-wa.caltech.edu/sources/conda/environments/linux-64/ alongside the existing py310/py311 files.

Absent either, this stays deferred **indefinitely, and that is a fine end state** — python 3.11 is a fully adequate deployment target and closes the gap that motivated #22 (the previous target was python 3.9.13 / numpy 1.22.4 / scipy 1.8.1 / control 0.9.2).

## If it is ever done

- Copy `environment_deploy.yml`, set `python=3.12`, and re-pin numpy/scipy/etc. to whatever the then-current CDS py312 environment uses — **not** to the py311 values.
- Re-run the full read-only validation from #22: imports, the ten-file deployment-gate subset, the lazy-import assertion, and a read-only NDS fetch.
- **The awg question restarts from zero.** A python change does not carry over injection validation; see #27. Every test injection needs its own operator approval regardless of how many previously succeeded.

Related: #22 (the py3.11 environment), #23 (compat), #27 (hardware-only unknowns).

Contributor guide

No contributing guide indexed for this repository

Research direction

Do not implement while CDS 3.12 support is unestablished. First check for an official cds-py312.yaml or an explicit CDS/help-desk statement, then compare environment_deploy.yml with the supported environment and review #22's validation steps. Done requires CDS support, updated pins, the full read-only validation, and separate operator approval for each injection test.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.