Skip to content

Releases: scinumtools/snt3

Metadata Constraints and DIPH5 Ordering

Choose a tag to compare

@vrtulka23 vrtulka23 released this 17 Oct 11:55

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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 14 Oct 19:08

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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 12 Oct 04:52

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.json to collect a DIPfile and its local text dependencies into one JSON asset. The WebAssembly integration can load it with parseBundle and check overrides with validateBundle.
  • Labels for DIPL options: Add !labels alongside !options to give values readable names. Labels are preserved in DIPH5 and available to inspection tools.
  • More units: PUQ now supports bits, bytes, decimal information units (kB through EB), and binary information units (KiB through EiB).
  • 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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 10 Oct 15:47

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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 07 Oct 23:14

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, and preview. These provide structured descriptions and let you evaluate candidate overrides without changing project files.
  • Collection overrides: $override can 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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 05 Oct 07:54

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 SyncRegistered policy 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 existing Reject default remains unchanged.
  • Optional reports: Source builds can set ENABLE_SNT_REPORT=OFF to omit report generation and its Brief++ dependency. Conan adds with_reports, alongside its server and viewer options. The local vcpkg port adds a reports feature 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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 03 Oct 12:10

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 .diph5 snapshot with snt 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 remains Reject.
  • 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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 29 Sep 23:08

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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 28 Sep 22:47

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/CreateReport includes 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

Choose a tag to compare

@vrtulka23 vrtulka23 released this 27 Sep 19:56

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.