Repository navigation
Releases: scinumtools/snt3
Release list
Metadata Constraints and DIPH5 Ordering
SNT3 0.9.6 — Metadata Constraints and DIPH5 Ordering
This release adds metadata constraints to DIPL schemas, preserves group order in DIPH5 files, and updates the DIPL specification and documentation.
DIPL
- Add !metadata required and !metadata nonempty schema constraints.
- Validate constraints against effective metadata after schema defaults, instance metadata, and overrides are applied.
- Expose schema metadata constraints through inspection APIs and Python bindings.
DIPH5
- Preserve group order when saving and loading DIPH5 files.
Documentation
- Update the DIPL specification and grammar with metadata constraint syntax and behavior.
- Publish the specification DOI and improve related documentation.
JSON Export
- Add json-metadata export to include evaluated values and their metadata together, with metadata presence preserved.
Expanded DIPL Metadata and Typed Access
SNT 0.9.5 — Expanded DIPL Metadata and Typed Access
DIPL metadata is now supported across hierarchy nodes, schema members, sources, tables, and table columns. You can inspect this metadata through the CLI and bindings, and it is preserved in DIPH5 snapshots.
This release also adds a machine-readable JSON export that includes values, metadata, and provenance while preserving the existing values-only export. Schema fields marked !constant can receive an initial value when an instance is populated, and DIPL syntax highlighting now recognizes !labels.
For developers, the C binding adds typed node traversal and value access. The WebAssembly API adds describeMany() to inspect multiple paths in one call. DIPH5 snapshots and bulk CLI listing are documented as a workflow for avoiding repeated project evaluation.
Portable DIP Projects
SciNumTools3 v0.9.4 — Portable DIP Projects
Version 0.9.4 makes DIPfile projects easier to use in browser applications and improves validation and build reliability.
Highlights
- Portable project bundles: Use
snt dip package --project DIPfile --output project.bundle.jsonto collect a DIPfile and its local text dependencies into one JSON asset. The WebAssembly integration can load it withparseBundleand check overrides withvalidateBundle. - Labels for DIPL options: Add
!labelsalongside!optionsto give values readable names. Labels are preserved in DIPH5 and available to inspection tools. - More units: PUQ now supports bits, bytes, decimal information units (
kBthroughEB), and binary information units (KiBthroughEiB). - Stronger float validation: Values are checked against the declared floating point type’s range across literals, arrays, expressions, references, and overrides.
Fixes and documentation
- Fixed Windows build and hashing issues.
- Improved HDF5 linking and release packaging.
- Expanded CLI documentation, including SNT Hub setup, build, and run guidance.
SciNumTools 0.9.3 — Hub CLI, Browser Integration, and Inspectable Outputs
SciNumTools 0.9.3 adds a native SNT Hub workflow, browser bindings for DIPL and PUQ, and more inspectable output decisions for application adapters.
Highlights
- SNT Hub CLI: Discover, install, and prepare supported projects with
snt hub. Project-defined build and run hooks are available when the installed project provides them. Setup supports overrides and records a setup lock for reproducibility. - Browser integration: The WebAssembly and JavaScript binding runs the C++ DIPL parser and inspector and PUQ conversion in a browser. The documentation now includes a live PUQ converter with clearer input errors.
- Richer DIPL inspection: Schema hierarchy, override contracts, and dependency neighborhoods are available through the inspection interfaces. Inspector and comparison APIs were consolidated for repeated use.
- Adapter-owned output plans: C++ and Python adapters can resolve typed native mappings after DIPL evaluation, including profile replacements and derived values. Plans can be inspected before writing files and retained in DIPH5 snapshots for later runs. The DIPH5 minor schema version is now 2.8; older supported snapshots remain readable.
- Reports and documentation: DIPL reports have improved introductory content and layout. The documentation explains the inspect, preview, override, and generate workflow and links to the SNT Hub registry.
Distribution
The release workflow is configured to attach SNT CLI archives for Linux x86-64, macOS ARM64, and Windows x86-64 after this release is published. GitHub will also provide source archives for the release tag.
See the documentation for installation and examples, and the SNT Hub registry for participating projects.
Semantic Inspection, Collection Overrides, and Viewer Data Views
v0.9.2
This release expands DIPL inspection, adds schema-backed collection items in overrides, and improves the parameter viewer.
Highlights
- Semantic inspection: New C++ and Python APIs, plus
snt dip describe,list, andpreview. These provide structured descriptions and let you evaluate candidate overrides without changing project files. - Collection overrides:
$overridecan create items in schema-backed maps and lists. An explicit map key creates an item when absent; a terminal[]appends a list item. - Viewer: New Data and Graph tabs show paged arrays and tables, local dependencies, and retained expression structure. Table and column nodes link to their DIPL declaration. The ParameterViewer example now includes a larger table for trying paging and horizontal scrolling.
Corrections and API improvements
- Added
Cursor.children()in C++ and Python. - Tightened integer validation after unit conversion: fractional or out-of-range results are rejected.
- Improved PUQ handling of degree and radian inputs to trigonometric functions, rational exponent comparison, and unit-aware
min/max.
Compatibility note: Variable precision numeric types using x are now explicitly rejected; use a supported width such as int32 or float64.
Safer Adapter Regeneration and 32-bit Windows Fixes
SciNumTools3 v0.9.1
This release improves DIPL adapter regeneration, makes report support optional, and fixes build and Python test failures exposed by 32-bit Windows.
Highlights
- Adapter regeneration: The new
SyncRegisteredpolicy records generated files, replaces files registered for the current run, and removes files registered by a previous sync run that are no longer planned. Unregistered files are preserved. The existingRejectdefault remains unchanged. - Optional reports: Source builds can set
ENABLE_SNT_REPORT=OFFto omit report generation and its Brief++ dependency. Conan addswith_reports, alongside its server and viewer options. The local vcpkg port adds areportsfeature and enables the viewer. - 32-bit Windows fixes: DIPH5 reads now check values before converting them to
size_t. Python bindings accept signed NumPy integer arrays up to 64 bits, including NumPy’s 32-bit default on Win32. Build and test setup fixes address disabled example targets and Python extension DLL loading.
The README and documentation also describe how DIPL models and adapters can help inspect and validate AI-assisted scientific setups, while leaving the assessment of scientific suitability to researchers.
Parameter Viewer, Dependency Graphs, and DIPH5 Comparison
SciNumTools 0.9.0
Version 0.9.0 adds a graphical Parameter Viewer and new ways to inspect how DIP values were produced. It also introduces DIPH5 comparison and safer adapter regeneration.
Highlights
- Parameter Viewer: Open a live DIP project or a
.diph5snapshot withsnt view <artifact>. Browse resolved nodes, overrides, schemas, units, and sources; follow references and dependencies; and inspect available source locations in a read-only, highlighted view. - DIP inspection and dependency graphs: Record value reads, calculations, and selection decisions when requested. The graph can be saved in new DIPH5 snapshots and used by the viewer and parameter reports. Normal evaluation keeps graph recording disabled.
- DIPH5 comparison: Compare two snapshots with
snt dip compare before.diph5 after.diph5. The text summary identifies added, removed, and changed values. An optional full scope also compares saved metadata and provenance. Comparison is available through C++, the API layer, REST, Python, and C. - Safe adapter regeneration: Adapters can opt into
ExistingOutputPolicy::ReplaceRegistered. Outputs are staged before publication; only files registered for that run are replaced, unrelated files are preserved, and prior files are restored if publication fails. The default remainsReject. - More useful parameter reports: Reports now bring together values, schema contributions, provenance, override history, and recorded dependencies when available.
This release also adds an EXS expression composition graph, a broader ParameterViewer example, viewer documentation, and build fixes for Linux GUI dependencies.
The viewer is an optional build component. DIPH5 snapshots retain evaluated data and selected provenance, but they do not contain complete source text for the source viewer.
Inspect and adapt evaluated inputs
SciNumTools3 v0.8.6
This release makes evaluated DIP environments easier to inspect and use with existing scientific codes.
Highlights
- Application adapters: New C++ and Python APIs turn a DIPfile project, an existing environment, or a DIPH5 snapshot into multiple application-specific files. Adapters can register text, binary, and streamed outputs; the runner validates paths before writing.
- Environment inspection: Read-only APIs expose evaluated values, units, metadata, provenance, ordered table columns, and applied modification history. Capability flags and structured diagnostics help applications present what an environment supports.
- Richer reports: Reports now include table summaries and applied modifications. Override details appear only where an override occurred.
- Numerical correctness: Integer parsing and evaluation now reject values outside their declared signed or unsigned range instead of silently narrowing them.
The release also adds C++ and Python adapter examples, expands the inspection and adapter documentation, and strengthens tests for numerical behavior, DIPH5 integrity, and generated outputs.
Reports for evaluated DIP environments
SciNumTools3 0.8.5
This release adds snt report to turn evaluated DIP parameters into readable, shareable reports. It accepts DIPfile projects, direct DIPL inputs, and saved DIPH5 environments.
- Multiple formats: Generate TeX, PDF, Markdown, reStructuredText, HTML, Typst, plain text, or Brief++ document JSON through the C++ API, CLI, Python, C binding, or REST API.
- Traceable results: Reports show effective values and units, descriptions, schemas, overrides, source provenance, custom units, and available publication references. DIPH5 reports show only provenance retained in the snapshot.
- PDF presentation: Reports include a cover and linked contents page. Add a trusted LaTeX introduction or configure a local TeX compiler. Text formats need no external compiler.
- New example:
examples/dip/CreateReportincludes a complete project and a generated PDF. - Documentation and build updates: The module and integration guides were reorganized, EXS gained operation-order diagrams, Brief++ became the header-only report renderer, and a Windows report-test file-lock issue was fixed.
SciNumTools 0.8.4: Unified CLI, DIPL Schemas, and Value Overrides
SciNumTools 0.8.4
Changes since the 0.8.3 version bump.
Highlights
One snt command for applications. The REST server and dimension-map generator are now available as snt server and snt dmap. The former standalone snt-server and snt-dmap commands are replaced. snt view is reserved for a future viewer and currently reports that it is not implemented.
Register reusable DIPL schemas from host code. C++, Python, C, the command API, the CLI, and REST project bundles can supply schema bodies from strings or files. DIPfile projects now support schemas[] entries. Schema declarations can carry ? metadata, and schemas can contain nested nodes and other schema instances.
Override values at evaluation time. A top-level $override region, host API calls, CLI inputs, CMake's snt_dip_get, and DIPfile overrides[] entries can replace existing values without changing their declarations. Overrides support nested paths, expressions, references, and compatible units. Duplicate or unresolved targets are reported as errors; empty host-supplied override bodies and files are accepted.
Richer DIPH5 provenance. Version 2.4 adds descriptive schema metadata and source locations to schema trace entries. Version 2.5 also records overridden values and the origins of their replacements. This information can be inspected after loading a snapshot; reusable schema definitions are not restored.
Fixes
Corrected nested schema initialization and expansion, including schemas applied within nested structures.
Upgrade notes
Update scripts and service commands from snt-server to snt server, and from snt-dmap to snt dmap. Server and dmap support remain optional build features.
The viewer is a placeholder; snt view does not launch a GUI.