Stable V1 · migration and support

V1 migration and support

Execution contracts, archive-preservation procedures, and explicit boundaries of the published V1 line, now powered by DAG-ML.

V1 is published. nirs4all 1.1.3 is the Python V1 release. Studio 0.11.11 uses its Python backend with the corrected nirs4all 1.1.3 library. Tools 0.0.7 creates verified preservation copies of legacy content; it does not yet claim to perform semantic workspace conversion.

Execution boundaries

SurfaceV1 ownerBoundary
Python libraryDAG-ML for general execution; explicit native portable profileengine="legacy" remains an explicit rollback for Python callers and is selected by the Studio recovery release.
Studio 0.11.11Python backendOne installer per operating system and Docker. Existing 0.11.7 users should reinstall manually and keep their configuration.
WebClient-side WASMNo Python runtime or analysis backend.

Preserve without modifying the source

The published nirs4all-tools 0.0.7 package inspects historical stores and can create a separate, exhaustive, verified preservation copy. The source retains its path, inode, and bytes. V1 refuses requests for semantic conversion into a new workspace until a complete reconstruction contract is available.

python -m venv /opt/nirs4all-tools-0.0.7
/opt/nirs4all-tools-0.0.7/bin/python -m pip install "nirs4all-tools==0.0.7"
/opt/nirs4all-tools-0.0.7/bin/nirs4all-tools legacy inspect /data/legacy --format text
/opt/nirs4all-tools-0.0.7/bin/nirs4all-tools legacy migrate /data/legacy \
  --output /data/legacy-preserved --copy-only --verify
/opt/nirs4all-tools-0.0.7/bin/nirs4all-tools legacy verify /data/legacy-preserved \
  --manifest /data/legacy-preserved/migration-manifest.json

Main exit codes: 0 successful copy-only preservation; 20 unsupported capability, including semantic conversion; 30 verification failure; 40 security-policy refusal; 70 internal error. Code 10 is reserved for a future best-effort transformation.

Read / write / migrate matrix

Every write targets a new, separate preservation directory. V1 does not create a nirs4all-workspace-v2 from a legacy store and never starts migration automatically. Any change to this policy must be announced with an explicit migration path.

InputReadWriteMigrate
DuckDB / SQLite workspaceRead-only inspectionPreserved copy under payload/Semantic conversion refused
Filesystem runs / predictionsInventory without executionPreserved, checksummed copySemantic conversion refused
.n4a bundleDetection only; Python objects are never executedPreserved, checksummed copySemantic conversion refused
Unknown inputDetection onlyCopy-only when policy allows itRefused

APIs, ABIs, and schemas

ContractV1 identityRule
Python APIPipelineRunner, export, predict, and native sessionLegacy selection must be explicit; Studio recovery selects it for its Python backend.
Methods C ABIlibn4m 2.5.0, SONAME 2Verify header/runtime compatibility before any other operation; keep bindings thin.
Methods modelN4MM v1/v2Bounded decoding; validate types and sizes before allocation or execution.
Portable archiveCore Archive V2Validate format, bounds, Methods identity, and fingerprint before replay; never refit implicitly.
Workspacenirs4all-workspace-v2SQLite for metadata and Parquet for arrays.
Studio 0.11.11Python releaseThe shipped Python backend is separate from the V1 native-backend development contracts.

General Python example

import nirs4all

result = nirs4all.run(pipeline="pipeline.yaml", dataset="dataset.yaml")
archive = result.export("./run.n4a")
prediction = nirs4all.predict(model=archive, data="new_dataset.yaml")

Select the strict portable profile explicitly with engine="native". It requires a list-form pipeline, a splitter, a supported Methods model, and a dataset containing X, y, and sample_ids. Read the V1 Python guide before presenting its export as a portable Core archive.

Explicit Python rollback

rollback = nirs4all.run(
    pipeline="pipeline.yaml",
    dataset="dataset.yaml",
    engine="legacy",
)

FAQ

How do I update Studio 0.11.7?

Download and run the installer from the Studio 0.11.11 release page manually. Keep your existing configuration when prompted, then select your workspace.

Which backend does Studio 0.11.11 use?

This release uses the Python backend, pins nirs4all 1.1.3 and selects engine="legacy". The corrected library supports schema-5 SQLite workspaces from Studio 0.11.7; existing storage is not downgraded. The Python library default and the browser WASM app retain their own execution contracts.

Is a legacy workspace migrated when it is opened?

No. Detection is read-only. An operator may create a preservation copy at a new destination and verify its report. That copy is not a reconstructed V1 workspace and does not trigger an automatic cutover.

Does this page announce V1?

This page documents the Python V1 release and its preservation tools, alongside the Studio 0.11.11 recovery instructions. The Cockpit reports current operational status, while the release receipt preserves a verifiable snapshot of the initial V1 publication.

Verifiable V1 contracts