Skip to content

v2.0.2 — License Update + Bug Fixes

Choose a tag to compare

@HadenSmith HadenSmith released this 27 Apr 19:50
· 48 commits to main since this release
35b836c

Highlights

Relicensed to Zero-Clause BSD (0BSD). Numerics now ships under the 0BSD license, replacing the prior BSD-3-Clause USACE-RMC license. 0BSD is a public-domain-equivalent permissive license: you may use, copy, modify, and distribute the software for any purpose without attribution. License headers have been stripped from all 378 source files; LICENSE, README, CITATION.cff, CONTRIBUTING.md, docs/index.md, codemeta.json, and the NuGet package metadata have been updated to match.

Bug fixes

  • StudentTCopula.DegreesOfFreedom setter no longer throws on invalid input. It now follows the same non-throwing _parametersValid convention used by BivariateCopula.Theta, BetaDistribution, and GammaDistribution — invalid values flip ParametersValid to false instead of crashing the caller. Constructors are aligned the same way.
  • StudentTCopula ν minimum unified at 2 + 1e-10 across ParameterConstraints and SetCopulaParameters. The previous 2.0 + Tools.DoubleMachineEpsilon expression silently rounded to 2.0 in IEEE 754 (the ULP at 2.0 is 2⁻⁵¹, larger than ε = 2⁻⁵³), causing fitting to fail at the lower bound.

Reliability

  • TimeSeriesDownload integration tests are now resilient to upstream provider outages. Per-service availability probes (CHMN, USGS, GHCN, BOM) replace the generic online check in all 31 integration tests. A single provider being down (e.g. BOM's KiWIS / WDP backend) now skips the affected tests cleanly rather than failing the suite. BOM URLs switched from http:// to https://, and KiWIS error response bodies are now surfaced in exceptions for easier diagnosis.

Compatibility

No API breaking changes. Existing callers will see one behavioral change: new StudentTCopula(ρ, ν ≤ 2) and copula.DegreesOfFreedom = ν ≤ 2 no longer throw — they construct/assign and set ParametersValid = false instead. Any code that relied on the throw should switch to checking ParametersValid.