Skip to content

Latest commit

 

History

History
85 lines (72 loc) · 4.31 KB

File metadata and controls

85 lines (72 loc) · 4.31 KB

Release Qualification

Release labels describe evidence, not feature aspirations. Ported means the original DWSIM source is present and executable. Validated requires a pinned legacy differential result for the named behavior.

Beta Gate

The macOS ARM64 beta candidate must pass all of these gates:

  • every first-party engine assembly targets net10.0, with no Mono, .NET Framework, Eto, WinForms, IronPython, Microsoft.Scripting, COM, or desktop rendering payload in the wheel;
  • every Mach-O payload is ARM64-only and has a macOS 11 deployment floor;
  • all 43 checked-in upstream samples load, save, and reload without object-graph loss;
  • all 24 in-assembly property-package implementations construct and roundtrip; Automation exposes the expected 25 public catalog names, including its Raoult naming alias, and all managed packages with available test data perform PT flashes;
  • PR, SRK, NRTL, UNIQUAC, and UNIFAC pass PT, PH, and PS recovery through a real material stream; Steam Tables passes PT and PH; NRTL passes two-phase PV and TV recovery;
  • all 36 currently constructible source unit-operation paths pass their declared solve/read/save/reload checks;
  • the immutable 15-case legacy differential matrix passes 1261/1261 numeric comparisons;
  • a clean wheel install performs at least 100 solves on the same live flowsheet without replacing its IFlowsheet or feed object, then saves and reloads it;
  • public Python errors are deterministic for missing files, closed flowsheets, unknown object/property types, invalid connector types, and solve failures;
  • wheel content, licenses, native closure, ad-hoc signing, and clean-install audits pass on every supported macOS/Python runner.

Steam Tables PS recovery is not a beta claim. The pinned upstream implementation currently returns a saturation-state temperature for the tested superheated case. It remains a stable investigation item until legacy behavior is captured; the port does not silently replace an upstream engineering equation.

Stable Gate

Stable requires every beta gate plus:

  • pinned legacy differential fixtures for every engineering family declared stable in SUPPORT_MATRIX.md; constructor-only families remain explicitly experimental;
  • declared PT/PH/PS/PV/TV capability and negative-case tests for every shipped property-package family, including electrolyte, Black Oil, Seawater, Steam Tables, and CoolProp variants where physically applicable;
  • broad real DWXML/DWXMZ solve/save/reload/recalculate coverage with no known data loss in supported schemas;
  • fresh-load versus reused-state numerical evidence and a long-running process durability gate representative of optimization workloads;
  • a frozen public Automation/Python compatibility contract, deprecation policy, support matrix, license inventory, SBOM, checksums, and reproducible release instructions;
  • all release artifacts rebuilt from a clean checkout and revalidated after download.

macOS ARM64 Stable Evidence

The local 2.0.0 candidate satisfies the stable engineering gates:

  • scripts/qualification/property_package_capabilities.json declares the measured PT/PH/PS/PV/TV behavior for all 25 Automation catalog names. A missing specification is an explicit unsupported or failed qualification, not an implied capability;
  • the enforced 16-case matrix passes 2596/2596 legacy comparisons and covers all 20 families declared stable in scripts/differential/coverage.json;
  • Natural Gas Processing contributes 1335 comparisons across three solves on one loaded flowsheet, while the Python.NET smoke performs 1000 mutations and solves without replacing the CLR flowsheet or feed object;
  • 43/43 upstream DWXML/DWXMZ samples pass object-graph save/reload validation, and the Petroleum Distillation fixture passes fresh save/reload/recalculate comparison;
  • API version 1.0, error behavior, deprecation policy, license inventory, deterministic CycloneDX SBOM, wheel checksums, signing, native closure, and clean-install audits are automated.

The final clean-checkout and downloaded-artifact clauses are publication gates; the tag workflow must pass before the GitHub release is considered complete.

Linux and Windows are separate platform gates. They do not block a macOS-only stable release, but no unsupported platform may be implied by a wheel tag or documentation.