Recent Releases of Open Sustainable Technology Projects

TIMES_model - TIMES Version 4.9.5

TIMES Version 4.9.5

Date: 11-May-2026 [AL]: Maintenence release

  1. Fixed several compatibility issues in the add-on grid facility
  2. Extended support for filtering out time series to currency data (IE=-13)
  3. Cosmetic improvements

Modified files: (reason)
initsys.mod : Increased version number to 4.9.5
maplists.def : (1),(3)
curex.gms : (2)
powerflo.vda : (1)

Energy Systems - Energy System Modeling Frameworks - GAMS
Published by Antti-L 1 day ago

goat - v2.4.29 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.28 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.

What's Changed

Full Changelog: https://github.com/plan4better/goat/compare/v2.4.28...v2.4.29

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti 2 days ago

AIBECS.jl - v0.18.0

AIBECS v0.18.0

Diff since v0.17.1

Breaking changes

  • CTKAlg's default linsolve field now eagerly defaults to
    UMFPACKFactorization() instead of nothing. Runtime behaviour is
    unchanged (the previous === nothing branch fell back to UMFPACK
    too), but the type parameter CTKAlg{L} is now
    CTKAlg{UMFPACKFactorization} by default rather than
    CTKAlg{Nothing}. Any downstream code dispatching on
    CTKAlg{Nothing} will need updating.

New features

  • Analytical ∂Gs/∂G keyword on AIBECSFunction — supply
    closed-form derivatives of the source–sink term G to skip the
    per-block ForwardDiff.derivative call in Jacobian assembly. Strictly
    opt-in; omitting the keyword keeps the existing ForwardDiff path.
    Tuple-of-tuples shape for multi-tracer; check_∂Gs(Gs, ∂Gs, x, p, nb)
    is exported to validate analytical derivatives against ForwardDiff.

  • AD-through-the-solve for CTKAlg — new
    solve(::SteadyStateProblem{…,Dual,…}, ::CTKAlg) dispatch peels
    the duals, runs the primal Newton–Chord–Shamanskii at Float64, and
    reconstructs ∂u*/∂p via the implicit function theorem
    (Jᵤ z = −Jₚ). Nested-Dual (Hessian) calls recurse one Dual layer
    per level, routed through LinearSolve's DualLinearCache so the
    sparse factorisation is reused — no densification.
    ForwardDiff.gradient(p -> sum(solve(SteadyStateProblem(F, x, p), CTKAlg()).u), p)
    now Just Works on AIBECS's sparse Jacobian.

  • AIBECS.nonlinearproblem Dual-stripping — the sparse
    jac_prototype builder now strips Duals before construction, so the
    SciML NonlinearSolve IFT path also works with ForwardDiff over an
    AIBECS steady-state solve.

Caveats

  • The IFT dispatch reuses three NonlinearSolveBase symbols
    (nodual_value, nonlinearsolve_∂f_∂p, nonlinearsolve_dual_solution)
    that are public-but-internal-feeling. A one-shot @warn surfaces this
    on first AD-through-solve call.
  • IFT-reconstructed partials inherit the primal Newton residual; for
    machine-precision derivatives the solver must be forced past its
    stopping rule (abstol=0, run to maxItNewton). Not practical at
    production grid sizes — use F1Method's analytical gradient/Hessian
    there.

Merged pull requests:

  • feat: analytical ∂Gs for G + AD-through-the-solve via IFT for CTKAlg (#124) (@briochemc)

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 2 days ago

AIBECS.jl - v0.17.1

AIBECS v0.17.1

Diff since v0.17.0

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 4 days ago

AIBECS.jl - v0.17.0

AIBECS v0.17.0

Diff since v0.16.7

Now opens up to all solvers from NonlinearSolve.jl and LinearSolve.jl.

Breaking changes

  • SciML ecosystem opt-in via a new AIBECSNonlinearSolveExt (NonlinearSolve + ADTypes + DI + SparseConnectivityTracer + SparseMatrixColorings as weak deps):

    • AIBECS.nonlinearproblem(prob)SteadyStateProblem → NonlinearProblem with sparse jac_prototype (sidesteps NonlinearSolve's iip-promotion of 3-arg f(u, p, t=0)).
    • AIBECS.recommended_nlalg()NewtonRaphson + UMFPACK with sparse-AD fallback.
    • AIBECS.default_sparse_ad() — overridable.
  • CTKAlg overhaul. No longer welded to factorize/\:

    • CTKAlg(linsolve = …) plugs in any LinearSolve algorithm (UMFPACK, KLU, MKL Pardiso, …); the inner loop mutates a LinearSolve.LinearCache so Shamanskii's lazy refresh rides the cache's isfresh toggle.
    • Convergence delegates to NonlinearSolveBase termination modes; abstol/reltol/termination_condition replace the old nrm/τstop kwargs.
    • LinearSolve promoted to direct dep; NonlinearSolveBase added.
  • Existing tutorials and SteadyStateProblem usage continue to work modulo the nrm/τstopabstol/reltol/termination_condition rename on CTKAlg.

Merged pull requests:

  • Open up to all SciML nonlinear/linear solvers (#122) (@briochemc)

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 4 days ago

wind-up - v0.4.9

What's Changed

Full Changelog: https://github.com/resgroup/wind-up/compare/v0.4.8...v0.4.9

Renewable Energy - Wind Energy - Python
Published by aclerc 5 days ago

MWRpy - mwrPy 1.5.1

  • Drop pytz and timezonefinder dependencies

Atmosphere - Atmospheric Composition and Dynamics - Python
Published by github-actions[bot] 5 days ago

MWRpy - mwrPy 1.5.0

  • Replace local thermodynamics functions with atmoslib
  • Take azimuth angle from zenith measurements after the BLB scan
  • Introduce condition for low level cloud detection

Atmosphere - Atmospheric Composition and Dynamics - Python
Published by github-actions[bot] 6 days ago

ClimaLand.jl - v1.8.1

ClimaLand v1.8.1

Diff since v1.8.0

📢 API Changes:

🚀 Features

📑 Documentation

🐛 Fixes

Natural Resources - Soil and Land - Julia
Published by github-actions[bot] 6 days ago

Deadtrees.earth - v2026.05.07.1

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.07...v2026.05.07.1

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 6 days ago

Sankey Chart Card - v5.0.1

5.0.1 (2026-05-07)

Bug Fixes

  • #352: honor link value on cross-section connections (#353) (3f13ca3)

Energy Systems - Building Energy Monitoring - TypeScript
Published by github-actions[bot] 6 days ago

Deadtrees.earth - v2026.05.07

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.10...v2026.05.07

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 6 days ago

CHAP - chap-api-0.1.10

CHAP API - REST API Deployment

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] 6 days ago

CHAP - chap-0.3.4

CHAP (Climate Health Analysis Platform) - Umbrella Chart

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] 6 days ago

Sankey Chart Card - v5.0.0

5.0.0 (2026-04-30)

⚠ BREAKING CHANGES

  • Align autoconfig colors with HA's energy colors

Features

  • add autoconfig mode option (energy/power/water/water_flow) - requires 2025.12 or later depending on the mode (6edd6cf)
  • Align autoconfig colors with HA's energy colors (6edd6cf)

Bug Fixes

  • #347: render box labels above section connectors (c56e98b)

Energy Systems - Building Energy Monitoring - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.10

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.9...v2026.05.06.10

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

goat - v2.4.28 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.27 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.

What's Changed

Full Changelog: https://github.com/plan4better/goat/compare/v2.4.27...v2.4.28

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti 7 days ago

Deadtrees.earth - v2026.05.06.9

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.8...v2026.05.06.9

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.8

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.7...v2026.05.06.8

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.7

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.6...v2026.05.06.7

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.6

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.5...v2026.05.06.6

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

medfate - MEDFATE v. 5.0.0

  • Default values for rhizosphere overlap set to "partial" instead of "total"
  • Default values for leaf/stem cavitation recovery set to "rate" instead of "annual"
  • Leaf defoliation for spwb() simulations made coherent with defoliation in “growth”. Control parameter “cavitationInducedDefoliation” added.
  • Internal restructuration to avoid Rcpp structures (NumericVector, NumericMatrix, DataFrame,…) leading to computational improvements.
  • Rcpp modules "runners” to run single-site, multiple-site and watershed simulations while avoiding unnecessary input/output.
  • New plot type "DecompositionPools" for simulations with growth() or fordyn()

Biosphere - Forest Modeling and Analysis - C++
Published by miquelcaceres 7 days ago

Deadtrees.earth - v2026.05.06.5

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.4...v2026.05.06.5

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.4

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.3...v2026.05.06.4

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.3

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.2...v2026.05.06.3

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.2

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06.1...v2026.05.06.2

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Deadtrees.earth - v2026.05.06.1

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.06...v2026.05.06.1

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Monitorfish - v1.108.1

What's Changed

🎉 Fonctionnalités

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.108.0...v1.108.1

Biosphere - Marine Life and Fishery - HTML
Published by louptheron 7 days ago

Deadtrees.earth - v2026.05.06

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.8...v2026.05.06

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 7 days ago

Spruce - 1.0

What's Changed

Full Changelog: https://github.com/DigitalPebble/spruce/compare/0.10...1.0

Consumption - Computation and Communication - Java
Published by jnioche 8 days ago

Deadtrees.earth - v2026.05.05.8

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.7...v2026.05.05.8

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 8 days ago

earthkit - 1.0.0rc3

Release candidate 1.0.0rc3

Climate Change - Climate Data Processing and Analysis - Python
Published by sandorkertesz 8 days ago

Deadtrees.earth - v2026.05.05.7

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.6...v2026.05.05.7

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 8 days ago

Deadtrees.earth - v2026.05.05.6

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.5...v2026.05.05.6

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 8 days ago

Zarr - v3.2.1

What's Changed

Full Changelog: https://github.com/zarr-developers/zarr-python/compare/v3.2.0...v3.2.1

Climate Change - Climate Data Standards - Python
Published by d-v-b 8 days ago

Deadtrees.earth - v2026.05.05.5

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.4...v2026.05.05.5

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 8 days ago

Deadtrees.earth - v2026.05.05.4

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.3...v2026.05.05.4

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 8 days ago

Deadtrees.earth - v2026.05.05.3

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.2...v2026.05.05.3

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 8 days ago

Deadtrees.earth - v2026.05.05.2

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05.1...v2026.05.05.2

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 8 days ago

Deadtrees.earth - v2026.05.05.1

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.05...v2026.05.05.1

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 9 days ago

Deadtrees.earth - v2026.05.05

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.04.2...v2026.05.05

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 9 days ago

goat - v2.4.27 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.26 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.

What's Changed

Full Changelog: https://github.com/plan4better/goat/compare/v2.4.26...v2.4.27

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti 9 days ago

Deadtrees.earth - v2026.05.04.2

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.04.1...v2026.05.04.2

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 9 days ago

Deadtrees.earth - v2026.05.04.1

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.04...v2026.05.04.1

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 9 days ago

Monitorfish - v1.108.0

What's Changed

🎉 Fonctionnalités

👒 Dépendances

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.107.0...v1.108.0

Biosphere - Marine Life and Fishery - HTML
Published by louptheron 9 days ago

eCalc - v13.7.0

13.7.0 (2026-05-04)

Features

  • MultiShaftEqualRatioSolver — equal-ratio independently-shafted train (91fc2e7)
  • MultiShaftSolver — sequential solver with caller-supplied pressure targets (#1527) (91fc2e7)

Bug Fixes

  • guard against zero pressure in get_max_standard_rate (#1532) (ce1723e)
  • short-circuit multi pressure solver on per-segment failure (f72a717)
  • upstream choke solver returns false success at rate capacity boundary (#1529) (64ce9ae)

Miscellaneous Chores

  • move time series stream and time aware process objects (#1531) (a2a9e16)
  • proposal to also have a decorator for value objects (#1517) (bcaf0be)

Code Refactoring

  • clean upstream choke solver — remove try/except surrogate, add precondition assert (64ce9ae)

Tests

  • cover max-choke-above-target path in upstream choke solver (64ce9ae)
  • failing first segment in multi pressure solver (#1528) (f72a717)

Emissions - Emission Observation and Modeling - Python
Published by github-actions[bot] 9 days ago

Deadtrees.earth - v2026.05.04

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.04.30.17...v2026.05.04

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 9 days ago

eCalc - v13.6.0

13.6.0 (2026-05-01)

Features

Bug Fixes

  • replace stonewall-lookup with binary search in FeasibilitySolver (#1513) (66726c1)
  • reset recirculation before computing pressure control boundary (#1515) (90bd9ab)

Miscellaneous Chores

Code Refactoring

  • consolidate state reset via ProcessRunner.reset_to (#1518) (879e177)
  • individual asv pressure solve each stage on its own outlet (#1511) (6ad8dc2)
  • update boundary calculations for Common ASV strategies (#1508) (46a3506)

Tests

  • FeasibilitySolver excess rate coverage (66726c1)

Continuous Integration

  • update pre-commit hooks and py 3.12 syntax (#1512) (d779fd8)

Emissions - Emission Observation and Modeling - Python
Published by github-actions[bot] 9 days ago

huawei_solar - 2.0.5

The v2.0 release of this integration marks a big effort to update and modernize the underlying communication library: we developed tModbus as a new modern and well-tested Modbus-library. The (re-)connection logic was given a lot of attention to improve the stability of this integration.

The setup wizard was also improved with a more aggressive auto-detection system. This scans the modbus connection for the most-used slave-ids, removing the need to find those yourselves.

We now also support SDongle and SmartLogger devices. As these devices report on separate unit IDs, you will need to reconfigure your existing integration to start reading from them.

Improvements 🚀

  • Migrate from pyModbus to tModbus library
  • Add support for SDongle and SmartLogger
  • Add icons to services
  • Battery SOC sensor now has a dynamic icon (thank you @alexdelli #1257)

Fixes 🐞

  • Make backward compatible with Python <3.14 (#1320)
  • Fix broken translations (#1322)
  • Don't crash when an unexpected error is returned during permission-probing (https://github.com/wlcrs/huawei-solar-lib/issues/28)
  • Properly encode values when setting a single register (#1328)
  • Fix computation of timestamps in installations with an EMMA (#1265)
  • Re-login when needed when toggling switches (#1333)

Thank you 💖

I want to thank all the people who have sponsored me for doing this work. These tokens of appreciation really help me stay motivated to keep working on this integration. I'm very grateful for that!

Also a big thank you to the more than 500 people that have tested the beta releases in the past few months: your testing has proven the stability of the new communication library and has helped iron out a few bugs in the process.

Renewable Energy - Photovoltaics and Solar Energy - Python
Published by wlcrs 10 days ago

goat - v2.4.26 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.25 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.

What's Changed

Full Changelog: https://github.com/plan4better/goat/compare/v2.4.25...v2.4.26

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti 10 days ago

GeoPressureR - v3.5.4

Main

Minor

  • Deprecate edge_add_wind(return_averaged_variable); edge_add_wind() now always returns detailed edge/time/variable values.
  • Deprecate graph_add_wind(variable); graph_add_wind() now always uses c("u", "v").
  • Update GeoPressureViz wind handling to compute averaged edge wind from detailed edge_add_wind() output.
  • Add example usage to mask_water() documentation.

Full Changelog: https://github.com/GeoPressure/GeoPressureR/compare/v3.5.3...v3.5.4

Biosphere - Avian Monitoring and Analysis - R
Published by Rafnuss 10 days ago

sup3r - NLR rebranding updates

What's Changed

Full Changelog: https://github.com/NatLabRockies/sup3r/compare/v0.2.7...v0.2.8

Energy Systems - Renewable Energy Integration - Python
Published by bnb32 10 days ago

goat - v2.4.25 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.24 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.

What's Changed

Full Changelog: https://github.com/plan4better/goat/compare/v2.4.24...v2.4.25

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti 10 days ago

goat - v2.4.24 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.23 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.

What's Changed

Full Changelog: https://github.com/plan4better/goat/compare/v2.4.23...v2.4.24

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti 11 days ago

BEMRosetta - 2026 May

Improved case generation for Nemoh, Capytaine, HydroStar and Wamit
Many bug fixes

Renewable Energy - Hydro Energy - C++
Published by izabala123 11 days ago

PyProBE - v2.6.0

What's Changed

Full Changelog: https://github.com/ImperialCollegeLondon/PyProBE/compare/v2.5.0...v2.6.0

Energy Storage - Battery - Python
Published by tomjholland 11 days ago

Veganify - v3.5.0

What's Changed

New Contributors

Full Changelog: https://github.com/frontendnetwork/veganify/compare/v3.4.0...v3.5.0

Consumption - Agriculture and Nutrition - TypeScript
Published by philipbrembeck 11 days ago

huawei_solar - 2.0.4

The v2.0 release of this integration marks a big effort to update and modernize the underlying communication library: we developed tModbus as a new modern and well-tested Modbus-library. The (re-)connection logic was given a lot of attention to improve the stability of this integration.

The setup wizard was also improved with a more aggressive auto-detection system. This scans the modbus connection for the most-used slave-ids, removing the need to find those yourselves.

We now also support SDongle and SmartLogger devices. As these devices report on separate unit IDs, you will need to reconfigure your existing integration to start reading from them.

Improvements 🚀

  • Migrate from pyModbus to tModbus library
  • Add support for SDongle and SmartLogger
  • Add icons to services
  • Battery SOC sensor now has a dynamic icon (thank you @alexdelli #1257)

Fixes 🐞

  • Make backward compatible with Python <3.14 (#1320)
  • Fix broken translations (#1322)
  • Don't crash when an unexpected error is returned during permission-probing (https://github.com/wlcrs/huawei-solar-lib/issues/28)
  • Properly encode values when setting a single register (#1328)

Thank you 💖

I want to thank all the people who have sponsored me for doing this work. These tokens of appreciation really help me stay motivated to keep working on this integration. I'm very grateful for that!

Also a big thank you to the more than 500 people that have tested the beta releases in the past few months: your testing has proven the stability of the new communication library and has helped iron out a few bugs in the process.

Renewable Energy - Photovoltaics and Solar Energy - Python
Published by wlcrs 12 days ago

CoastSeg - v2.0.2

Full Changelog: https://github.com/SatelliteShorelines/CoastSeg/compare/v2.0.0...v2.0.2

Hydrosphere - Coastal and Reefs - Jupyter Notebook
Published by github-actions[bot] 12 days ago

sup3r - upgrade to keras 3 / tensorflow 2.16+

What's Changed

Full Changelog: https://github.com/NatLabRockies/sup3r/compare/v0.2.6...v0.2.7

Energy Systems - Renewable Energy Integration - Python
Published by bnb32 12 days ago

OpenEMS - 2026.5.0

Release Highlights

  • We celebrated 10 years of OpenEMS since the first hello-world commit
  • Improved implementations:
    • Mennekes Wallbox
    • FENECON Commercial 92 Cluster
    • FENECON Commercial 100
    • FENECON Mini
    • KACO Battery-Inverter
    • ASKOMA Heating Element
    • Shelly
  • UI improvements:
    • New tree-based navigation is shaping
    • Localization for OEM distribution changelog
  • Core improvements:
    • There is a new way to manage OSGi References by Component-ID. See Commit
    • Websocket ClientReconnectorWorker: circumvent possible deadlock Commit

Details

OpenEMS Edge

  • FEMS Backports 2026-04-04 by @fenecon in https://github.com/OpenEMS/openems/pull/3667
    • [Edge] Simplify OSGi Reference by Component-ID: replace updateReferenceFilter Commit
    • [Edge] Websocket ClientReconnectorWorker: circumvent possible deadlock Commit
    • [Edge] JSCalendar: enforce an explicit Clock Commit
    • [Edge] Use TariffManager in Sum Commit
    • [Edge] Add Reference Cycle Support to Planned Battery Extension Commit
    • [Edge] GlobalOptimizationContext: fix possible NPE for no prices Commit
    • [Edge] JSCalendar: fix timezone handling Commit
    • [Edge] FENECON Commercial 100: App fix for always creating STS-Box Commit
    • [Edge] FENECON Commercial 100: Fix App for GenSet Commit
  • FEMS Backports 2026-04-19 by @fenecon in https://github.com/OpenEMS/openems/pull/3688
    • [Edge] CycleWorker: measure execution times Commit
    • [Edge] FENECON Mini: implement App Commit
    • [Edge] EVSE: add Consumption to Excel export Commit
    • [Edge] Add documentation for EVSE Commit
    • [Edge] KACO Battery-Inverter: add ErrorRestartBehaviourConfig Commit
    • [Edge] Add Annotation for Config Channel Persistence Priority Commit
    • [Edge] [Debian] Store special log files for firmware updates in /var/log/openems Commit
    • [Edge] App.Heat.Askoma Write Commit
    • [Edge] PT1-Filter: fix apply low/high limits Commit
    • [Edge] ManagedSymmetricEss: improve how filter is applied Commit
    • [Edge] Mennekes EVSE: Cleanup isReadyForCharging handling Commit
    • [Edge] Commercial 92 Cluster: set default power strategy Commit
    • [Edge] App.Meter.Shelly.Meter: allow installation for owner Commit
    • [Edge] GridOptimizedCharge: Apply no limit when the grid feed-in limit is almost zero Commit
    • [Edge] Add Grid-Sell-Price to SumImpl Commit
    • [Edge] Migrate JUnit test cases Commit
    • [Edge] Goodwe update fixes Commit
    • [Edge] Extend ManagedSymmetricEss Modbus List by actual power value channels Commit
  • [Edge] Controller.Evcs: fix awaitLastChanges checking INCREASING twice instead of DECREASING by @rishabhvaish in https://github.com/OpenEMS/openems/pull/3668

OpenEMS UI

  • FEMS Backports 2026-04-04 by @fenecon in https://github.com/OpenEMS/openems/pull/3667
    • [UI] Fix system overview for installer accounts Commit
    • [UI] NUI: fix recreating new navigation nodes after empty navigationtree Commit
    • [UI] add missing channel subscribe for emergency reserve controller Commit
    • [UI] fix get edges infinite scroll list Commit
    • [UI] EVCS Read-Only: fix modal Commit
    • [UI] fix chartheight Commit
  • FEMS Backports 2026-04-19 by @fenecon in https://github.com/OpenEMS/openems/pull/3688
    • [UI] Fix NumberUtils.divideSafely() Commit
    • [UI] various cleanups Commit
    • [UI] Adjust confirm button position on mobile Commit
    • [UI] General Improvements Commit
    • [UI] NUI: grid optimized charge Commit
    • [UI] JSCalendar: show tasks with no recurrenceRule Commit
    • [UI] GridOptimizedCharge: Visualisation for the new state Commit
    • [UI] fix heatpump history Commit
    • [UI] NUI: Refactor Heat Commit
    • [UI] Localization for changelog Commit
    • [UI] NUI: Improve new Widget navigation and fix help key Commit
    • [UI] Darkmode description colors Commit
    • [UI] fix history values Commit

OpenEMS Backend

Common/General

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2026.4.0...2026.5.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 12 days ago

AIBECS.jl - v0.16.7

AIBECS v0.16.7

Diff since v0.16.6

Merged pull requests:

  • Migrate OCIM/OCCA datasets from FigShare to Zenodo (#121) (@briochemc)

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 12 days ago

AIBECS.jl - v0.16.6

AIBECS v0.16.6

Diff since v0.16.5

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 12 days ago

GreenForce - ui_frontend_5795

What's Changed

Full Changelog: https://github.com/Energinet-DataHub/greenforce-frontend/compare/ui_dotnet_5793...ui_frontend_5795

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5795

Commits

  • 55bfe610: Fixed download on page 2 (mimse)
  • 5c36eef9: Update libs/dh/market-participant/feature-market-participant/src/components/download.component.ts

Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com (web-flow)

  • 481e7e15: Update libs/dh/market-participant/feature-grid-areas/src/components/grid-areas.component.ts

Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com (web-flow)

  • eb0bdc3a: Update libs/dh/market-participant/feature-organizations/src/components/organizations.component.ts

Co-authored-by: Copilot 175728472+Copilot@users.noreply.github.com (web-flow)

  • bf83756f: Merge branch 'main' into bugfix/tml-inc0501301-download-af-filer-fra-netomr-der-eller-akt-rregi (web-flow)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_frontend_5793

What's Changed

Full Changelog: https://github.com/Energinet-DataHub/greenforce-frontend/compare/ui_dotnet_5779...ui_frontend_5793

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5794

Commits

  • 378a3a3d: feat(watt): set week start to Mondag in Dayjs (dzhavat)
  • ff57449b: feat(watt): add one week range selection strategy (dzhavat)
  • f6202acf: fix(watt): add story for one week range selection (dzhavat)
  • dee293f0: QA fixes (github-actions[bot])
  • be90db02: fix(dh): use updateLocale API to set week start (dzhavat)
  • ac16842b: fix(watt): bump to new minor (dzhavat)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5793

Commits

  • 6d27b305: users:manage should have access (mimse)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_frontend_5779

What's Changed

Full Changelog: https://github.com/Energinet-DataHub/greenforce-frontend/compare/ui_dotnet_5791...ui_frontend_5779

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5779

Commits

  • 1490ceae: fix: hide end date for charge link periods in UI

Only display the start date for charge link periods across fees,
tariff/subscriptions tables, and the details drawer. Cancelled
link status badges are preserved. (ManBearTM)

  • 2fc8ad85: fix: restore end date display for tariff/subscriptions and details (ManBearTM)

  • ed6fc441: Revert (ManBearTM)

  • 8dda7d92: Hide end date in bff (ManBearTM)

  • af2d93d2: Merge branch 'main' into hide-charge-link-end-date (ManBearTM)

  • 9e244623: Update mocks (ManBearTM)

  • c1f00b59: refactor: preserve real period, add displayPeriod for fee charge links UI

  • Revert GetPeriod to return the real end date, preserving domain semantics

  • Add GetDisplayPeriod field that hides end date for fee charge types

  • Update schema.graphql to expose the new displayPeriod field

  • Update GraphQL query to fetch displayPeriod alongside period

  • Update UI components to use displayPeriod for display rendering
    while keeping period for domain logic (cancelled status, cancel button)

  • Fix column accessor in fees.ts to return period.start for proper sorting

  • Update mocks to include displayPeriod and restore real period data

Agent-Logs-Url: https://github.com/Energinet-DataHub/greenforce-frontend/sessions/41dea4e9-698f-48f9-b8f3-a716cc1b0f7f

Co-authored-by: ManBearTM 22732929+ManBearTM@users.noreply.github.com (web-flow)

  • e3b1937c: test: add integration test for fee charge link period end hiding

Assert that GetPeriod returns null end for fee charge links with
different start/end dates, while other charge types keep their
real end date.

Agent-Logs-Url: https://github.com/Energinet-DataHub/greenforce-frontend/sessions/9a1fd787-4225-4cdf-b03f-21fad34b9659

Co-authored-by: ManBearTM 22732929+ManBearTM@users.noreply.github.com (web-flow)

  • 8e46a750: fix: use period.start as column accessor in fees table for proper sorting

Agent-Logs-Url: https://github.com/Energinet-DataHub/greenforce-frontend/sessions/9a1fd787-4225-4cdf-b03f-21fad34b9659

Co-authored-by: ManBearTM 22732929+ManBearTM@users.noreply.github.com (web-flow)

  • df3e9e9f: Disable sort for type on fees (always just one type, so whats the point) (ManBearTM)
  • 15d58c85: Merge branch 'main' into hide-charge-link-end-date (web-flow)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5793

Commits

  • 6d27b305: users:manage should have access (mimse)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_frontend_5791

What's Changed

Full Changelog: https://github.com/Energinet-DataHub/greenforce-frontend/compare/ui_dotnet_5790...ui_frontend_5791

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5791

Commits

  • f76a1b83: feat(dh/metering-point): add ActionRole and roles field to ActionHandler (frontend-specialisten)
  • 5608f58f: feat(dh/metering-point): role-aware filtering in DhActionsRegistry (frontend-specialisten)
  • 5e60dac8: refactor(dh/metering-point): read actor inline and tighten FAS test

Read the selected actor inline inside matchesRoles so role checks
always reflect the current selection instead of a snapshot taken at
registry construction (DhActionsRegistry is providedIn: 'root', so the
old field went stale on in-page actor switch).

Replace the FAS-blocks-execute test with a paired version that first
proves the trigger fires without FAS, then proves FAS blocks it. This
rules out "trigger never fired" as the reason the assertion passes. (frontend-specialisten)

  • 178367a1: feat(dh/metering-point): declare roles per EndOfSupply action

Each EndOfSupply action now declares which actor roles can invoke it,
so per-action visibility is enforced at the registry level instead of
relying solely on the outer visibility gate. Updated the matching test
to reflect that RejectRequest is restricted to the responsible
EnergySupplier. (frontend-specialisten)

  • fe5f9c58: refactor(dh/metering-point): move overview action gating into registry (frontend-specialisten)
  • 7847c11d: refactor(dh/metering-point): clean up overview test and import grouping (frontend-specialisten)
  • 62090154: refactor(dh/metering-point): move details action gating into registry (frontend-specialisten)
  • 195507f9: chore(dh/metering-point): drop unused param in pipe test mock (frontend-specialisten)
  • 2e247eb6: refactor(dh/metering-point): drop redundant supplier role check in matchesRoles

The BFF flag isEnergySupplierResponsible is GLN-keyed and only true when the
active actor is the responsible energy supplier on the metering point. The
explicit marketRole === EnergySupplier check is therefore redundant. Remove
it and the now-impossible test that mocked a non-supplier with isResponsible
set to true. (frontend-specialisten)

  • eec9b373: refactor(dh/metering-point): polish review feedback on flexible action roles

  • Pipe test now asserts isEnergySupplierResponsible is forwarded to the
    registry, both when bound and when defaulted to false.

  • Document the FAS short-circuit in getSupportedActions so future readers
    do not collapse it with the execute-time block.

  • Add ChangeDetectionStrategy.OnPush to overview table component (was
    missing on the original file, parallel to details.ts).

  • Add a positive control assertion to the non-responsible supplier
    details test so the absence of buttons is provably meaningful. (frontend-specialisten)

  • 41db40a1: fix(dh/metering-point): preserve CustomerMoveIn role gate from before refactor

The previous component-level gate (PR #5746) showed CustomerMoveIn actions
only to grid access providers and the responsible energy supplier (plus
FAS for visibility). Leaving the new handler without roles[] silently
widened that gate to any actor reaching the page. Restore the original
union as an explicit roles[] declaration on the handler, matching
EndOfSupply.CancelWorkflow's configuration. Component tests updated to
match the restored behavior. (frontend-specialisten)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

AIBECS.jl - v0.16.5

AIBECS v0.16.5

Diff since v0.16.4

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5791

Commits

  • f76a1b83: feat(dh/metering-point): add ActionRole and roles field to ActionHandler (frontend-specialisten)
  • 5608f58f: feat(dh/metering-point): role-aware filtering in DhActionsRegistry (frontend-specialisten)
  • 5e60dac8: refactor(dh/metering-point): read actor inline and tighten FAS test

Read the selected actor inline inside matchesRoles so role checks
always reflect the current selection instead of a snapshot taken at
registry construction (DhActionsRegistry is providedIn: 'root', so the
old field went stale on in-page actor switch).

Replace the FAS-blocks-execute test with a paired version that first
proves the trigger fires without FAS, then proves FAS blocks it. This
rules out "trigger never fired" as the reason the assertion passes. (frontend-specialisten)

  • 178367a1: feat(dh/metering-point): declare roles per EndOfSupply action

Each EndOfSupply action now declares which actor roles can invoke it,
so per-action visibility is enforced at the registry level instead of
relying solely on the outer visibility gate. Updated the matching test
to reflect that RejectRequest is restricted to the responsible
EnergySupplier. (frontend-specialisten)

  • fe5f9c58: refactor(dh/metering-point): move overview action gating into registry (frontend-specialisten)
  • 7847c11d: refactor(dh/metering-point): clean up overview test and import grouping (frontend-specialisten)
  • 62090154: refactor(dh/metering-point): move details action gating into registry (frontend-specialisten)
  • 195507f9: chore(dh/metering-point): drop unused param in pipe test mock (frontend-specialisten)
  • 2e247eb6: refactor(dh/metering-point): drop redundant supplier role check in matchesRoles

The BFF flag isEnergySupplierResponsible is GLN-keyed and only true when the
active actor is the responsible energy supplier on the metering point. The
explicit marketRole === EnergySupplier check is therefore redundant. Remove
it and the now-impossible test that mocked a non-supplier with isResponsible
set to true. (frontend-specialisten)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

open-dpp - @open-dpp/dto@0.4.2

Industrial Ecology - Circular Economy and Waste - TypeScript
Published by github-actions[bot] 12 days ago

open-dpp - @open-dpp/api-client@0.4.2

Patch Changes

  • Updated dependencies []:
    • @open-dpp/dto@0.4.2

Industrial Ecology - Circular Economy and Waste - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_frontend_5790

What's Changed

Full Changelog: https://github.com/Energinet-DataHub/greenforce-frontend/compare/ui_dotnet_5788...ui_frontend_5790

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

GreenForce - ui_dotnet_5790

Commits

  • f73467f3: chore(deps): bump chromaui/action in the version-updates group

Bumps the version-updates group with 1 update: chromaui/action.

Updates chromaui/action from 16.6.1 to 16.6.3


updated-dependencies:

  • dependency-name: chromaui/action
    dependency-version: 16.6.3
    dependency-type: direct:production
    update-type: version-update:semver-patch
    dependency-group: version-updates
    ...

Signed-off-by: dependabot[bot] support@github.com (web-flow)

  • 26545ebc: Merge branch 'main' into dependabot/github_actions/version-updates-a34c30b96f (web-flow)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 12 days ago

OasisLMF - Release 2.5.3

OasisLMF Changelog - 2.5.3

  • #1903 - remove pd from summarypy to save on memory usage
  • #1920 - enhancement/lecpy_speed
  • #1931 - Feature/cython write csv reverted
  • #1935 - enhacement/peril info from OEDSpec
  • #1939 - bug/move h3 tests
  • #1941 - Fix #1936: correct UTC timestamps in get_utctimestamp
  • #1945 - Fix resource monitor for V2 worker runs
  • #1948 - fix/nonzero default fm profile
  • #1951 - fix/join-summary-info-bugs
  • #1956 - fix: reduce memory usage in FootprintBin/FootprintBinZ and skip footprint load when data_server active
  • #1959 - API client, added option for disabled auth
  • #1960 - Directly send port to gulmc gulpy and socket server

OasisLMF Notes

remove pd from summarypy to save on memory usage - (PR #1903)

enhancement/lecpy_speed - (PR #1920)

Performance improvements to the Python LEC (Loss Exceedance Curve) calculation engine.

Changes

Separate row_used mask from OUTLOSS_DTYPE

  • Extracted the row_used boolean field out of outloss_mean/outloss_sample structured arrays into dedicated np.bool_ memmapped files (lec_row_used_mean.bdat, lec_row_used_sample.bdat)
  • np.where lookup is now computed once at AggReports initialisation and reused across all report types, avoiding repeated full-array scans

Replace nb.typed.Dict tail structures with flat ndarrays

  • TVaR tail and tail_sizes were previously Numba typed dicts with dynamically resized array values
  • Replaced with pre-allocated flat ndarray[TAIL_valtype] arrays indexed via pre-computed tail_offsets
  • Eliminates dict lookups, dynamic array resizing, and Python list accumulation in write_tvar / write_tvar_wheatsheaf
  • Output arrays (EPT_dtype / PSEPT_dtype) are now pre-allocated and written by position directly

Fix np.int32 overflow in memmap shape calculations

  • no_of_periods and sample_size are read as np.int32 from binary headers; multiplying them to compute memmap shapes overflowed silently
  • Explicit int() casts added before shape multiplications

Deduplicate row_used update logic

  • do_lec_output_agg_summary previously selected target array via a branch then updated row_used through a shared code path
  • Each branch now handles its own array independently, removing the intermediate variable and making per-array updates explicit

Performance improvement (using binary outputs)

closes https://github.com/OasisLMF/OasisLMF/issues/1680

Reverted and reopened - (PR #1931)

** packaging issue needs fix ** https://github.com/OasisLMF/OasisLMF/pull/1894

enhacement/peril info from OEDSpec - (PR #1935)

  • read the perils and peril_groups info directly from the OEDSchema
  • remove redundant field group_peril from PERILS
  • change key for PERILS and PERIL_GROUPS to peril code from OEDSpec.
  • add tests to ensure correct groups created

bug/move h3 tests - (PR #1939)

  • move h3 tests to their own file so that pytest.importorskip does not skip builtin tests

Fix resource monitor for V2 worker runs - (PR #1945)

fix/non zero default fm profile - (PR #1948)

  • fm_profile default share to 0.0 despite some share fields having non-zero default values (e.g. LayerParticipation) when accounts.csv is filled with the default value

fix/join-summary-info-bugs - (PR #1951)

fixes bug related to join-summary-info

closes https://github.com/OasisLMF/OasisLMF/issues/1950
closes https://github.com/OasisLMF/OasisLMF/issues/1949

API client, added option for disabled auth - (PR #1959)

See: https://github.com/OasisLMF/OasisPlatform/pull/1387/ Client checks if server_info/ returns 200 (normally needs to be authenticated) and runs without authorization if disabled

Climate Change - Natural Hazard and Storms - Python
Published by awsbuild 13 days ago

GreenForce - ui_dotnet_5779

Commits

  • 1490ceae: fix: hide end date for charge link periods in UI

Only display the start date for charge link periods across fees,
tariff/subscriptions tables, and the details drawer. Cancelled
link status badges are preserved. (ManBearTM)

  • 2fc8ad85: fix: restore end date display for tariff/subscriptions and details (ManBearTM)
  • ed6fc441: Revert (ManBearTM)
  • 8dda7d92: Hide end date in bff (ManBearTM)
  • af2d93d2: Merge branch 'main' into hide-charge-link-end-date (ManBearTM)
  • 9e244623: Update mocks (ManBearTM)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 13 days ago

GreenForce - ui_frontend_5788

What's Changed

Full Changelog: https://github.com/Energinet-DataHub/greenforce-frontend/compare/ui_dotnet_5787...ui_frontend_5788

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 13 days ago

GreenForce - ui_dotnet_5788

Commits

  • 18596aa2: chore: remove husky in favor of native git hooks

Drop the husky devDependency in favor of a small postinstall
script that points core.hooksPath at .githooks. The post-merge
hook keeps its existing behavior of running bun install when
bun.lock changes after a pull or merge.

Closes #2485 (frontend-specialisten)

  • 7e9c0c1b: QA fixes (github-actions[bot])

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 13 days ago

GreenForce - ui_frontend_5787

What's Changed

Full Changelog: https://github.com/Energinet-DataHub/greenforce-frontend/compare/ui_dotnet_5786...ui_frontend_5787

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 13 days ago

GreenForce - ui_dotnet_5787

Commits

  • a110b79f: chore(deps): bump @testing-library/user-event from 13.5.0 to 14.6.1

Migrate 17 spec files from the v13 sync API to the v14 async pattern:
introduce userEvent.setup() per test and await every interaction.
Convert the disabled-button toThrow assertion to rejects.toThrow,
and replace skipPointerEventsCheck: true with the global
pointerEventsCheck: 0 option where it was previously used.

The modal "closes on ESC" test now dispatches a synthetic
KeyboardEvent with keyCode 27 to satisfy MatDialog's deprecated
keyCode filter, since user-event v14 + happy-dom no longer
populates that property.

Closes #2481 (frontend-specialisten)

  • 4d39248f: QA fixes (github-actions[bot])
  • fc497f21: test(watt): apply Escape keyCode workaround to modal disables ESC test

Without the synthetic KeyboardEvent dispatch, user-event v14 omits the
deprecated keyCode property and Escape never reaches MatDialog. The
disables ESC test then passed regardless of disableClose, since closed
was never going to be called. Extract the dispatch into a shared helper
and use it in both ESC tests so the disables ESC assertion is now a real
verification of the disableClose: true path.

Refs #2481 (frontend-specialisten)

  • da156452: test(watt): dispatch Escape on drawer host in does-not-call-closed test

user.keyboard sends the event to the focused element, which is body when
the drawer never opened. The keydown then bubbles upward and never
reaches the watt-drawer host listener, so the test passed regardless of
whether the close() short-circuit on isOpen actually worked. Dispatch
the synthetic keydown directly on the drawer element instead, mirroring
the existing closes-on-Escape tests in the same file. The dispatch is
now known to reach the listener (proved by the existing closes-on-Escape
tests that use the identical pattern), so the assertion that closed is
not called is now a real verification of the closed-drawer branch.

Refs #2481 (frontend-specialisten)

Energy Systems - Grid Management and Microgrid - TypeScript
Published by github-actions[bot] 13 days ago

huawei_solar - 2.0.3

The v2.0 release of this integration marks a big effort to update and modernize the underlying communication library: we developed tModbus as a new modern and well-tested Modbus-library. The (re-)connection logic was given a lot of attention to improve the stability of this integration.

The setup wizard was also improved with a more aggressive auto-detection system. This scans the modbus connection for the most-used slave-ids, removing the need to find those yourselves.

We now also support SDongle and SmartLogger devices. As these devices report on separate unit IDs, you will need to reconfigure your existing integration to start reading from them.

Improvements 🚀

  • Migrate from pyModbus to tModbus library
  • Add support for SDongle and SmartLogger
  • Add icons to services
  • Battery SOC sensor now has a dynamic icon (thank you @alexdelli #1257)

Fixes 🐞

Thank you 💖

I want to thank all the people who have sponsored me for doing this work. These tokens of appreciation really help me stay motivated to keep working on this integration. I'm very grateful for that!

Also a big thank you to the more than 500 people that have tested the beta releases in the past few months: your testing has proven the stability of the new communication library and has helped iron out a few bugs in the process.

Renewable Energy - Photovoltaics and Solar Energy - Python
Published by wlcrs 13 days ago

AIBECS.jl - v0.16.4

AIBECS v0.16.4

Diff since v0.16.3

Merged pull requests:

  • ci: deploy docs via GitHub Actions, materialising symlinks for VitePress (#119) (@briochemc)
  • ci: bump DocumenterVitepress to 0.3 to fix /stable/ hydration (#120) (@briochemc)

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 13 days ago

AIBECS.jl - v0.16.3

AIBECS v0.16.3

Diff since v0.16.2

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 13 days ago

pycontrails - v0.63.0

Features

  • Support extrapolation in model-level-to-pressure-level interpolation (pycontrails.datalib.ecmwf.ml_to_pl).

Fixes

  • Fix jet.cargo_load_factor to handle cases where no data is available for the specified origin and destination region pair. In such cases, the function now falls back to using global mean estimates instead of raising a meaningless error.
  • No longer set Flight.attrs with NaN or NaT values in ChAviation datalib when the metadata is missing.

Internals

  • Add minor performance improvements to Poll-Schumann internal model functions.
  • Update Spire ValidateTrajectoryHandler.AVG_LOW_GROUND_SPEED_THRESHOLD_MPS constant from 100 m/s to 85 m/s based on 2024-2025 flights data analysis.
  • Handle timezone-aware timestamps in met datalibs.

Breaking changes

  • Remove ingestion_time from Spire data schema as it's not required for any contrail predictions.
  • Expose the maximum Mach number buffer applied in PSFlight via a new AircraftPerformanceParams.max_mach_buffer parameter. Previously this was hard-coded to 0.02. The default value has now changed from 0.02 to 0.0. With this new default, downstream users should expect a small change in PSFlight fuel flow estimates (typically a decrease) when working with noisy ADS-B. Set this to 0.02 to retain previous behavior.
  • Change the fl.attrs["aircraft_performance_model"] value from "PSFlight" to "PS" when the PSFlight model is used for consistency with BADAFlight.
  • Rename the function arguments max_takeoff_weight -> amass_mtow and operating_empty_weight -> amass_oew in jet.update_aircraft_mass and jet.initial_aircraft_mass. This is to standardize the naming convention for aircraft mass parameters across pycontrails. Typically these functions are not called directly so the risk that downstream code is affected by this change is low.

Climate Change - Earth and Climate Modeling - Python
Published by zebengberg 13 days ago

ClimaLand.jl - v1.8.0

ClimaLand v1.8.0

Diff since v1.7.0

📢 API Changes:

🚀 Features

  • remove convert_cb function (#1729)

📑 Documentation

  • Snow Model Docs Conservative Equations don't render correctly (#1710)

🐛 Fixes

  • Snow Model Docs Conservative Equations don't render correctly (#1710)

Natural Resources - Soil and Land - Julia
Published by github-actions[bot] 13 days ago

Zarr - v3.2.0

What's Changed

New Contributors

Full Changelog: https://github.com/zarr-developers/zarr-python/compare/v3.1.6...v3.2.0

Climate Change - Climate Data Standards - Python
Published by d-v-b 13 days ago

Zarr - v3.2.0rc1

What's Changed

New Contributors

Full Changelog: https://github.com/zarr-developers/zarr-python/compare/v3.1.6...v3.2.0rc1

Climate Change - Climate Data Standards - Python
Published by d-v-b 13 days ago

EcoAssist - AddaxAI v6.35

Add Gorongosa MOZ model inference code.

Biosphere - Terrestrial Wildlife - Python
Published by PetervanLunteren 13 days ago

goat - v2.4.23 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.22 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.

What's Changed

Full Changelog: https://github.com/plan4better/goat/compare/v2.4.22...v2.4.23

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti 13 days ago

AIBECS.jl - v0.16.2

AIBECS v0.16.2

Diff since v0.16.1

Hydrosphere - Ocean Carbon and Temperature - Julia
Published by github-actions[bot] 13 days ago

Holos - Holos 4 - 64675ad4

Consumption - Agriculture and Nutrition - C#
Published by github-actions[bot] 13 days ago

Holos - Holos 4 - 78458c22

Consumption - Agriculture and Nutrition - C#
Published by github-actions[bot] 13 days ago

Holos - Holos 4 - 94879acb

Consumption - Agriculture and Nutrition - C#
Published by github-actions[bot] 13 days ago

Skyborn - v0.3.21 (Apr 30, 2026)

Improvements

  • Scatter Placement Acceleration: Moved the cell-interior candidate
    generation path in skyborn.plot.scatter into the native C helper so
    projected stippling workflows spend less time in Python loops and
    temporary array construction
  • Curly-Vector Display-Space Sampling Optimization: Moved
    _NCLDisplaySampler display-cell validation and batch display-grid
    sampling into the native plotting helper, reducing intermediate-array
    overhead and lowering memory use for projected curly_vector
    workflows on larger grids
  • Display-Curve Validation Fast Path: Extended the native
    curly-vector tracer so it can return both data-space and display-space
    curves in one pass and run the display-curve quality screening in C
    while preserving the previous plotted geometry

Cleanup

  • Plot Internal Simplification: Removed unused internal helper aliases
    from skyborn.plot.vector and kept the low-level plotting tests
    importing their implementation modules directly

Climate Change - Climate Data Processing and Analysis - Fortran
Published by QianyeSu 13 days ago

Deadtrees.earth - v2026.04.30.17

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.04.30.16...v2026.04.30.17

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] 13 days ago