Skip to content

v0.13.0

Choose a tag to compare

@macem-release macem-release released this 01 Nov 17:25
7117e70

0.13.0 (2026-11-01)

⚠ BREAKING CHANGES

  • PooledQuantifier.run fits sum peaks by default when the data support them, so nets, at% and wt% change on spectra with pile-up. Migration: pass a policy with fit.sumPeaks = .off (or FitPolicy.exspyEquivalent), or sumEscape: SumEscapeModel(), to keep the old numbers. A stored QuantificationPolicy without the new field decodes as .off and its footer names the non-default policy.
  • PooledQuantifier.run fits sum peaks by default when the data support them, so nets, at% and wt% change on spectra with pile-up. Migration: pass a policy with fit.sumPeaks = .off (or FitPolicy.exspyEquivalent), or sumEscape: SumEscapeModel(), to keep the old numbers. A stored QuantificationPolicy without the new field decodes as .off and its footer names the non-default policy.
  • PooledQuantifier.run fits sum peaks by default when the data support them, so nets, at% and wt% change on spectra with pile-up. Migration: pass a policy with fit.sumPeaks = .off (or FitPolicy.exspyEquivalent), or sumEscape: SumEscapeModel(), to keep the old numbers. A stored QuantificationPolicy without the new field decodes as .off and its footer names the non-default policy.
  • PooledQuantifier.run fits sum peaks by default when the data support them, so nets, at% and wt% change on spectra with pile-up. Migration: pass a policy with fit.sumPeaks = .off (or FitPolicy.exspyEquivalent), or sumEscape: SumEscapeModel(), to keep the old numbers. A stored QuantificationPolicy without the new field decodes as .off and its footer names the non-default policy.
  • PooledQuantifier.run fits sum peaks by default when the data support them, so nets, at% and wt% change on spectra with pile-up. Migration: pass a policy with fit.sumPeaks = .off (or FitPolicy.exspyEquivalent), or sumEscape: SumEscapeModel(), to keep the old numbers. A stored QuantificationPolicy without the new field decodes as .off and its footer names the non-default policy.
  • SpectrumImageMetadata.sameScanAs4DCube (deprecated since 0.8.0) is removed: use sameScanAsCube. SpectroscopyExport.elementsLine(_:) is removed: use q.rows.map(.element).joined(separator: ", "). SpectroEELS no longer ships the 16 per-table GOS JSON files (about 6.8 MB): every edge reads the float32 pack, bit-identical tables, no number changes; CoreLossEdge.bundled is empty if the pack cannot be read.
  • pinned images and Xcode, --parallel, Pages permissions per job; drops iOS (#34)
  • Package.swift no longer declares iOS; it never built there.

Features

  • 0.13.0 removals (duplicate GOS JSON, sameScanAs4DCube, elementsLine, the extra Spectroscopy/ level) (#30) (aaea561)
  • broaden the continuum step at absorption edges by the detector by default (#65) (1a72013)
  • detector Si dead-layer step in the EDX simulator and a planted pool (#49) (df9082d)
  • downward confirmation rule (opt-in) and the uncorroborated tier (#46) (258c881)
  • downward confirmation rule (opt-in) and the uncorroborated tier in ProposalResult (258c881)
  • opt-in detector-broadened continuum step at absorption edges (#64) (93931fc)
  • opt-in NIST EPQ line-weight table for the quantification fit (#67) (4e9189b)
  • optional detector Si dead-layer term in the EDX continuum (#50) (6f9d132)
  • self-pair half bound on sum-peak questions and the opt-in overlap check (#54) (6a1b0c8)
  • take-off angle term in the sigma on wt% and at%, and per-pixel sigma maps (#55) (ff67d39)
  • the pooled fit models sum peaks when the strongest line's self pair is significant (#59) (e91a75a)
  • the proposer refines the energy axis on its own K picks (#47) (e650263)
  • the proposer refines the energy axis on its own K picks (two-line guard) (e650263)
  • thickness and dose terms in the sigma on wt% and at% (#53) (e0d9fed)
  • UnlistedLineCheck's Candidate, Move and initialiser are public (#42) (c3d2d93)

Bug Fixes

  • fitted dead-layer note follows the applied sum-peak model; refits repeat the reported dead layer (#68) (6ea2fb4)
  • kit texts name the method without a validation tag (#77) (ff6da75)
  • velox-tiny golden carries FormatoKit 0.12.0 acquisition fields (#71) (383d590)

Continuous Integration

  • pinned images and Xcode, --parallel, Pages permissions on the deploy job, no iOS claim (#17) (ec848d6)
  • pinned images and Xcode, --parallel, Pages permissions per job; drops iOS (#34) (ec848d6)