Recent Releases of Open Sustainable Technology Projects

OpenStudio - v1.12.0-rc1

What's Changed

Full Changelog: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.11.0...v1.12.0-rc1

Date Range: 2026-02-18 (v1.11.0) - 2026-06-21:

New Issues: 11

Closed Issues: 7

Accepted Pull Requests: 17

Total Open Issues: 134

Total Open Pull Requests: 2

Closed Issues: 7

  • #757, Implement a method to specify monthly ground temperature schedule
  • ✔️ #850, v1.11.0-rc1 Testing: Call for help from the community - updated to include v1.11.0-rc2
  • ✔️ #861, Can't build with Qt 6.5.2 with macOS Tahoe 26.x
  • #862, Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)
  • #872, 1.11.0 release is missing the mac and windows installers
  • ✔️ #878, BCL Library not working
  • ✔️ #879, BCL not online

Accepted Pull Requests: 17

  • ✔️ #837, Work In Progress - Replace QtCharts with LGPL compliant JKQtPlotter
  • ✔️ #856, Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov
  • ✔️ #858, Merge for OpenStudio Application v1.11.0 release
  • #859, #757 - Implement a Site subtab for ground temperatures
  • #863, Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)
  • ✔️ #864, Remove Qt from ModelEditor Ruby bindings
  • ✔️ #865, Refactor with architecture and developer documentation
  • ✔️ #867, Remove qt5compat
  • ✔️ #868, Bump Qt from 6.5.2 to Qt 6.11.0
  • ✔️ #869, Remove shared library exports for Windows
  • ✔️ #870, Add docker build container for AI agents to use
  • ✔️ #873, Complete language support to all GUI tabs
  • ✔️ #874, Complete language support to all GUI tabs
  • ✔️ #877, Complete language support to all GUI tabs (#876)
  • ✔️ #881, Create 1.11.1 patch changing NREL to NLR
  • ✔️ #884, Update actions to avoid warnings
  • ✔️ #885, Merge for 1.12.0-rc.1

Total Open Issues: 134 (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #851, #852, #857, #860, #866, #871, #875, #880, #882)

Total Open Pull Requests: 2 (#876, #883)

Consumption - Buildings and Heating - C++
Published by macumber 1 day ago

OpenMethane - v1.6.0

openmethane-prior v1.6.0 (2026-06-17)

🆕 Features

  • Update wetlands sector implementations to use SatWet-GIEMS dataset (#184)

Emissions - Emission Observation and Modeling - Python
Published by aethr 5 days ago

OpenStudio - v1.11.1

This is essentially the same as v1.11.0, but patched so that BCL is accessed at the new url bcl.nlr.gov now that bcl.nrel.gov was dropped without any redirects.

What's Changed

Full Changelog: https://github.com/openstudiocoalition/OpenStudioApplication/compare/v1.11.0...v1.11.1

Changelog

Date Range: 2025-02-09 (v1.9.0) - 2026-06-17:

New Issues: 51

Closed Issues: 35

Accepted Pull Requests: 38

Total Open Issues: 134

Total Open Pull Requests: 5

Closed Issues: 35

  • #153, Allow users to choose which design days (0.4%, 1%, 2%) are imported
  • ✔️ #485, ucrtbase.dll Error on Windows 11 in Parallels
  • #742, Is it possible to support QtWebengine (Geometry Tab) for VMs without GPU acceleration?
  • #757, Implement a method to specify monthly ground temperature schedule
  • ✔️ #784, v1.9.0-rc1 Testing: Call for help from the community
  • #792, Add support for HotWaterEquipment and HotWaterEquipmentDefinition
  • ✔️ #796, Add ScheduleFile entries in My Model for tabs where missing (eg: Loads)
  • #799, Linux RPM built or building from sources documentation
  • ✔️ #800, thermochromic material group
  • ✔️ #804, I can't access BCL/browse today
  • #806, Display full path to model when hovering over filename on Main Window
  • ✔️ #807, District Heating category is greyed out
  • #808, Peer-to-peer trade for surplus on-site generation (local flexibility market)
  • ✔️ #812, The v1.9.0 release has no installer binaries
  • #815, [OS SDK 3.10.0] Add OutputControl:ResilienceSummaries
  • #816, [OS SDK 3.10.0] - Add ZoneHVAC:EvaporativeCoolerUnit
  • ✔️ #819, v1.10.0-rc2 Testing: Call for help from the community
  • ✔️ #823, [v1.10.0-rc1] openstudio hung when I clicked Find Component (under the Components & Measures dropdown)
  • #825, Add Terrain and Elevation fields to the Site tab
  • ✔️ #828, Filesystem exists throws an exception
  • ✔️ #831, Water Heater Stratified - Incorrect Time for Tank Recovery in default library
  • ✔️ #832, openstudio怎么使用
  • ✔️ #833, OpenStudio Results Report html is sometimes Garbled
  • ✔️ #835, Resources for OpenStudio installation on Linux
  • ✔️ #836, OpenStudio Application uses GPLv3 only licensed QtCharts
  • ✔️ #840, OpenStudioApp fails to start in Windows 11
  • ✔️ #843, Deleting an object does not delete children that are OS:Table:IndependentVariable
  • #844, Add build instructions
  • ✔️ #850, v1.11.0-rc1 Testing: Call for help from the community - updated to include v1.11.0-rc2
  • ✔️ #853, I am trying to set "CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule" but keep getting 'incompatible ScheduleTypeLimits' error OpenstudioSDK 3.10.0
  • ✔️ #861, Can't build with Qt 6.5.2 with macOS Tahoe 26.x
  • #862, Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)
  • #872, 1.11.0 release is missing the mac and windows installers
  • ✔️ #878, BCL Library not working
  • ✔️ #879, BCL not online

Accepted Pull Requests: 38

  • ✔️ #790, Merge for 1.9.0 release
  • #791, Fix #153 - Allow users to specifically import 99%,99.6%, 0.4%,1% and 2% annual design days
  • #793, Fix #792 - Add support for HotWaterEquipment and HotWaterEquipmentDefinition
  • ✔️ #795, Issue #166 - Sort measures alphabetically in GUI
  • ✔️ #797, Fix #796 - Add ScheduleFile to MainRightColumnController
  • ✔️ #809, Update to OS SDK v3.10.0 and EnergyPlus v25.1.0-WithDSOASpaceListFixes
  • ✔️ #813, Update version to 1.10.0-rc1
  • ✔️ #814, PR to create 1.10.0-RC1
  • #820, Fix #816 - Add ZoneHVAC:EvaporativeCoolerUnit to OS App
  • #821, Fix #815 - Add OutputControl:ResilienceSummaries to OS App
  • #822, #799 - Add Support for AlmaLinux9
  • ✔️ #824, Revert changes to BuildingComponentDialogCentralWidget from PR #795
  • #826, #825 - Expose Terrain, Elevation and Keep Site Location Information on the Site Tab
  • ✔️ #827, Merge for RC2
  • ✔️ #829, Use noexcept versions of filesystem
  • ✔️ #830, Merge for 1.10.0 Release
  • ✔️ #837, Work In Progress - Replace QtCharts with LGPL compliant JKQtPlotter
  • ✔️ #838, Fix #836 - QtCharts is GPL only
  • ✔️ #839, Fixup empty elsif preventing Werror
  • ✔️ #841, Fixup empty elsif preventing Werror
  • ✔️ #842, Fix #836 - QtCharts is GPL only
  • ✔️ #845, Update to OpenStudio SDK v3.11.0-RC1
  • ✔️ #846, Update to MacOS 15 runners
  • ✔️ #848, Update for 1.11.0-rc1
  • ✔️ #849, Update OpenStudio Standards to 0.8.5
  • ✔️ #854, Update actions to work after clearing cache, bump to RC2
  • ✔️ #855, Update actions to work after clearing cache, bump to RC2 (#854)
  • ✔️ #856, Future proof pinging bcl.nlr.gov instead of bcl.nrel.gov
  • ✔️ #858, Merge for OpenStudio Application v1.11.0 release
  • #859, #757 - Implement a Site subtab for ground temperatures
  • #863, Implement ability to change model from the 3D Geometry Preview View (set Construction, ThermalZone, reverse Vertices)
  • ✔️ #864, Remove Qt from ModelEditor Ruby bindings
  • ✔️ #867, Remove qt5compat
  • ✔️ #868, Bump Qt from 6.5.2 to Qt 6.11.0
  • ✔️ #869, Remove shared library exports for Windows
  • ✔️ #870, Add docker build container for AI agents to use
  • ✔️ #874, Complete language support to all GUI tabs
  • ✔️ #881, Create 1.11.1 patch changing NREL to NLR

Total Open Issues: 134 (#130, #132, #111, #113, #158, #133, #134, #172, #135, #136, #139, #174, #157, #166, #138, #167, #137, #121, #176, #114, #144, #152, #171, #141, #140, #122, #164, #170, #165, #151, #154, #148, #117, #150, #169, #124, #160, #155, #125, #156, #105, #159, #161, #120, #127, #118, #119, #128, #129, #146, #147, #168, #19, #78, #101, #96, #104, #199, #206, #224, #234, #239, #253, #254, #273, #278, #289, #293, #298, #300, #335, #336, #337, #338, #357, #371, #377, #380, #381, #389, #396, #400, #410, #411, #416, #423, #472, #481, #491, #495, #520, #529, #542, #555, #571, #615, #649, #658, #659, #679, #680, #687, #704, #709, #711, #751, #752, #760, #770, #776, #782, #786, #787, #794, #798, #801, #802, #803, #805, #810, #811, #817, #818, #834, #847, #851, #852, #857, #860, #866, #871, #875, #880, #882)

Total Open Pull Requests: 5 (#865, #873, #876, #877, #883)

Consumption - Buildings and Heating - C++
Published by jmarrec 6 days ago

ONEARMY - v2.136.0

2.136.0 (2026-06-16)

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 7 days ago

Monitorfish - v1.112.7

What's Changed

🎉 Fonctionnalités

👒 Dépendances

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.6...v1.112.7

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

Monitorfish - v1.112.6

What's Changed

🎉 Fonctionnalités

👒 Dépendances

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.5...v1.112.6

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

Whisp - Release v2.0.0

🚀 What's New

Major architectural release: WHISP splits from a Next.js monolith into App + FastAPI API + Celery workers + Redis, deployed as separate GKE workloads.

Architecture

  • Split monolith into App, API, Worker services, and shared database migrations
  • FastAPI service for submit, status/SSE, GeoJSON/CSV export
  • Celery workers with separate sync and async queues
  • Redis pub/sub for job progress and SSE
  • GKE manifests for multi-service production

API — new statuses

  • analysis_queued (HTTP 202) — job accepted, waiting for worker
  • analysis_cancelled (HTTP 400) — job cancelled (terminal)
  • Async submit now returns analysis_queued instead of analysis_processing

API — new endpoints

  • GET /api/config — public limits, timeouts, and GeoID settings
  • GET /api/health — health check
  • POST /api/status/{token}/cancel — cancel a running job
  • GET /api/docs, /api/redoc, /api/openapi.json — API documentation

API — breaking changes

  • Removed x-legacy-format header; results are always GeoJSON FeatureCollection (no JSON array format)
  • Geo-IDs submit: assetRegistryOptions renamed to geoidOptions
  • GeoID service error codes renamed (service_geoid_*)
  • Updated default geometry limits and timeouts (see GET /api/config)

Web app

  • Auth and account flows moved to Next.js server actions
  • shadcn/ui upgrade and general UX improvements

🔧 Issues Resolved in This Release

  • [API] v2 analysis API changes for external integrators (#158)
  • [Backend] Migrate auth and account flows to server actions (#157)
  • [Deploy] GKE manifests for multi-service production (#156)
  • [Backend] Redis-backed job progress and SSE (#155)
  • [Workers] Celery-based analysis with sync and async queues (#154)
  • [API] Move analysis endpoints to standalone FastAPI service (#153)
  • [Architecture] Split WHISP into App, API, and Worker services (#152)
  • [General UI] Migrate to shadcn/ui Latest (CLI v4, Tailwind v4, Base UI) (#146)
  • [GeoId Registry] Generate curl command lines with the register progress for full transparency (#145)
  • [GeoId Registry] Refactor the toolbar buttons to match the analysis results page (#143)
  • [General UI] Standardize button styling using shadcn Button component (#140)
  • Replace inmemory job cache with redis cache (#103)
  • Improve async analysis architecture: Cloud Tasks, WebSocket, Cloud Run Jobs (#71)

Biosphere - Deforestation and Reforestation - TypeScript
Published by github-actions[bot] 7 days ago

openfoodnetwork - v5.6.1 Sushi

What's Changed

User-facing changes 👀

Dependencies 📦

New Contributors

Full Changelog: https://github.com/openfoodfoundation/openfoodnetwork/compare/v5.6.0...v5.6.1

Consumption - Agriculture and Nutrition - Ruby
Published by mkllnk 7 days ago

se.plan - 2.1.0

What's Changed

Full Changelog: https://github.com/sepal-contrib/se.plan/compare/2.0.0...2.1.0

Biosphere - Deforestation and Reforestation - Python
Published by dfguerrerom 7 days ago

open-dpp - @open-dpp/dto@2.6.0

Minor Changes

  • #587 f8ec4ed Thanks @mr42! - Organization owners can change the role of a member.

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

open-dpp - @open-dpp/api-client@2.6.0

Minor Changes

  • #587 f8ec4ed Thanks @mr42! - Organization owners can change the role of a member.

Patch Changes

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

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

ONEARMY - v2.135.0

2.135.0 (2026-06-15)

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 8 days ago

ONEARMY - v2.134.0

2.134.0 (2026-06-15)

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 8 days ago

eCalc - v13.8.0

13.8.0 (2026-06-12)

Features

Bug Fixes

  • assert in consumer-system (aa94041)
  • libecalc: individual_asv_pressure now returns fixed shaft speed instead of nan (#1618) (c2b95cf)
  • make sure fuel is defined for the full period of consumer/genset (a6ac692)
  • make sure FuelModel extrapolates to global time-vector (f843ece)

Miscellaneous Chores

  • bump NeqSim to 3.13.0 (#1617) (6ae2cd2)
  • deps: bump actions/checkout from 6.0.2 to 6.0.3 (#1611) (8384df1)
  • libecalc: stop importing configuration types via solver files (#1626) (901e95a)
  • upgrade dependencies for week 24. Auto-generated by devCalc (8e46bcd)
  • upgrade dependencies for week 24. Auto-generated by devCalc (#1616) (cb73ef3)

Code Refactoring

  • libecalc: extract PipelineSection and rename solver (#1614) (9af700f)
  • libecalc: implement reset_configuration_handler() on individual config handlers (#1612) (b8f73f7)

Tests

  • add tests for process simulation mapper using yaml builders (#1608) (b590f81)
  • libecalc: add single-stage solver-path matrix with golden snapshot baseline (#1620) (e0a6db9)

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

OpenMethane - v1.5.0

openmethane-prior v1.5.0 (2026-06-14)

⚠️ Breaking Changes

  • Remove IVENTORY_DOMAIN_PATH env variable and config (#188)

🆕 Features

  • Utilise state-based petroleum well and borehole datasets to locate oil and gas emission sources (#161)
  • Add possible oil and gas infrastructure and facility emission sources (#167)
  • Add Safeguard Mechanism facilities to oil & gas sector (#170)
  • Add gas supply and pipeline locations to oil and gas sector (#191)
  • Allow storing static data in a separate path (#193)
  • Add Safeguard Mechanism facilities to waste sector (#197)

🎉 Improvements

  • Refactor and centralise conservative regridding in fire, termite and wetlands sectors (#186)
  • Simplify domain handling in PriorConfig (#188)
  • Fetch UNFCCC codes and level names from unofficial ANGA website API (#194)

🐛 Bug Fixes

  • Update Safeguard baselines CSV parsing to reflect updated format (#189)
  • Fix prior failing when DOMAIN_PATH is a file path (#195)
  • Ensure output doesn't include NaN values or MaskedArrays (#198)

Emissions - Emission Observation and Modeling - Python
Published by aethr 8 days ago

PowerCalc - v1.21.0 🌈

This release includes a refresh of several GUI configuration screens, taking advantage of newly available selector components.

For example, in the Fixed Power configuration screen you can configure a fixed power value, select a power template, or define state-based power settings. Previously, all of these options were displayed together in a single dialog, which could feel cluttered. The new interface lets you first choose the configuration type, resulting in a cleaner and more intuitive experience.

Besides that a preview component has been added which allows you to check the resulting power calculation based on the current entity state. This is also handy for direct template debugging.

In addition, the Daily Energy and Playbook Strategy configuration dialogs have also been redesigned and improved for better usability.

Changes

💡 Power profiles

  • #4133 Add Yeelight YLXD024 @xxddff
  • #4145 Move GU10 WW 345lm alias from LED2005R5 to LED2104R3 @webjunkie
  • #4149 Add APC Back-UPS ES 650G1 NUT UPS power profile @brianegge
  • #4153 Remove duplicated tripp lite UPS profile @bramstroker
  • #4163 Hue Omniglow 3m (929004608002) @phoenixxx-1
  • #4164 Hue Play Wall Washer @phoenixxx-1
  • #4183 Add Festavia bulb string light 21m @phoenixxx-1
  • #4204 Add Hue White and Colour Ambiance E27 A67 @phoenixxx-1
  • #4190 Add Eglo connect.z G125 @phoenixxx-1
  • #4199 Add Ikea Kajplats E26 CWS 1100lm bulb @wombat94
  • #4203 Added Hue LWA024 profile @PtPazuzu
  • #4200 Add Ikea Kajplats E26 WS 1100lm @wombat94
  • #4205 Add Inovelli VZM32-SN mmWave dimmer profile @martinemde
  • #4206 Fix Inovelli VZM32-SN to report only device usage @martinemde

🚀 Features

  • #4143 Add action for debugging groups @bramstroker
  • #4151 Performance improvements in test suite. Runs in 10 seconds now @bramstroker
  • #4154 Cleanup tests @bramstroker
  • #4159 Implement profile preview @bramstroker
  • #4165 Implement new selectors in GUI flow @bramstroker
  • #4167 Up HA version required to 2026.1 as we are using new GUI selectors @bramstroker
  • #4184 Add ty linter and fix outstanding typing issues @bramstroker
  • #4186 Support for dummy loads with Kasa devices @phoenixxx-1
  • #4201 Add hs + color_temp + effect option to light runner @phoenixxx-1
  • #4208 Add lut quality check utility @bramstroker
  • #4209 Record voltages during measurement session for future reference @bramstroker

🐛 Bug Fixes

  • #4152 fix: no need to assign hass to template @bramstroker
  • #4172 Fix blocking IO in async functions @bramstroker
  • #4173 Fix mypy type ignore @bramstroker
  • #4171 Lower cyclomatic complexity from 15 to 10 @bramstroker
  • #4174 Remove noqa annotations @bramstroker
  • #4175 Change line length from 150 to 120 @bramstroker
  • #4177 Fix Github actions workflow permissions @bramstroker
  • #4182 Remove config from power sensor category as this prevents entity creation @bramstroker
  • #4210 Remove unnecessary async code @bramstroker

Supporters powering this project ⚡ 👇

🏆 5 coffees
pinkfin
@fakre
CloCkWeRX
and other legends

🥈 3 coffees
@marek.riebmann
Stephan Ristow
Steffen
and other legends

🥉 2 coffees
@danielectronik
Sandro
Dale P

⭐ 1 coffee
Rigo
Jan
Mirko Fey
and other legends

Support the project at https://buymeacoffee.com/bramski

Energy Systems - Building Energy Monitoring - Python
Published by github-actions[bot] 9 days ago

PowerSimulations.jl - v0.36.2

PowerSimulations v0.36.2

Diff since v0.36.1

Closed issues:

  • [RFC] Remove Templates and move them to a separate repository (#1009)
  • Improve usability of local parallel simulations (#1084)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 9 days ago

ONEARMY - v2.133.0

2.133.0 (2026-06-13)

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 10 days ago

ONEARMY - v2.132.0

2.132.0 (2026-06-13)

Bug Fixes

  • delete user notifications and preferences on profile delete (#4772) (4c0a91c)

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 10 days ago

open-dpp - @open-dpp/dto@2.5.0

Minor Changes

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

open-dpp - @open-dpp/api-client@2.5.0

Patch Changes

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

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

flexsdm - v.1.4.0

What's Changed

Full Changelog: https://github.com/sjevelazco/flexsdm/compare/v1.3.9...v.1.4.0

Biosphere - Species Distribution Modeling - R
Published by sjevelazco 10 days ago

CloudMicrophysics.jl - v0.37.0

CloudMicrophysics v0.37.0

Diff since v0.36.0

Breaking changes

  • P3 rework around an explicit P3State: 2M+P3 ice tendencies (melting, liquid–ice collisions, self-collection), Frostenberg (2023) ice nucleation, and a fused BulkMicrophysicsTendencies entry point for the 2M+P3 scheme.
  • Faster, type-stable 2M+P3 collision path (zero-allocation, JET-clean on Julia ≥ 1.12); quadrature rules are now built once at parameter construction and reused in hot loops.
  • Removes dt-limiting from P3 melting/nucleation tendencies.

Closed issues:

  • Add collisions/coalescence parameterizations (#386)

Atmosphere - Atmospheric Chemistry and Aerosol - Julia
Published by github-actions[bot] 11 days ago

ONEARMY - v2.131.1

2.131.1 (2026-06-11)

Bug Fixes

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 11 days ago

Mobility - v0.2.0

New Features

  • Mobility can now be installed from PyPI as mobility-tools, while keeping the Python import name mobility. (#371)
  • Added a GitHub release workflow that builds release artifacts and publishes to PyPI with trusted publishing. (#371, #381, #382)
  • Added reproducible GTFS source selection for public transport routing, so projects can share and reuse the same GTFS source catalog. (#369)
  • Added support for Swiss data and improved French communal data. (#87, #85)
  • Added modelling support for school, leisure, studies, carpool, public transport, congestion, and multimodal workflows. (#115, #262, #200, #136, #113, #205, #203)
  • Added group day trip simulation with scenario-aware runs, iteration states, diagnostics, result tables, metrics, sensitivity analysis, and restart support. (#323, #341, #342, #348, #367, #261)
  • Added scenario-aware and time-varying parameters, parameter validation, parameter reports, and default scenario fallbacks. (#258, #282, #340, #240, #366)
  • Added transport-zone preparation improvements, sparse-zone merging, Python backend support, map helpers, and transport-zone reports. (#271, #332, #344, #331, #347)
  • Added route, traffic, public transport, and travel-cost evaluation tools. (#211, #205, #222, #203)
  • Added a Dash asset DAG viewer to inspect runtime dependencies. (#360)

Bug Fixes

  • Fixed package runtime resources so installed users get the data files needed by Mobility. (#371, #382)
  • Fixed public transport leg parameter resolution for scenario-and-iteration-dependent access and egress costs. (#370)
  • Fixed GTFS parsing and routing edge cases, including missing agency_id, malformed calendar_dates, and GTFS time-offset issues. (#180, #175, #217)
  • Fixed high memory usage and improved memory handling in long simulations. (#328, #343)
  • Fixed bugs in PopulationTrips, destination sampling, trip home returns, metrics, probability calculations, and flow reuse between runs. (#164, #238, #310, #327, #214, #215, #260, #349)
  • Fixed transport graph and congestion issues, including cleanup, OSM filtering, one-way tags, restricted roads, ferry links, and lane capacity parsing. (#306, #234, #207, #176, #320)
  • Fixed CI download progress crashes caused by overlapping Rich progress displays. (#378)
  • Fixed compatibility issues with newer pandas, pyarrow, R, and dependency versions. (#60, #67, #119, #275)

Chores

  • Reworked the release process around PyPI, GitHub releases, trusted publishing, release docs, and packaged artifact checks. (#371, #377, #380, #381, #382)
  • Simplified the release build so it no longer depends on the custom CI container image. (#381)
  • Added and improved CI workflows, coverage reporting, Codecov, Dependabot, macOS install checks, and a prebuilt CI image for normal tests. (#29, #32, #102, #139, #243, #249, #278, #355, #356, #357)
  • Improved dependency management for users, tests, Python packages, and R packages. (#275, #168, #371)
  • Added a PR template and clearer contribution workflow. (#286)
  • Reworked documentation, README files, Read the Docs setup, quickstart material, examples, model pages, API notes, and dependency notes. (#30, #33, #63, #64, #65, #66, #72, #73, #74, #75, #186, #321, #368)
  • Switched the maintained quickstart and tests to the Limoges example. (#354)

Migration Notes

Install from PyPI with:

pip install mobility-tools

Keep importing the package as before:

import mobility

Public transport routing now expects explicit GTFS routing inputs such as gtfs_reference_date and gtfs_sources_folder for reproducible runs. (#369)

Existing projects should be reviewed before rerunning because model internals, transport costs, parameters, dependencies, and public transport inputs changed substantially since v0.0.1.

Changelog

This is a broad catch-up release after several years without a formal release. The highlights above summarize the main user-facing changes; the full generated changelog below includes feature work, fixes, documentation, CI, packaging, and internal refactors.

What's Changed

New Contributors

Full Changelog: https://github.com/mobility-team/mobility/compare/v0.0.1...v0.2.0

Consumption - Mobility and Transportation - Python
Published by github-actions[bot] 11 days ago

timflow - Release v0.3.0: Combined calibration of steady and transient models

Highlights

  • New combined calibration of steady and/or transient models. Now available for testing. The old transient Calibrate is still there, but we will start to transition to the new class slowly.
  • Lots of plotting improvements, and new plotting methods ml.plots.contour_array() , ml.plots.vcontour_array(), ml.plots.quiver_xy(), ml.plots.quiver_z().
  • Compute a velocity grid using ml.velocity_grid() similar to ml.head_grid()
  • Improved input validation for cross-section models.
  • Improvements to particle tracking traces, adding total travel time by @BasdeRidder and returning the full output by default.
  • Far field implementation for Laplace elements.
  • And bug fixes
  • And last but not least, the documentation isn't timing out on read the docs.

What's Changed

New Contributors

Full Changelog: https://github.com/timflow-org/timflow/compare/v0.2.0...v0.3.0

Hydrosphere - Freshwater and Hydrology - Python
Published by dbrakenhoff 12 days ago

foxes - v1.8.0

  • Applications:
    • New command line tool era52foxes, reducing and localizing ERA5 data files to FieldData-ready NetCDF files
  • Inputs:
    • New ambient states class LatLonFieldData, for NetCDF input on regular latitude/longitude grids
  • Output:
    • New output classes: WindFarmsEval and ClusterEval, for simple computation of turbine aggregated results
    • The FarmLayoutOutput can now also color by wind_farm and cluster fields.
    • Refactoring and generalizing FarmResultsEval
  • Models:
    • Refactored air density and yaw misalignment corrections for all turbine types
    • Re-implemented CpCtFile and CpCtFromTwo, now no longer mapping to PCtFile
    • Variable change: FV.CAP now refers to capacity and no longer to capacity factor, i.e., it now represents the maximally available power in the power unit specified by the turbine type. The capacity factor is now referred to as FV.CAPF. Both can be computed by FarmResultsEval, WindFarmsEval and ClusterEval.
  • Tests:
    • New tests for turbine models and turbine types
  • Bugs:
    • Bugs fixed with air density correction of power curves

Full Changelog: https://github.com/FraunhoferIWES/foxes/commits/v1.8.0

Renewable Energy - Wind Energy - Python
Published by github-actions[bot] 12 days ago

Monitorfish - v1.112.2.3

Hotfix for https://github.com/MTES-MCT/monitorfish/pull/5174

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.4...v1.112.2.3

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

ClimateMatch Academy - v1.5.2

What's Changed

Full Changelog: https://github.com/neuromatch/climate-course-content/compare/v1.5.1...v1.5.2

Sustainable Development - Education - Jupyter Notebook
Published by iamzoltan 12 days ago

EnergyPlus -

  • Test for #11632

Consumption - Buildings and Heating - C++
Published by jmarrec 13 days ago

Monitorfish - v1.112.5

What's Changed

🎉 Fonctionnalités

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.4...v1.112.5

Biosphere - Marine Life and Fishery - HTML
Published by VincentAntoine 13 days ago

Arena - v2.5.1

What's Changed

Full Changelog: https://github.com/openforis/arena/compare/v2.5.0...v2.5.1

Biosphere - Biodiversity Citizen Science - JavaScript
Published by SteRiccio 13 days ago

Holos - Holos 4 - 057a2851

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

floris - v4.6.5

Patch release to update some type hints and update dependencies for isort and pandas. Thanks to our new contributor!

What's Changed

New Contributors

Full Changelog: https://github.com/NatLabRockies/floris/compare/v4.6.4...v4.6.5

Renewable Energy - Wind Energy - Python
Published by misi9170 13 days ago

ClimaCore - v0.14.54

ClimaCore v0.14.54

Diff since v0.14.53

📢 API Changes:

🚀 Features

📑 Documentation

🐛 Fixes

Climate Change - Earth and Climate Modeling - Julia
Published by github-actions[bot] 13 days ago

Monitorfish - v1.112.4

What's Changed

🎉 Fonctionnalités

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.3...v1.112.4

Biosphere - Marine Life and Fishery - HTML
Published by VincentAntoine 14 days ago

mizer - mizer 3.0.0

This release brings new biological realism, improved numerics, a richer
interactive analysis experience, and a composable extension framework.
For an overview see the
blog post
pre-announcing the release.

Diffusion in mizer

The McKendrick-von Foerster equation now supports a diffusion term, allowing
individual variability in growth to be modelled.

  • New getDiffusion() calculates the total diffusion rate D(w) (g²/year) for
    each species, combining the predation-induced diffusion from the jump-growth
    equation and any externally specified diffusion set via setExtDiffusion().
    It has both MizerParams and MizerSim methods and returns an
    ArraySpeciesBySize or ArrayTimeBySpeciesBySize object respectively,
    consistent with the other rate-getter functions.

  • The external diffusion coefficient is held in a new ext_diffusion slot in
    MizerParams. Use setExtDiffusion() / ext_diffusion() /
    ext_diffusion<-() to set and retrieve it. The new species parameter D_ext
    (default 0) sets the coefficient of an external diffusion power law;
    setExtDiffusion() calculates the default array from species parameters when
    no custom array is supplied, following the same pattern as
    setExtEncounter().

  • MizerParams gains a use_predation_diffusion slot (logical, default
    FALSE). When FALSE (the default), mizerDiffusion() omits the
    predation-induced diffusion term, preserving the behaviour of previous mizer
    versions. Set to TRUE via the new use_predation_diffusion() accessor to
    enable the jump-growth diffusion term.

  • New getFlux() function calculates the flux of individuals entering each
    size class, combining the advective flux from somatic growth and the
    diffusive flux. It has a power argument, similar to that of plotSpectra(),
    for multiplying the flux by a power of the weight; power = 1 gives the flux
    of biomass.

  • getRequiredRDD() is exported. It calculates the recruitment rate needed
    to maintain a given initial abundance, accounting for both growth and
    diffusion.

  • steadySingleSpecies() correctly preserves the steady state under
    project(), including when diffusion is non-zero.

  • The vignette cohort dynamics
    demonstrates the effect of diffusion in an example.

Higher-order numerical scheme

  • project(), projectToSteady() and steady() gain a method argument for
    choosing the consumer density time-stepper. The default "euler" preserves
    the existing semi-implicit update, while "predictor_corrector" uses a new
    second-order predictor-corrector method. The accuracy of the two methods is
    compared in the numerical details
    vignette.

  • MizerSim objects now have a sim_params slot (a named list) that records
    the projection parameters — currently method and dt — passed to
    project() or projectToSteady(). The new getSimParams() accessor
    retrieves this list. When project() is called on an existing MizerSim
    object it defaults dt and method from the stored sim_params, with a
    warning if the supplied values differ. Older objects are upgraded
    automatically by validSim(), with sim_params set to an empty list.

  • project_n() and project_n_2(2) are new exported functions, factored out of
    project_simple(), that projects the abundance spectrum forward in time with
    the different methods.

Convenient plot methods for mizer return values

  • New ArraySpeciesBySize S3 class for the species × size arrays returned by
    many mizer functions. An ArraySpeciesBySize object behaves like a regular
    matrix for arithmetic and subsetting but carries a human-readable
    value_name and units attribute and provides enhanced print(),
    summary(), plot(), and as.data.frame() methods. The plot() method
    accepts log_y, wlim, and ylim arguments for controlling the y-axis
    scale and limits.

  • New ArrayTimeBySpecies S3 class for the time × species arrays returned by
    getBiomass(), getSSB(), getN(), and getYield() when called on a
    MizerSim object. Like ArraySpeciesBySize, it carries value_name and
    units attributes and provides enhanced print(), summary(), plot(),
    and as.data.frame() methods. The plot() method accepts log and ylim
    arguments.

  • New ArrayTimeBySpeciesBySize S3 class for the time × species × size arrays.
    The N() accessor on a MizerSim object now returns an
    ArrayTimeBySpeciesBySize object. Many rate-getter functions —
    getEGrowth(), getEReproAndGrowth(), getPredMort(), getFMort(),
    getMort(), getFeedingLevel(), getEncounter(), getPredRate(),
    getRDI(), getRDD() — now also accept a MizerSim object and return an
    ArrayTimeBySpeciesBySize. An animate() method allows interactive
    playback. Subsetting an ArrayTimeBySpeciesBySize object returns an
    ArraySpeciesBySize object when a single time is selected, and an
    ArrayTimeBySpecies object when a single size is selected.

  • New plot2() generic with methods for comparing two compatible mizer array
    objects in one plot, with species or group shown by colour and model by
    linetype. The plotSpectra2() helper has moved from mizerExperimental into
    mizer for comparing two abundance spectra.

  • New plotRelative() generic with methods for plotting the symmetric relative
    difference between two compatible mizer array objects. The
    plotSpectraRelative() and plotlySpectraRelative() helpers have moved from
    mizerExperimental into mizer.

  • New plotCDF() and plotCDF2() generics for plotting cumulative abundance
    or biomass distributions from MizerParams and MizerSim objects, together
    with plotlyCDF() and plotlyCDF2() wrappers.

  • New plotHover() generic with methods for ArraySpeciesBySize,
    ArrayTimeBySpecies, ArrayTimeBySpeciesBySize, and mizer_plot converts
    mizer plots into hover-enabled plotly figures.

  • New addPlot() generic with methods for adding ArraySpeciesBySize and
    ArrayTimeBySpecies values as extra lines on an existing compatible ggplot.

  • The animate() methods produces animated plots showing the time evolution
    during a simulation. It can take aMizerSim and ArrayTimeBySpeciesBySize
    argument and supports axis range settings (xlim, ylim), timing controls,
    interpolation options, arguments log_x log_y and log to control which
    axis is log-transformed, and total and background arguments, consistent
    with plotSpectra().

  • Plotting functions now consistently expose log_x, log_y and log
    arguments. In all cases, when supplied, log overrides log_x and log_y.
    plotBiomass() and plotYield() keep support for logical log values for
    backward compatibility.

  • Time-filtering is now consistent across all time-series plot functions via a
    new tlim parameter (analogous to wlim and ylim): a length-two numeric
    vector c(start, end) that restricts the plotted time window. plotYield(),
    plotYieldGear(), and animate() gain this parameter for the first time.
    plotBiomass() and animate.MizerSim() now use tlim in place of the
    former start_time/end_time and time_range parameters respectively;
    the old parameters are deprecated and will be removed in a future release.

  • Size-based plots now accept size_axis = "l" to show length in cm on the
    size axis instead of weight in grams, using the species' allometric
    weight-length relationship.

  • Size-based plots with a size_axis argument now accept llim, the
    length-axis equivalent of wlim, for filtering and limiting plots when
    size_axis = "l".

Extracting model state from a simulation

  • A shift in interpretation of a MizerParams object from just a specification
    of the model to a representation of its state, consisting of both model
    parameters and current values of the state variables (the abundances).

  • getParams(sim, time_range, geometric_mean = FALSE) now extracts the
    ecosystem state from a MizerSim object at a particular time or averaged
    over a time range. When no time_range is given, the state at the final time
    step is extracted. New finalParams(sim) and initialParams(sim) return the
    states at the initial and final times of a simulation respectively.

  • Once a state has been extracted from a simulation, it can be analysed by all
    the existing mizer functions. For that purpose the indicator functions
    getProportionOfLargeFish(), getMeanWeight(), getMeanMaxWeight(), and
    getCommunitySlope() now also accept a MizerParams object and return a
    single value (or named vector for getMeanMaxWeight() with
    measure = "both") calculated from that state. Closes #262.

  • setInitialValues() is deprecated. Replace
    setInitialValues(params, sim) with finalParams(sim) (or
    getParams(sim, time_range, geometric_mean) when averaging over a time
    range).

New extension mechanism allowing extension chains

  • Many functions are now S3 generics with methods for
    MizerParams or MizerSim objects, and users can define their own subclass
    methods to modify mizer behaviour (#330).

  • New composable extension chain infrastructure: registerExtensions(),
    getRegisteredExtensions(), coerceToExtensionClass(),
    clearExtensionChain(), and registerExtension(). Extension classes are S3
    marker classes; MizerSim derives its extension chain from
    sim@params@extensions. Extensions that do not provide a marker class remain
    metadata-only and do not trigger the S3 projection-rate dispatch path.

  • S3 projection hooks have been added for all standard mizer rate functions.
    Extension-aware projections dispatch through projectRates(),
    projectEncounter(), projectFeedingLevel(), projectEReproAndGrowth(),
    projectERepro(), projectEGrowth(), projectDiffusion(),
    projectPredRate(), projectPredMort(), projectFMort(), projectMort(),
    projectRDI(), projectRDD(), and projectResourceMort() — while models
    without extensions continue to use the pre-resolved mizerRates() pipeline
    directly, with no per-step overhead.

  • The MizerSim accessors getParams(),
    validSim(), N(), NResource(), finalN(), finalNResource(),
    idxFinalT(), getTimes(), getEffort(), and are now
    registered as S3 generics with MizerSim methods, making extension-specific
    methods possible. validParams() is also now an S3 generic.

  • saveParams() now serialises extension objects as plain MizerParams
    objects while preserving their extension chain, and readParams() restores
    the appropriate extension class. New saveSim() and readSim() helpers
    provide the same lifecycle for MizerSim objects.

  • Extension installation support now integrates pak for managing missing or
    outdated extension packages.

  • New vignette
    Extending mizer
    documents when to use setRateFunction(), setComponent(), and
    customFunction(), summarises required function signatures and return shapes,
    and gives worked examples for both a custom encounter function and an added
    ecosystem component. A companion vignette
    Using extension packages
    is aimed at users of extension packages, and
    Creating a mizer extension package
    guides extension authors through setting up a new extension package.

  • setRateFunction() now validates the registered function by calling it with
    test inputs and checking that the return value has the correct dimensions,
    catching mismatched custom rate functions at registration time rather than
    during a simulation run. Closes #167.

  • setComponent() now accepts optional colour and linetype arguments and
    applies them via setColours() and setLinetypes() so added components can
    be styled directly in plots.

  • The plot() and summary() methods for MizerParams, MizerSim, and the
    mizer array classes are now registered as S3 methods rather than S4 methods,
    so plot() and summary() remain plain S3 generics when mizer is loaded,
    avoiding interference with S4 method dispatch for other packages.

Species parameters for external mortality, encounter and diffusion rates

See the model description vignette for
the mathematical details.

  • New species parameters z_ext (default 0) and d (default n - 1) add an
    optional power-law term to the external mortality: mu_ext(w) = z0 + z_ext * w^d. When z_ext is zero (the default) the behaviour is unchanged. Closes
    #329.

  • New species parameter E_ext (default 0) sets the coefficient of the
    external encounter rate power law. setExtEncounter() now calculates the
    default external encounter rate as E_ext * w^n when no custom array is
    supplied, matching the pattern of setMaxIntakeRate(). A reset argument is
    also added to setExtEncounter() to force recalculation from species
    parameters.

  • New species parameter D_ext (default 0) sets the coefficient of the
    external diffusion rate power law. setExtDiffusion() calculates the default
    array from species parameters when no custom array is supplied.

Other improvements

  • The MizerSim methods of the rate-getter functions (getEncounter(),
    getFeedingLevel(), getEReproAndGrowth(), getERepro(), getEGrowth(),
    getDiffusion(), getPredRate(), getPredMort(), getMort(), getFMort(),
    getFMortGear(), getRDI(), getRDD() and getFlux()) are now much faster.
    They resolve the rate functions and validate the parameters once and then, at
    each saved time step, calculate only the rates needed (and their
    dependencies) rather than re-resolving and recomputing the whole rate chain.
    The speed-up grows with the depth of the rate chain, e.g. roughly 100× for
    getRDI() and getFlux() on a 50-step simulation.

  • New scaleRates(params, factor) function that rescales all rates in a model
    by a given factor. This is equivalent to a time rescaling: it speeds up or
    slows down all dynamics without affecting the steady state. All rate slots
    (search_vol, intake_max, metab, mu_b, ext_encounter,
    ext_diffusion, catchability, rr_pp) and their associated species
    parameters (gamma, h, ks, k, z0, z_ext, z0pre, E_ext,
    D_ext, R_max) are rescaled consistently.

  • New getTrophicLevel() function returns a matrix (species × size) with the
    trophic level of individuals at each size, accounting for ontogenetic diet
    shifts by integrating the consumption-weighted average prey trophic level
    over the individual's growth trajectory. New getTrophicLevelBySpecies()
    returns the consumption-rate-weighted mean trophic level per species. Both
    functions accept MizerParams and MizerSim objects. Closes #307.

  • New expandSizeGrid() function (an S3 generic) expands the size grid of a
    MizerParams object to a new minimum and/or maximum size while preserving
    all existing species data. Both addSpecies() and expandSizeGrid() now
    preserve the MizerParams subclass. upgradeParams() also preserves
    MizerParams subclasses and their extra slots.

  • compareParams() output is now printed in a human-readable format, with each
    difference as its own block separated by blank lines. When array slots differ,
    the max absolute difference is shown per species. When slots differ only in
    their comment attributes, both comments are displayed. Closes #205.

  • summary() for MizerParams and MizerSim now displays metadata from the
    @metadata slot, including title, description, authors, DOI, URL, mizer
    version, and creation/modification timestamps (when set). Closes #294.

  • New str() methods for MizerParams and MizerSim objects, and the mizer
    array classes (ArraySpeciesBySize, ArrayTimeBySpecies, and
    ArrayTimeBySpeciesBySize), showing a clean, compact overview of their
    structures without dumping large amounts of internal data.

  • A new steady argument to addSpecies() controls whether steady() is
    called after adding the new species.

  • constantEggRDI() now accounts for diffusion across the egg-size boundary,
    including when project() uses the "predictor-corrector" method.

  • setRateFunction() now validates custom RDI functions with the same
    diffusion argument that they receive during projection.

  • Growth is now forced to always be non-negative, preventing unphysical
    shrinkage. No warning is issued when growth stops at or after maturity size.

  • Added info_level argument to projectToSteady(), steady(), setParams(),
    newCommunityParams(), newTraitParams(), matchBiomasses(),
    matchNumbers(), matchYields() and addSpecies()to control the
    verbosity of information messages, consistent with newMultispeciesParams().
    Set info_level = 0 to suppress all messages. Closes #290.

  • t_max and t_save arguments in project() are now respected even when an
    effort array is supplied. When t_max is provided, the simulation extends
    beyond the times in the effort array using the last known effort values. When
    t_save is provided, it controls the save frequency with effort values
    interpolated as needed (#231).

  • getBiomass() now has a use_cutoff argument to restrict the biomass
    calculation to sizes above the biomass_cutoff species parameter.
    plotBiomass() and plotlyBiomass() also gain this argument.

  • setResource() now allows resource_level = 1. When balancing would
    otherwise divide by zero because the resource capacity equals the current
    resource abundance at positive consumption, the capacity is increased
    slightly with a warning instead of failing early.

  • project() now warns when t_max is not a multiple of t_save and ensures
    that the state at t_max is always saved, even if the final save interval is
    shorter than t_save. (#341)

  • New function psi() returns an ArraySpeciesBySize with the population-level
    reproductive proportion.

  • age_mat_vB() is now exported.

  • New Cheatsheet: Analysis and Plotting
    vignette provides a quick reference for all functions that access simulation
    arrays, compute summaries, calculate indicators, and create plots.
    Closes #176.

Bug fixes

  • getFMort() on a MizerSim object was silently dropping the component
    names from n_other when passing it to the rate function and its
    dependencies (getEGrowth(), getPredMort()), causing failures whenever
    rate functions accessed n_other by name (e.g. n_other[["resource"]]).
    The implementation has been refactored to use the same plyr::aaply pattern
    as getFeedingLevel() and getPredMort().

  • getFMort.MizerSim() was not passing the time argument t to user-defined
    fishing mortality functions.

  • plotSpectra() was incorrectly forcing the y-axis lower limit to 1e-20
    (instead of auto-scaling to the data) and was using min(params@w) / 100
    as the default lower w-axis limit even when resource = FALSE, where
    min(params@w) is more appropriate.

  • upgradeParams() was silently dropping some slots (e.g. resource_dynamics)
    and was not preserving MizerParams subclasses and their extra slots when
    upgrading older objects.

  • getMeanMaxWeight() now correctly applies the species selector to the
    denominator.

  • plotDataFrame() now correctly applies custom log-scale x breaks.

  • get_size_range_array() no longer gives an error when no size brackets are
    selected.

Breaking changes

  • The default ratio argument in plotBiomassObservedVsModel() and
    plotlyBiomassObservedVsModel() is now consistently FALSE for all object
    types. Calls that relied on the previous default ratio plot should now set
    ratio = TRUE.

  • The first argument of plotBiomass(), plotYield(), plotYieldGear() and
    their MizerSim methods and plotly* wrappers has been renamed from sim
    to object for consistency with other plot generics. Calls using
    sim = ... as a named argument must be updated to object = ....

  • The names of the dimnames of the arrays returned by getMort(),
    getPredRate() are now sp and w to be in line with other
    functions like getFMort().

  • Functions that return arrays of the form (species x size), (time x species)
    or (time x species x size) now return them with extra attributes and an S3
    class of ArraySpeciesBySize, ArrayTimeBySpecies or
    ArrayTimeBySpeciesBySize. While this does not change their old behaviour,
    the differences will be flagged by functions like is.identical().

  • Because plotDataFrame() now correctly applies custom log-scale x breaks,
    the axis ticks in plots that use this function have changed.

  • plotDiet() no longer accepts a time_range argument.

Biosphere - Marine Life and Fishery - R
Published by gustavdelius 14 days ago

Monitorfish - v1.112.3

What's Changed

🎉 Fonctionnalités

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.2...v1.112.3

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

IMPROVER - 1.18.14

What's Changed

Full Changelog: https://github.com/metoppv/improver/compare/1.18.13...1.18.14

Atmosphere - Meteorological Observation and Forecast - Python
Published by cpelley 14 days ago

PowerSimulations.jl - v0.36.1

PowerSimulations v0.36.1

Diff since v0.36.0

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 14 days ago

openfoodnetwork - v5.6.0 Kabsa

What's Changed

Significant changes 🚀

User-facing changes 👀

API changes ⚠️

Technical changes 🛠️

Dependencies 📦

New Contributors

Full Changelog: https://github.com/openfoodfoundation/openfoodnetwork/compare/v5.5.0...v5.6.0

Consumption - Agriculture and Nutrition - Ruby
Published by chahmedejaz 14 days ago

PowerSimulations.jl - v0.36.0

PowerSimulations v0.36.0

Diff since v0.35.0

Breaking changes

  • update API for reductions
  • update API for exporter
  • update PF and PNM versions

Merged pull requests:

  • Use curtailment in renewable cost (#1614) (@acostarelli)
  • Add power flow in the loop tutorial (#1618) (@kdayday)
  • Jd/pnm pf update (#1619) (@jd-lara)
  • Minor fix: Docs badge latest -> stable (#1620) (@kdayday)
  • Route reactive power time series to AC power flow evaluators on active-power-only network models (#1622) (@Copilot)
  • perf improvements (#1625) (@jd-lara)
  • Jd/pnm pf update (#1626) (@jd-lara)

Closed issues:

  • Use JuMP MOF file to de-serialize built problem (#722)
  • Security constrained optimal power flow (#944)
  • Update Renewable Generation Costs Formulation (#1154)
  • get_decision_problem_results docstring not building. (#1246)
  • Handle error messages when an outage is associated with a reduced branch in N-1 SCUC formulation (#1458)
  • AC power flow evaluator ignores reactive power with active-power-only network models (#1581)
  • Fail directly if adding dynamic_line_ratings to StaticBranchBounds (#1584)
  • KeyError(:MonitoredLine) or KeyError(:Line) during build! due to Symbol("PowerSystems.MonitoredLine") and Symbol("PowerSystems.Line") (#1615)
  • modeled_ac_branch_types can diverge from template.branches, causing KeyError on PTDF build (#1621)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 14 days ago

WRF-ARW - WRF Version 4.8.0

WRF Version

The WRF model has been update to Version v.4.8.0 on June 8, 2026

Acknowledgements: We would like to thank

  • Alexander Ukhov (KAUST)
  • Anders Jensen NOAA/GSL
  • Balthazar Sengers, Fraunhofer IWES, Germany
  • Barry H Lynn (Weather It Is, LTD and Hebrew University of Jerusalem)
  • Tzu-Shun Lin (NCAR)
  • Yuqi Huang (University of Oklahoma)
  • Chenghao Wang (University of Oklahoma)
  • Cenlin He (NCAR)
  • Haiqing SONG (宋海清) Ecological and Agricultural Meteorology
  • Haiqin Li (Haiqin.Li@noaa.gov, CIRES/CU Boulder at NOAA/GSL)
  • Jack Bartlett (Imperial College London)
  • Joseph Olson (NOAA/GSL)
  • Xia Sun (NOAA-GSL)
  • Lluís Fita Centro de Investigaciones del Mar y la Atmósfera
  • Massimo D'Isidoro (ENEA - Italian National Agency for New Technologies, Energy and Sustainable Economic Development)
  • Menda Chasteen
  • Miroslaw Andrejczuk (HPE)
  • Pedro Jimenez (NCAR/RAL)
  • Masih Eghdami (NCAR)
  • Sylwester Arabas (@slayoo)
  • Songyou Hong (NCAR)
  • Wen-Pu Ho (National Central University, Taiwan)
  • Yuxuan Xie (IGSNRR, CAS)
  • Will Hatheway

for their contributions to this release.

Physics

  • A new dynamic lightning scheme is added. The scheme of Lynn et al. (2012) is a prognostic lightning parameterization and it predicts the temporal evolution of a bulk potential electric energy associated with deep convection. Activated by dyn_lightning_option = 1. The DLS includes a simple scale-aware formulation that adjusts charging intensity relative to the original 4 km configuration. (#2276) Details

  • New version of Shin-Hong PBL that combines YSU scheme replaces bl_pbl_physics =11. Other new options are: shinhong_scu_mixing (top-down mixing, default off), shinhong_nonlocal_flux (gamma (f) or mass flux (t), default on), shinhong_ke_dissipation (tke dissipation heating, default off). The code is moved to shared MMM-physics repository, and available in phys/physics_mmm after compilation. (#2286) Details

  • Orographic gravity drag option gwd_opt = 1 is updated. Other added options are gwd_dx_factor = 2 (effective grid size) and gwd_if_nonhyd = .true. (nonhydrostatic effect option). Requires the use of orographic fields from WPS code updates (wrf-model/WPS#281) when using this option. (#2285) Details

  • Added a scale-aware turbulent orographic form drag option (kim_tofd) in revised MM5 surface layer scheme. The default value for the option is off and it would increase surface drag. Use this new option with care. Requires the use of var2 field from WPS code updates (wrf-model/WPS#281) when using this option. (#2284) Details

  • Coupling with refactored Noah-MP v5.1.2. This new version of NoahMP has a few new options and improvements compared to the previous Noah-MP v4.7 in WRF v4.7.1. (#2268) Details

  • New elements for single-layer urban canopy model (UCM): addition of urban ground vegetation and street trees into the single-layer UCM.
    This extension is based on the following two manuscripts in development.
    Huang, Y., Wang, C., & He, C: Integrating nature-based solutions into the WRF-urban modeling system (in preparation).
    Wang, C., Huang, Y., Miller, D. L., Katz, D., & Ghosh, A. K: Analytical view factors for urban canopy models with trees: model development and case study in New York City (in preparation). (#2272) Details

  • The MYNN-EDMF submodule has been updated to be consistent with the updated NOAA Tech Note

    • revised subgrid clouds option (bl_mynn_cloudpdf = 2) improves the low-level clouds.
    • improve the scale-awareness as well as the underlying physical representation of downdrafts.
    • a handful of related revisions/tunings was made to improve low level jet structures in stable conditions for several WFIP3 cases.
    • update to mixing of anthropogenic aerosols

    Beware of the new MYNN-EDMF-specific options (bl_mynn_mixaerosols, bl_mynn_mixnumcon, and bl_mynn_mixscalars). Their defaults may not be suitable for your research/applications, but in general, we suggest to use this options and set scalar_pblmix=0 and tracer_pblmix=0, since the MYNN can perform the associated nonlocal mixing.
    (#2267) (#2336) (#2291) (#2319) Details

  • The MYNN surface layer scheme has been updated to the new modularized submodule version. It has been decomposed into 3 different modules for land, water, and ice. New MYNN-specific options (sf_mynnsfc_sfcflux_land and sf_mynnsfc_sfcflux_water) have been added to replace the shared options (iz0tlnd and isftcflx) that carried different meaning for different surface layer schemes. (#2277) (#2290) (#2311) Details

  • Coupling the Community Fire Behavior model (Jimenez et al., 2024): https://gmd.copernicus.org/preprints/gmd-2024-124/gmd-2024-124.pdf (#2279) (#2315) Details

  • The Grell–Freitas (GF) cumulus convection scheme has been further developed as the Grell–Freitas–Li (GFL) submodule, which is implemented consistently across WRF, MPAS, and CCPP. Major updates include improved aerosol–convection interactions, several simplified approaches for cold-pool parameterization, and a new scale-awareness feature with subsidence spreading. References: Li, H., G. Grell, and Freitas, S. (2026): Aerosol-dependence of cumulus convection in the United Forecast System (UFS) Weather Model, to be submitted. Grell, G., S., Freitas, and Li, H. (2026): A New Scale Aware Technique for Convective Parameterizations, to be submitted. (#2269) (#2314) Details

  • TEMPO is the Thompson-Eidhammer Microphysics Parameterization for Operations. (#2270) (#2293) (#2302) Details

    TEMPO lives here: https://github.com/NCAR/TEMPO and technical documentation lives here: https://ncar.github.io/TEMPO/.

    TEMPO specific release notes are here:
    https://github.com/NCAR/TEMPO/releases/tag/tempo_v3.0.0
    TEMPO version 3.0.0 is the current release version.

    In WRF, supported namelist options include tempo_aerosolaware==1 to use the aerosol-aware version, and tempo_hailaware==1 to use the hail-aware version. Both options are off by default.

    Info on table building can be found here: https://ncar.github.io/TEMPO/program/build_tables.html

    Prebuilt tables are available from from the TEMPO/tables directory (permalink) (this table is already in the WRF/run directory):
    TEMPO/tables/ccn_activate.bin

    The larger tables are available via a NOAA server, and can be obtained with wget:

    wget -q https://gsl.noaa.gov/thredds/fileServer/retro/jensen/qr_acr_qg_data_tempo_v3
    wget -q https://gsl.noaa.gov/thredds/fileServer/retro/jensen/qr_acr_qs_data_tempo_v3
    wget -q https://gsl.noaa.gov/thredds/fileServer/retro/jensen/freeze_water_data_tempo_v3
    

Diagnostics

  • CORDEX WRF First version (v1.3) of the module was accompanied by an article in GMD: (#2245) (#2322) Details
    Lluís Fita, Jan Polcher, Theodore M. Giannaros, Torge Lorenz, Josipa Milovac, Giannis Sofiadis, Eleni Katragkou and Sophie Bastin, 2019: CORDEX-WRF v1.3: development of a module for the Weather Research and Forecasting (WRF) model to support the CORDEX community, Geosci. Model Dev., 12, 1029-1066, 2019, doi 10.5194/gmd-12-1029-2019

    Current version of the module is v.3 and it provides about 150 new diagnostics a new section in the namelist.input labelled &cdxwrf with new parameters. Outputs are grouped in 3 files:

    • wrfcdx_d<domain>_<date>: main output file at auxhist19 with most of the variables
    • wrfhfcdx_d<domain>_<date>: high-frequency (e,g, 10 minutes) output file at auxhist18 only for RAIN and COLMAX implemented to assist the tracking convective systems
    • wrfpress_d<domain>_<date>: p-level interpolated variables at auxhist23 with the additional variables

    You can find more details in the CDXWRF WIKI

  • Corrected a bug in the WRF time series output, when solar_diagnostics is activated, where the last variable (ts_swddnic2) was written in a separate record. TS files now correctly includes all the 55 variables on the same record. (#2265) Details

Chemistry

  • Fix calculation of dry air density in module_chem_utilities.F. The bug had a very minor effect. (#2185) Details

Hydro

  • Hydro bug fixes plus modifications to add initial support for gage-assisted diversions in channel routing, which requires a new optional Diversion netCDF parameter file. This adds a C compiler dependency (#2263) Details

Software

  • Critical bug fix of core uninitialized values causing undefined behavior. Common manifestation of bug was model hangs during first restart write. (#2300) Details
  • Critical bug fix to ensure clearing of data handle upon freeing. Common manifestation of bug was sudden model crash when reading auxinput data. (#2292) Details
  • Add MMM-physics as a git submodule (#2282) Details
    • Note: All submodules in WRF are now tracked with git submodules, and no longer uses manage_externals
  • CMake DA Core : WRF CMake build can now build base DA core (not 4DVAR) (#2092) Details
  • CMake PnetCDF Find Package implemented : WRF CMake build can now build using pnetcdf (#2145) Details
  • CMake build better nf-config libdir detection : Fix library finding issue with older versions of netcdf-fortran (#2161) Details
  • CMake check system for underscore requirements between C and Fortran : Replaces hard-coded underscore specification in stanza for CMake builds (#2091) Details
  • Fix relative pathing for tuv_kpp initial code generation (#2256) Details
  • Fix WRF-CHEM errors for CCE build (#2253) Details
  • Fix a seg fault error due to early deallocation of array dz8w for diag_nwp2=2 option in start_em.F. (#2240) Details
  • Bug fix for registry path length checks when doing out-of-source code generation (#2136) Details
  • Fix typo in the AOCC stanza in arch/configure.defaults for vectorization. (#2335) Details

Bug Fixes

  • Fix floating point exception in phys/module_mp_radar.F related to new variables in UDM scheme (#2249) Details
  • Fix a missed variable initialization and missed hail deposition term in ice generation for UDM microphysics scheme. (#2309) Details
  • Fix NTU microphysics floating-point exception caused by using value before being computed (#2317) Details
  • Correct local (grid cell) wind speed to free wind speed using axial induction correction proposed by Vollmer et al. (2024) https://doi.org/10.5194/wes-9-1689-2024 in Fitch wind farm parameterization. The fix can be turned off by using windfarm_induction = 0. (#2242) Details
  • Fix fractional year calculation and a parameter used in the reference equation for Equation of Time. (#2334) Details
  • Corrected the WetBulbTemp dewpoint temperature unit label to Celsius in comments. (#2280) Details
  • Fix a bug for gravitational settling of the ash, and adds new capabilities to simulate volcanic eruptions. (#2168) Details
  • Fix an issue with not being able to execute idealized initialization program of tropical cyclone case with MPI. (#2295) Details

Miscellaneous

  • Change the surface layer option in tropical suite from old MM5 option (sf_sfclay_physics = 91) to revised MM5 option (sf_sfclay_physics = 1). (#2278) Details
  • Fix typo in Registry.EM_COMMON and README.namelist (Xiananjiang to Xinanjiang) (#2289) Details
  • Fix units description of GW drag diagnostic variables dusfcg, dvsfcg, dtaux3d and dtauy3d. (#2261) Details
  • em_les namelist e_vert now consistent across domains (#2274) Details
  • Instruct GitHub to create empty, instead of incomplete, release tarballs (via .gitattributes) (#2155) Details
  • Use proxy workflow and commit statuses to record testing results for GitHub Actions Workflows (#2143) Details
  • WRF Coop em_real Tests Using SANE Workflows (#2264) Details

NOTE: This release of WRF is coupled to a newew version of WPS v4.7.0. To make use of new features please use of WPS v4.7.0 or greater.

NOTE!!!! : If downloading the files from the section below, please choose either the v4.7.0.tar.gz file, or the v4.7.0.zip file. DO NOT choose those named "Source Code." They do not include the mandatory submodules needed for compiling WRF and are deliberately forced to be empty.

Atmosphere - Meteorological Observation and Forecast - Fortran
Published by islas 14 days ago

Arena - v2.5.0

What's Changed

New Contributors

Full Changelog: https://github.com/openforis/arena/compare/v2.4.11...v2.5.0

Biosphere - Biodiversity Citizen Science - JavaScript
Published by SteRiccio 14 days ago

fairchem - fairchem-core-2.21.0

What’s Changed

  • bind config to runner in ray entrypoint (#1995) @lbluque

New Features / Enhancements

  • Ray batch serving small improvements (#2006) @zulissimeta
  • added mass to AtomicData (#2018) @bkmi
  • Allow mixed PBC (#2013) @lbluque
  • Unify ray serve (#1931) @lbluque
  • Add spatial partitioning for graph parallel atom distribution (#1984) @rayg1234

Renewable Energy - Hydro Energy - Python
Published by github-actions[bot] 14 days ago

clisops - v0.18.0

New Features

  • Added support for a data mask in subset_gridpoint where the subsetted grid points but be within the mask (True) (#493).
  • Allows choice between using true world distance (distance) or nearest neighbour based on lat, lon (geographic) methods for subsetting both regular and irregular grids (#493).

Bug Fixes

  • The regrid.ipynb notebook had malformed Python examples that were causing issues when building with sphinx-codeautolink. The issues have been addressed. (#498).

Breaking Changes

  • Default method for subset_gridpoint using regular lat,lon grids is now distance instead of previously employing the equivalent of the new geographic method (#493).
  • Many development dependencies have been updated to more modern versions; pytest (v9.0+), sphinx (v8.2+), matplotlib (v3.8+), tox (v4.52.0+) and others. (#498).
  • The pin on numpy (<2.3.0) has been lifted. (#498).

Internal Changes

  • Added a workflow to automatically accept patch and minor updates to CI dependencies via Dependabot. (#479).
  • Adjusted GitHub Workflows security by constraining token and job permissions to stricter defaults. (#498).
  • pre-commit has been replaced by prek. prek is a Rust-built reimplementation of pre-commit that runs very fast and is low on resources. (#498).
  • sphinx-autobuild is now a development dependency, used for the $ make servedocs recipe (make livehtml). (#498).
  • pytest-timeout is now a development dependency, used to prevent stalled tests from freezing CI builds (timeout default: 300 seconds). (#498).
  • pretty-format-json hook for pre-commit has been enabled. (#498).
  • ReadTheDocs build images have been updated to modern versions: OS ubuntu-26.04 and Python miniforge3-25.11. (#498).
  • Tests marked "outdated" have been removed from the testing suite. (#498).

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

CloudDrift - v0.48.0

What's Changed

Full Changelog: https://github.com/Cloud-Drift/clouddrift/compare/v0.47.0...v0.48.0

Atmosphere - Atmospheric Dispersion and Transport - Python
Published by philippemiron 14 days ago

ONEARMY - v2.131.0

2.131.0 (2026-06-08)

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 14 days ago

open-dpp - @open-dpp/dto@2.4.0

Minor Changes

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

open-dpp - @open-dpp/api-client@2.4.0

Minor Changes

Patch Changes

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

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

openfoodfacts-server - v2.94.0

2.94.0 (2026-06-08)

Features

Bug Fixes

  • add U+25CF (●) to ingredient separators for Japanese labels (#13691) (ed740f6)
  • backward compatibility for API ask for refactored tags fields (#13689) (345779e)
  • Issues found during STO to JSON migration (#13714) (ccfee79)
  • nginx priority map (#13723) (4068a1e)
  • reset to-be-exported on pro platform (#13703) (ac8cc84)
  • use recipe estimator for ingredient analysis (and test tool) (#13715) (1768b7d)

Consumption - Agriculture and Nutrition - HTML
Published by openfoodfacts-bot 15 days ago

open-dpp - @open-dpp/dto@2.3.0

Major Changes

  • Realign the @open-dpp/* fixed version group above npm's burned version range so @open-dpp/api-client can publish again (its 1.x2.2.x line is burned on npm). @open-dpp/dto@1.0.0 already published; this entry moves the shared group to 2.3.0. See ADR 0001.

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

open-dpp - @open-dpp/api-client@2.3.0

Major Changes

  • Realign the @open-dpp/* fixed version group above npm's burned version range. @open-dpp/api-client@1.0.0 — and the whole 1.x2.2.x line — was published in 2025, then unpublished; npm permanently reserves those numbers, so 1.0.0 could never publish again and the package stayed stuck at 0.6.0. The changes staged under 1.0.0 below ship here as 2.3.0. See ADR 0001.

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

Home Assistant Glow - v5.0.0

What's changed

Check also the release blog: https://glow-energy.io/blog/release-5.0.0

Build with ESPHome version: 2026.5.3

To receive a notification on new releases, click on Watch > Custom > Releases on the top.

🚨 Breaking changes

  • #993 refactor: Simplify sensor names in basis and pulse_meter configurations @klaasnicolaas

✨ New features

  • #992 Add configurable pulse meter internal filter @klaasnicolaas

🐛 Bug fixes

  • #964 fix: Update pulse rate label to use correct fraction format @klaasnicolaas

🚀 Enhancements

  • #964 fix: Update pulse rate label to use correct fraction format @klaasnicolaas
  • #993 refactor: Simplify sensor names in basis and pulse_meter configurations @klaasnicolaas

🧰 Maintenance

  • #965 fix: docs anchors, gtag runtime handling, and TypeScript config @klaasnicolaas
  • #984 ci: Use build-action substitutions input for package source overrides @klaasnicolaas
  • #991 feat: Add project versioning for pull requests in firmware build @klaasnicolaas

⬆️ Dependency updates

  • #928 ⬆️ Lock file maintenance @renovate[bot]
  • #931 ⬆️ Update dependency @easyops-cn/docusaurus-search-local to v0.55.1 @renovate[bot]
  • #932 ⬆️ Lock file maintenance @renovate[bot]
  • #930 ⬆️ Update actions/upload-artifact action to v7 @renovate[bot]
  • #929 ⬆️ Update actions/download-artifact action to v8 @renovate[bot]
  • #933 ⬆️ Update actions/setup-node action to v6.3.0 @renovate[bot]
  • #934 ⬆️ Update release-drafter/release-drafter action to v6.4.0 @renovate[bot]
  • #935 ⬆️ Lock file maintenance @renovate[bot]
  • #936 ⬆️ Update actions/download-artifact action to v8.0.1 @renovate[bot]
  • #937 ⬆️ Update esphome/build-action action to v7.2.0 @renovate[bot]
  • #938 ⬆️ Update release-drafter/release-drafter action to v7 @renovate[bot]
  • #939 ⬆️ Lock file maintenance @renovate[bot]
  • #940 ⬆️ Update release-drafter/release-drafter action to v7.1.0 @renovate[bot]
  • #941 ⬆️ Update release-drafter/release-drafter action to v7.1.1 @renovate[bot]
  • #942 ⬆️ Update dependency @fortawesome/react-fontawesome to v3.3.0 @renovate[bot]
  • #943 ⬆️ Lock file maintenance @renovate[bot]
  • #946 ⬆️ Update actions/deploy-pages action to v5 @renovate[bot]
  • #945 ⬆️ Update actions/configure-pages action to v6 @renovate[bot]
  • #947 ⬆️ Lock file maintenance @renovate[bot]
  • #948 ⬆️ Lock file maintenance @renovate[bot]
  • #952 ⬆️ Update dependency react-dom to v19.2.5 @renovate[bot]
  • #956 ⬆️ Update release-drafter/release-drafter action to v7.2.0 @renovate[bot]
  • #958 ⬆️ Update actions/github-script action to v9 @renovate[bot]
  • #959 ⬆️ Update actions/upload-pages-artifact action to v5 @renovate[bot]
  • #957 ⬆️ Update actions/upload-artifact action to v7.0.1 @renovate[bot]
  • #955 ⬆️ Update dependency @docusaurus/types to v3.10.0 @renovate[bot]
  • #954 ⬆️ Update dependency @docusaurus/tsconfig to v3.10.0 @renovate[bot]
  • #950 ⬆️ Update dependency @docusaurus/module-type-aliases to v3.10.0 @renovate[bot]
  • #953 ⬆️ Update dependency @docusaurus/preset-classic to v3.10.0 @renovate[bot]
  • #949 ⬆️ Update dependency @docusaurus/core to v3.10.0 @renovate[bot]
  • #962 ⬆️ Update actions/setup-node action to v6.4.0 @renovate[bot]
  • #961 ⬆️ Update dependency @fortawesome/react-fontawesome to v3.3.1 @renovate[bot]
  • #944 ⬆️ Update dependency typescript to v6 @renovate[bot]
  • #967 ⬆️ Update release-drafter/release-drafter action to v7.2.1 @renovate[bot]
  • #969 ⬆️ Update dependency @docusaurus/module-type-aliases to v3.10.1 @renovate[bot]
  • #968 ⬆️ Update dependency @docusaurus/core to v3.10.1 @renovate[bot]
  • #970 ⬆️ Update dependency @docusaurus/preset-classic to v3.10.1 @renovate[bot]
  • #971 ⬆️ Update dependency @docusaurus/tsconfig to v3.10.1 @renovate[bot]
  • #960 ⬆️ Lock file maintenance @renovate[bot]
  • #972 ⬆️ Update dependency @docusaurus/types to v3.10.1 @renovate[bot]
  • #974 ⬆️ Update dependency react-dom to v19.2.6 @renovate[bot]
  • #975 ⬆️ Update klaasnicolaas/action-pr-labels action to v3.1.1 @renovate[bot]
  • #976 ⬆️ Update release-drafter/release-drafter action to v7.3.0 @renovate[bot]
  • #977 ⬆️ Lock file maintenance @renovate[bot]
  • #978 ⬆️ Update actions/stale action to v10.3.0 @renovate[bot]
  • #980 ⬆️ Lock file maintenance @renovate[bot]
  • #981 ⬆️ Update release-drafter/release-drafter action to v7.3.1 @renovate[bot]
  • #982 ⬆️ Update esphome/build-action action to v7.3.0 @renovate[bot]
  • #986 ⬆️ Update dependency @easyops-cn/docusaurus-search-local to v0.55.2 @renovate[bot]
  • #988 ⬆️ Update dependency react-dom to v19.2.7 @renovate[bot]
  • #989 ⬆️ Update actions/checkout action to v6.0.3 @renovate[bot]

Full Changelog: https://github.com/klaasnicolaas/home-assistant-glow/compare/4.4.0...5.0.0

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

goat - v2.4.35 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.34 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.34...v2.4.35

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

QSDsan - v1.5.3

What's Changed

Full Changelog: https://github.com/QSD-Group/QSDsan/compare/v1.5.2...v1.5.3

Industrial Ecology - Life Cycle Assessment - Python
Published by github-actions[bot] 16 days ago

EnergyPlus - Longwave Rad Actuators Test Build 2

Test build for internal testing of a feature related to long wave radiation EMS actuators, including the follow-up work on https://github.com/NatLabRockies/EnergyPlus/pull/11621. This build will be deleted.

p.s. It appears GitHub has updated the release label options here to include a "None" option. Previously, there were two checkboxes for a pre-release and the latest release; however, the checkboxes behaved like radio buttons - i.e. either-or, instead of multi-choice. They now have gone to radio buttons for "None," "Pre-release," and "Latest," which is a cleaner interface, IMO. I'm deploying this with the "None" option to see whether that has any consequences.

Consumption - Buildings and Heating - C++
Published by mitchute 17 days ago

ONEARMY - v2.130.1

2.130.1 (2026-06-05)

Bug Fixes

  • iOS doesn't support maskable pwa icons (8719c47)

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 18 days ago

ANYstructure - ANYstructure 6.1.1

What's new in 6.1.1

  • Simplified GUI input option.
  • Weld/weight optimization.
  • Cost optimization.
  • 3D representation of panels/cylinders.
  • Improved Semi-analytical buckling implementation.
  • Optimization of stiffened plate with girder.
  • Bug fixing.
  • Export 3D shell model.
  • SciPy Differential Evolution Optimizer added.

Renewable Energy - Wind Energy - Python
Published by audunarn 18 days ago

ONEARMY - v2.130.0

2.130.0 (2026-06-05)

Bug Fixes

  • keep email after failed sign-in attempt (#4753) (2c01a19)
  • questions horizontal scroll (5e632d2)
  • try pwa maskable icons (2240c16)

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 18 days ago

ONEARMY - v2.129.2

2.129.2 (2026-06-05)

Bug Fixes

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 18 days ago

eCalc - v13.7.9

13.7.9 (2026-06-05)

Bug Fixes

  • libecalc: compute INDIVIDUAL_ASV_RATE per-stage boundary against realistic upstream inlet (#1597) (4425d9a)
  • libecalc: reset recirculation inside AntiSurgeStrategy.apply() (#1594) (b9587d2)
  • libecalc: surface stonewall failure from upstream-choke pressure control (#1599) (1bad9b7)
  • libecalc: tighten Solution.combine semantics and clean up OutletPressureSolver (#1609) (1e88d67)
  • libecalc: use speed-aware stonewall bounds in common-ASV evaluation (#1605) (194a505)
  • process: binary search returns last accepted value instead of arbitrary midpoint (#1589) (3a0ddb0)

Miscellaneous Chores

  • add process simulation yaml builder (#1603) (e0e6544)
  • add process unit yaml builders (#1600) (0c0f3ba)
  • add yaml builders for inlet streams and predefined fluid models (#1601) (c25c15a)
  • bug in yaml mapper assumed process_units had name attribute (#1598) (d733f96)
  • skip blowing up exception when it is expected (#1595) (4cd7c0d)
  • upgrade dependencies for week 23. Auto-generated by devCalc (#1606) (7f19646)

Code Refactoring

  • extract production solver assembly from test-only builder (#1596) (b2df1db)
  • libecalc: lift inline recirculation resets into PressureControlStrategy.reset() (b9587d2)
  • replace yaml compressor stages with process units in pipeline (#1591) (9f47f9e)

Tests

  • use fixture factories instead of functions directly (46f5f75)

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

icechunk - v2.0.6

What's Changed

Full Changelog: https://github.com/earth-mover/icechunk/compare/v2.0.5...v2.0.6

Climate Change - Climate Data Standards - Rust
Published by li-em 18 days ago

EcoLogits - 0.10.2

What's Changed

Full Changelog: https://github.com/mlco2/ecologits/compare/0.10.1...0.10.2

Consumption - Computation and Communication - Python
Published by samuelrince 18 days ago

Monitorfish - v1.112.2

  • Fix CI YAML file

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.1...v1.112.2

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

Monitorfish - v1.112.1

What's Changed

🎉 Fonctionnalités

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.112.0...v1.112.1

Biosphere - Marine Life and Fishery - HTML
Published by VincentAntoine 18 days ago

PyBaMM - v26.6.0.0

Breaking changes

  • Electrode electronic conductivity supplied as a function must now accept (stoichiometry, temperature). A constant value is unaffected, but a conductivity function previously written as f(temperature) must be updated to f(stoichiometry, temperature); supplying a temperature-only function now raises a clear error pointing at the new signature. (#5556)

Features

  • Electrode electronic conductivity can now be specified as a function of stoichiometry (in addition to temperature) for all lithium-ion and sodium-ion models. (#5556)
  • Unified PyBaMM serialisation onto a single safe-or-loud encode/decode kernel. Serialisation now either round-trips or raises SerialisationError, never silently dropping a field, across the expression tree, discretised models, meshes, solvers, experiments and parameter values. There is one canonical on-disk format, and files saved by older PyBaMM versions continue to load via backward-compatible readers. Note that save_model(model, mesh=...) now raises for meshes containing submeshes that cannot round-trip (those without a _from_json hook, e.g. Exponential1DSubMesh); previously the save succeeded but the mesh could not be reloaded. Derived caches such as Array.entries_string are no longer stored on disk and are recomputed from the stored entries on load, so a stale value in a legacy file is replaced by the recomputed one. (#5560, #5561)

Bug fixes

  • convert_symbol_from_json is strict again: raw strings, lists, and dicts without a $type/type tag raise SerialisationError (restoring pre-kernel validation) instead of being returned unchanged. Constructor-style legacy nodes ({"type": ..., "children": [...]} without name/domains) keep decoding via the class constructor, as the pre-kernel reader did. Decoding a node missing a key its codec requires now raises a descriptive SerialisationError instead of a bare KeyError, and SerialisationError is importable as pybamm.SerialisationError. (#5567)
  • Fixed legacy geometry deserialisation over-stripping the symbol_ key prefix as a character set, which raised KeyError for variable names composed of those characters (e.g. the current-collector variable y). (#5561)
  • Fixed unified experiment mode using excessive memory and time for experiments with many cycles. (#5554)
  • Fixed unified experiment mode inlining every step's equations; switching now dispatches via a casadi.Function.conditional switch. (#5562)

Optimizations

  • Fixed two O(N²) slowdowns in long experiment/ageing simulations where Solution.__add__/copy re-did whole-accumulation work on every step append: time-series validation now re-checks only the joined boundary, and Solution.observable is computed lazily. (#5550)
  • Experiment/ageing accumulation now folds per-cycle solutions in a single O(N) pass via Solution.from_sub_solutions, removing the residual O(N²) list concatenation in repeated Solution.__add__, and fixes an aliasing bug where __add__ mutated the left operand's sensitivities. (#5551)

Energy Storage - Battery - Python
Published by BradyPlanden 18 days ago

OceanBioME.jl - v0.17.6

OceanBioME v0.17.6

Diff since v0.17.5

Oceananigans compat

Merged pull requests:

  • CompatHelper: bump compat for Oceananigans to 0.110, (keep existing compat) (#380) (@github-actions[bot])

Emissions - Carbon Capture - Julia
Published by github-actions[bot] 19 days ago

stglib - v1.12.1

Full Changelog: https://github.com/USGS-CMG/stglib/compare/v1.12.0...v1.12.1

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by dnowacki-usgs 19 days ago

climaemet - climaemet 1.6.0

  • Documentation, user-facing messages, and internal code were reviewed and
    refactored with AI assistance to improve consistency, maintainability, wording
    and roxygen2 tag ordering.
  • Tests now rely less on live AEMET API calls and cover additional
    forecast-parsing branches using local fixtures.
  • Requests now use a configurable timeout via options(climaemet_timeout = 60).
  • aemet_api_key() now uses tools::R_user_dir() for persistent API key
    storage. Existing users are migrated automatically to the new location,
    ensuring backward compatibility.
  • aemet_forecast_fires() has been updated to support the new API, which now
    returns six risk levels. Risk values are returned as named factors instead of
    numeric level codes.

What's Changed

Full Changelog: https://github.com/rOpenSpain/climaemet/compare/v1.5.1...v1.6.0

Climate Change - Climate Data Access and Visualization - R
Published by dieghernan 19 days ago

Monitorfish - v1.112.0

What's Changed

🎉 Fonctionnalités

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.111.0...v1.112.0

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

MARIO - v1.0.0

v1.0.0 is a major step forward from the 0.3.x series. MARIO has been substantially reorganized around a clearer architecture and a more explicit public API centered on Database, with legacy logic moved out of core/tools into dedicated api, compute, ops, parsers, views, storage, and internal modules. The release also expands compute capabilities with stronger SUT support, product-based technology assumptions, new trade-analysis APIs, built-in GHG calculation profiles, exploded multiplier/footprint accessors, and a new unified Database.plot(...) workflow.

Compared with 0.3.x, v1.0.0 also significantly broadens data handling. Parsing and export are now unified across Excel, TXT, and Parquet; richer matrix layouts are supported; direct parser coverage has been expanded across major datasets; and downloaders have been cleaned up into a clearer interface. Structural operations were upgraded as well, including a refactored add_sectors workflow, better aggregation behavior, support for VY, and improved handling of SUT assumptions and transformations. Finally, the release comes with a much larger automated test suite, stronger regression coverage, pandas 3 compatibility fixes, and a broad documentation refresh.

Industrial Ecology - Input Output Model - Python
Published by LorenzoRinaldi 19 days ago

SlideRule Earth - v5.4.3

see https://docs.slideruleearth.io/developer_guide/release_notes/release_notes.html

Sustainable Development - Environmental Satellites - C++
Published by jpswinski 19 days ago

OceanBioME.jl - v0.17.5

OceanBioME v0.17.5

Diff since v0.17.4

  • fixes issue with alkalinity formulation

Merged pull requests:

  • Fixes alkalinity formulaiton (#365) (@jagoosw)

Closed issues:

  • LOBSTER alkalinity formulation is wrong (#364)

Emissions - Carbon Capture - Julia
Published by github-actions[bot] 19 days ago

SESMG - v1.3.0

Changelog v.1.3.0

v1.2.1 -> 1.3.0

Major: PV calculation

  • drop feedinlib and directly use pvlib
    • database: select PV modules and inverters from different databases (names aligned with the provided tables in the same folder).
    • datasheet: define PV modules via datasheets in the model definition.
  • inverter logic
    • Introduced required dc_ac_ratio parameter
    • Inverter limits are handled via this ratio so that all inverters can, in principle, be used

Minor

  • GUI
    • updated links
    • show system graph when modelling errors occurs
    • show extended error message
    • interrupt simulation via stop button
  • Solar thermal
    • Solar thermal feed-in is now calculated as in the documentation, instead of using only the collector efficiency as feed-in.
  • Model definition / Examples
    • New parameters added to the model definition (especially for PV and dc_ac_ratio)
  • Update documentation
  • Update examples

Bug fixes

  • Linux installation
  • remove unused files
  • result folder creation (first run Pareto)
  • documentation links

Caution:

  • Urban District Upscaling Tool incompatible with 1.3.0 yet

Energy Systems - Renewable Energy Integration - Python
Published by jtock 20 days ago

ClimaCore - v0.14.53

ClimaCore v0.14.53

Diff since v0.14.52

📢 API Changes:

🚀 Features

📑 Documentation

🐛 Fixes

  • Bug fix for broadcasting gpu errors 2517. 2518
  • Make specialized shared memory-based tridiagonal solver mask aware 2518. 2518

Climate Change - Earth and Climate Modeling - Julia
Published by github-actions[bot] 20 days ago

openfoodnetwork - v5.5.0 Macaron

What's Changed

Significant changes 🚀

User-facing changes 👀

API changes ⚠️

Technical changes 🛠️

Dependencies 📦

Full Changelog: https://github.com/openfoodfoundation/openfoodnetwork/compare/v5.4.17...v5.5.0

A macaron or French macaroon is a sweet meringue-based confection made with egg white, icing sugar, granulated sugar, almond meal, and often food colouring.

Consumption - Agriculture and Nutrition - Ruby
Published by rioug 20 days ago

CloudMicrophysics.jl - v0.36.0

CloudMicrophysics v0.36.0

Diff since v0.35.0

Breaking changes

  • Changing the interface to allow the user to specify which processes enter the bulk microphysics tendency and to switch between different parameterization options for some of those processes.
  • Reworking the parameters struct to add the option struct that carries parameters relevant to the above chosen parameterizations
  • Refactoring the bulk microphysics tendency to reduce the code duplication between the linearized and non-linearized versions
  • Adding temperature dependent cloud ice formation and cloud melt options

Merged pull requests:

  • Bump codecov/codecov-action from 5.5.2 to 6.0.0 (#709) (@dependabot[bot])
  • Delete unused derivatives (#712) (@trontrytel)
  • Adding microphysics options to bulk tendency (+ temperature dependent cloud ice formation) (#714) (@trontrytel)
  • Add dev guides (#715) (@tapios)
  • Bump codecov/codecov-action from 6.0.0 to 6.0.1 (#716) (@dependabot[bot])
  • Aj/bulk micro options part2 (#717) (@trontrytel)
  • Cleanup in 1M bulk tendency (#718) (@trontrytel)
  • Address comments from previos PR (#719) (@trontrytel)
  • Make a release (#722) (@trontrytel)

Closed issues:

  • Delete all the derivative code (#701)
  • Add more documentation to _linearize and _linearized_implicit_step in BMTs (#720)

Atmosphere - Atmospheric Chemistry and Aerosol - Julia
Published by github-actions[bot] 20 days ago

goat - v2.4.34 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.33 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.33...v2.4.34

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

IMPROVER - 1.18.13

What's Changed

Full Changelog: https://github.com/metoppv/improver/compare/1.18.12...1.18.13

Atmosphere - Meteorological Observation and Forecast - Python
Published by cpelley 20 days ago

Monitorfish - v1.111.0

What's Changed

🎉 Fonctionnalités

Full Changelog: https://github.com/MTES-MCT/monitorfish/compare/v1.110.0...v1.111.0

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

Green Algorithms - v3.1

What’s new

UI

  • Users can now enter a custom carbon intensity value instead of selecting a location.
  • The carbon intensity value used in calculations is now displayed beneath the location selector, along with a link to the corresponding source CSV file so users can view the dataset from which the value was retrieved. This is compatible with all older versions as well.
  • A language translation selector has been added to the header, on the left. Currently only English is available, but the translation framework is in place and can be extended to support additional languages in the future (and PRs are welcome on this!).

Data

  • Carbon intensity values are now sourced from Electricity Maps 2024 data, providing greater geographical coverage and finer regional granularity compared to previous versions.
  • The calculator now uses a centralised Green Algorithms data repository that stores versioned data, including carbon intensity, CPU/GPU information, data centres, and reference values (e.g. travel and tree equivalences, memory, power usage).
  • The CPU and GPU lists has been updated: 83 CPUs (including 7 from Issue #1) and 19 GPUs removed due to incomplete data and new entries added, bringing the total to 152 CPUs and 25 GPUs.

Minor updates

  • The tooltip inside the car distance equivalence box now clarifies what the equivalence represents. This addition is based on a suggestion in Issue #19.
  • Exported CSVs now include a row specifying the unit for each corresponding value. Retro-compatibility with previous csv is ensured.
  • CSV loading error messages are now clearer and more informative.

Bug Fixes

  • The core's default value now correctly updates when the version changes.
  • The carbon and energy units have been corrected in the ‘How to report it?’ section.

Consumption - Computation and Communication - Python
Published by Llannelongue 21 days ago

Deadtrees.earth - v2026.06.02

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.05.27.3...v2026.06.02

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

Sunalyzer - 0.33.0

What's Changed

New Contributors

Full Changelog: https://github.com/BorisBrock/Sunalyzer/compare/0.32.0...0.33.0

Renewable Energy - Photovoltaics and Solar Energy - CSS
Published by BorisBrock 21 days ago

Sunalyzer - 0.32.0

What's Changed

New Contributors

Full Changelog: https://github.com/BorisBrock/Sunalyzer/compare/0.31.0...0.32.0

Renewable Energy - Photovoltaics and Solar Energy - CSS
Published by BorisBrock 21 days ago

Guardian - 3.6.0: top level api convenience methods, policy integrity tests, multifactor authentication, runtime policy parameter editing & other developer API tooling

Highlights

  • Top-level API convenience methods for common Guardian tasks #1987
  • Runtime editing of published policy parameters without creating a new version #5539
  • Multi-factor authentication for Guardian logins #4108
  • Policy Integrity Tests: verify that a policy produces expected document outputs and replay record files to detect failures which could have been caused by iterative policy edits, upgrades, or system changes #5910 #5911 #5912 #5913 #6020 #6002 #6021

Other enhancements

  • Policy block API documentation auto-generated from block configurations #5955
  • Formula Calculation Block (FCB) extended: nested arrays, multiple conditions, special characters in variable names; Formula Linked Definition (FLD) usability improvements #5928 #5980
  • Sub-schema creation and assignment; policy binding fix and disable-rebind option; schema filter/search by ID #4887 #4913 #4919 #4758
  • Expanded API documentation for external developers; Indexer view for external MRV data #5178 #5167
  • External event on token mint failures; extended Python library support; configurable token minting rounding; import search; one-year refresh token default #5108 #5504 #4065 #3378 #4060
  • Schema UI expression placeholder code; Worker Tasks added to permission modal; Dry Run API user listing fix #4905 #4438 #3642
  • Indexer Improvements and contributions (led by Xeptagon): API endpoints for token transfers, block completion events, one-step API user onboarding with auto-generated Hedera account, DID, and keys #5800 #5799 #5795

Fixed Bugs

  • Retry failed mint and transfer operations directly from the policy viewer #5926
  • IPFS misconfiguration no longer causes profile setup to hang indefinitely #5992
  • CustomLogicBlock document mutation in event-driven fan-out scenarios #5953
  • Missing initialization topic creation when INITIALIZATION_TOPIC_ID is not defined #4959
  • Policy publication status page unreachable after navigating away and returning #5695
  • Notification badge off-by-one error during worker task processing #5699
  • Policy export returns 500 when policy name contains non-ASCII characters #6121
  • Manually selected tool not linked when importing policy #6017

Breaking Changes

None in this release.

Known Issues

None identified at time of publication. Please report issues found during RC testing via [GitHub](https://github.com/hashgraph/guardian/issues).

View changes

Emissions - Carbon Offsets and Trading - TypeScript
Published by Pyatakov 21 days ago

WISDEM - Bug fixes, twist optimization and drivetrain

Prepare the minor release v4.2.2, fixing a few different bugs:

  • Fix the twist optimization
  • Add the ability to automatically place spar caps and shear webs
  • Fix inconsistency in diameters and thicknesses of high speed shaft for geared configs
  • Update offsets and widths of anchors according to windIO v2.1

Renewable Energy - Wind Energy - Python
Published by ptrbortolotti 21 days ago

EMMA - targets-cache

Biosphere - Conservation and Restoration - R
Published by adammwilson 21 days ago

xarray-sentinel - v0.9.6rc2 - Beta

Release Candidate after heavy refactor of distribution machinary.

Add draft EOPF product metadata, fix a couple of crashes with newer dependencies.

Sustainable Development - Environmental Satellites - Python
Published by alexamici 21 days ago

BirdNET-Go - Nightly Build nightly-20260601

This release fixes stereo RTSP streams that stopped detecting birds after nightly-20260524, and adds per-stream audio channel selection so you can pick which microphone channel (left, right, or both) each stream uses for detection. Support dump submission from Settings > Support works again (the previous timeout was too short for Raspberry Pi and slow connections). Alert rules can now match against species lists and trigger on new or returning species. A round of multi-model stability fixes makes running BirdNET alongside Perch much more reliable.

New Features

Per-Stream Audio Channel Mode Selection

You can now choose which audio channel each stream uses for bird detection: left, right, or downmix (both channels mixed together). This matters because many IP cameras send stereo audio where only one channel carries the actual microphone signal. Mixing both channels together can reduce detection accuracy due to phase interference between the left and right signals.

A new dropdown in stream settings (both when adding and editing streams) lets you pick the mode. An "Analyze Channels" button captures a few seconds of audio and shows a visual comparison of the energy levels on each channel, with a recommendation for which one to use. If a stereo source is still set to downmix, an orange warning banner appears on the stream card suggesting you select a single channel instead (#3286, #3287, #3300).

Alert Rule Enhancements

Alert rules now support "in list" and "not in list" matching, so you can create a single rule like "notify me only if the species is NOT in my common-bird list" instead of creating dozens of separate rules. A new species novelty system also tracks when each species was last seen, letting you create rules that trigger on genuinely new species (never detected before) or returning species (back after a period of absence) (#3267, #3275 by @keithkml).

Smarter Health Diagnostics

The System Health page is now better at distinguishing a brief glitch from a real problem. Instead of simple error counters, health checks evaluate whether issues are transient or sustained, whether they are getting worse or improving, and how many hours in the evaluation window were affected. The detail panel shows these signals visually with trend indicators and pattern badges, making it easier to decide whether something needs attention (#3289, #3290, #3293).

Lower Memory Usage from Audio Resampling

The audio resampler now reuses memory buffers instead of allocating new ones for every audio frame. In practice, this noticeably reduces BirdNET-Go's total memory consumption and garbage collection overhead, especially on low-powered devices like Raspberry Pi where memory is limited (#3285 by @anyasabo).

Bug Fixes

Audio & Streaming

  • Stereo RTSP streams stopped detecting birds - a regression in nightly-20260524 caused stereo RTSP streams to skip the mono downmix step when the source sample rate already matched the target (both 48 kHz). The audio pipeline received interleaved stereo samples but treated them as mono, effectively halving the sample rate. Visible symptoms: audio sounds slowed down, upper third of the spectrogram is black, and detection rates drop to zero. Fixes #3278, #3277 (#3283).
  • RTSP streams had no connection timeout - the FFmpeg flag for RTSP socket timeouts was incorrect (-timeout instead of -stimeout), so streams had no protection against hanging connections during the TCP connect phase (#3287).
  • HLS live stream played back at quarter speed for high sample rate sources - when capturing at 192 kHz (bat detection), the HLS pipeline skipped an internal downsampling step, causing the browser audio player to play back at roughly 4x slower than real time (#3347).

Range Filter & Multi-Model

  • Perch detections bypassed geographic range filter - with the default range filter setting, Perch species were not filtered by location, allowing out-of-range species to appear in detections and notifications (#3276 by @keithkml).
  • Active Species table empty after uninstalling a model - removing Perch v2 or BirdNET v3.0 could leave behind stale config that silently disabled the range filter entirely, causing detections to run unfiltered with no warning in the UI (#3324).
  • Species count showed ~14,800 species with multi-model - when running BirdNET alongside Perch, the Active Species / Current Species count ignored the range filter threshold for non-primary model species, displaying every species in the database instead of only those in your geographic area (#3326).
  • Stale range filter config persisted after model uninstall - even after the runtime was fixed, the saved config could still show incorrect status in the Species page and heatmap. The config now self-heals on startup (#3327).
  • Duplicate species in analytics with multi-model - insights pages (new arrivals, dawn chorus, phantom species, expected species) showed duplicate entries when both BirdNET and Perch detected the same species (#3294).

Model Reload Stability

  • Crashes and incorrect results during model reload - several race conditions could cause crashes, panics, or stale data when reloading, uninstalling, or reinstalling models while detection was running. Model metadata is now captured atomically during reload, and settings access is synchronized across all concurrent readers (#3329, #3333, #3340, #2933 by @anyasabo).

Health Diagnostics

  • Health status showed "Healthy" when no data was available - the system now correctly reports "Unknown" when diagnostic results are empty, instead of falsely reporting a healthy state (#3308).

Infrastructure & Platform

  • Container startup failed on Kubernetes/OpenShift - running under an arbitrary user ID (common in rootless containers and OpenShift) caused startup failures because the system could not look up user information. Container detection now uses a reliable fallback (#3266 by @bo0tzz).
  • Let's Encrypt certificates lost on every restart - TLS certificates were stored only in memory, so each restart requested a new certificate from Let's Encrypt. This could hit rate limits and cause temporary HTTPS outages (#3319 by @brycesub).
  • Support dump uploads timing out on slow connections - submitting a support dump from Settings > Support could fail on Raspberry Pi or slow networks because the upload exceeded the default 30-second HTTP timeout. The timeout is now 120 seconds (#3301).
  • Unnecessary image lookups wasting API calls - the background image refresh was retrying species that were already confirmed to have no image available, and included species from prediction models that had never actually been detected (#3305 by @keithkml).
  • Noisy error reports from Wikipedia rate limiting - temporary Wikipedia API throttling was generating unnecessary error reports in Sentry; these are now suppressed since they resolve on their own (#3309).
  • "Error opening /proc/self/cgroup" message on macOS - a harmless but confusing error message appeared on non-Linux platforms during container detection (#3193 by @anyasabo).
  • Build setup failed on Raspberry Pi - architecture detection in the Taskfile was incorrect for ARM platforms (#3192 by @anyasabo).

Biosphere - Bioacoustics and Acoustic Data Analysis - Go
Published by tphakala 21 days ago

FlexMeasures - Copy assets, account sources

Summary

Version v0.33 of FlexMeasures adds the ability to copy assets and supports filtering beliefs data by source much better.

Also, we improved many small things as usual. One interesting change is that pushing data into FlexMeasures now is not blocking API handling instances from accepting other requests. Another is more fine-grained monitoring of failed tasks and absent users.

Read more on these features on the FlexMeasures blog.

This release consists of more than 30 PRs:

What's Changed

New Contributors

Full Changelog: https://github.com/FlexMeasures/flexmeasures/compare/v0.32.0...v0.33.0

Energy Systems - Building Energy Monitoring - Python
Published by nhoening 21 days ago

ONEARMY - v2.129.1

2.129.1 (2026-06-01)

Bug Fixes

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 21 days ago

openfoodfacts-server - v2.93.1

2.93.1 (2026-06-01)

Bug Fixes

  • Forest Footprint documentation typo (#13676) (a06c058)
  • keep original unnormalized input values when upgrading non taxonomized fields (#13660) (2040b1a)
  • priority user agent (intake24) and CORS fix for /cgi/search.pl (Albane cohort) (#13628) (a901171)
  • typo in documentation (#13677) (84c9b8c)
  • typo on mismatch (#13675) (5e73db5)

Consumption - Agriculture and Nutrition - HTML
Published by openfoodfacts-bot 22 days ago

OasisLMF - Release 2.5.4

OasisLMF Changelog - 2.5.4

  • #1940 - enhancement/profile check script
  • #1942 - Fix brittle PolNumber backfill in IL input preparation
  • #1947 - enhancement/conversion_tool_speed
  • #1955 - improved quadratic interpolation so it evaluates in a way that's robu…
  • #1957 - Stochastic hazard dynamic footprint
  • #1963 - Update API client for OIDC M2M
  • #1964 - perf(gulmc): replace numba dicts with precomputed array-backed structures
  • #1967 - Fix for stalled runs on V2 workers
  • #1968 - improve numerical stability in variance calculations and add unit tests
  • #1969 - Improved bash error detection
  • #1971 - Fix IL merge failure when layers sharing a CondTag mix %-TIV and flat terms
  • #1973 - Add portfolio complexity metrics to oasislmf exposure run
  • #1974 - Improve rtree builtin
  • #1975 - Fix platform checks for external PRs
  • #1979 - Feature/hazard selection dynamic
  • #1980 - Round progress bar down
  • #1985 - port receiving data from non oasis source wont crash
  • #1987 - fix/pytools-empty-inputs
  • #1992 - Speed up summarypy read_buffer
  • #1993 - fix broken docs link
  • #1994 - fix summarypy missing dtypes
  • #1997 - Fix for ci error
  • #1999 - fix/input_gen_status

OasisLMF Notes

fixes to default profile + tests - (PR #1940)

  • removed non OED fields
    • PolLimit
    • CondNumber
  • Fixed Cyber names
  • created tests to check default_acc_profile and default_loc_profile with the following checks:
    • check field is in OEDSpec (exceptions for BI Type fields and Cyber TIV fields)
    • check ProfileElementName matches key (except Cyber TIV field)

enhancement/conversion_tool_speed - (PR #1947)

Update conversion tools for speed

Rewrites the Python converter implementations (csvtobin, bintocsv, bintoparquet, parquettobin) to reduce peak memory and improve throughput. Changes apply across all converter directions.

What changed:

The core change across all converters is chunked processing: CSV is read in fixed DEFAULT_BUFFER_SIZE chunks via iter_csv_as_ndarray(), binary output is written through pre-allocated batch buffers (_BATCH_ROWS), and parquet I/O streams via PyArrow's native ParquetWriter/iter_batches(). Binary inputs switch from np.fromfile to np.memmap. Hot-path encoding in fm, gul, and summarycalc csvtobin uses Numba JIT to build the binary stream format per chunk; validation state is carried across chunk boundaries as scalars rather than accumulating full-file structures.

Behaviour changes worth noting:

  • Vulnerability csvtobin: three validation checks removed — damage_bin_id contiguity, damage_bin_id starts at 1, and intensity_bin_id contiguity within each vulnerability. These no longer run even when no_validation=False. The suppress_int_bin_checks=False global intensity-bin consistency check is also replaced by a rolling per-vulnerability check, so cross-file inconsistencies between non-adjacent vulnerabilities are no longer caught.
  • Footprint: new decompressed_size flag writes the uncompressed size into zip .idx files; bintocsv zip path reuses a single pre-allocated decompression buffer when the field is present
  • Occurrence csvtobin: no_date_alg=True path now validates period_no ≤ no_of_periods (previously unchecked)

Affected converters:

  • csvtobin: amplifications, coverages, damagebin, fm, footprint, gul, lossfactors, occurrence, summarycalc, vulnerability
  • bintocsv: amplifications, coverages, cdf, footprint, lossfactors, occurrence, vulnerability
  • bintoparquet / parquettobin: default handler (aal, melt, periods, items, correlations)

Tests: parametrised round-trip coverage for all converter types, no_validation paths, and decompressed_size index format.


Benchmark results

Best of 3 repeats. Memory via tracemalloc (Python heap + NumPy; excludes Numba-JIT internals).

csvtobin

Converter Dataset Speedup Peak mem: orig → new
fm 40k ev × 5 items × 100 samples 10.1x (25.2s → 2.5s) 610 MB → 89 MB (6.9x)
gul 40k ev × 5 items × 100 samples 10.4x (28.0s → 2.7s) 610 MB → 89 MB (6.9x)
summarycalc 20k ev × 3 summaries × 100 samples 8.3x (10.4s → 1.3s) 229 MB → 108 MB (2.1x)
lossfactors 200k ev × 10 amp 6.5x (12.1s → 1.9s) 221 MB → 52 MB (4.3x)
footprint 15k ev × 100 ap × 2 ib 105x (44.5s → 0.42s) 261 MB → 78 MB (3.3x)
footprint (zip) 15k ev × 100 ap × 2 ib 32x (48.1s → 1.5s) 261 MB → 67 MB (3.9x)
vulnerability + idx 15k v × 50 ib × 10 db 96x (233s → 2.4s) 229 MB → 57 MB (4.0x)
vulnerability + zip + idx 15k v × 50 ib × 10 db 53x (232s → 4.4s) 229 MB → 57 MB (4.0x)
occurrence 10M events 1.1x (2.2s → 2.1s) 382 MB → 96 MB (4.0x)
coverages 5M coverages 1.4x (0.63s → 0.47s) 76 MB → 12 MB (6.2x)
amplifications 5M items 1.1x (0.43s → 0.40s) 76 MB → 28 MB (2.8x)
damagebin 5M bins 1.1x (1.19s → 1.13s) 219 MB → 83 MB (2.6x)

bintocsv

Converter Dataset Speedup Peak mem: orig → new
footprint 15k ev × 100 ap × 2 ib 2.2x (0.33s → 0.15s) 39 MB → 707 KB (56.7x)
footprint (zip) 15k ev × 100 ap × 2 ib 1.2x 13 MB → 93 KB (144.8x)
vulnerability + idx 15k v × 50 ib × 10 db 1.4x 200 MB → 692 KB (296.5x)
vulnerability + zip + idx 15k v × 50 ib × 10 db 1.0x 153 MB → 80 KB (1960x)
lossfactors 200k ev × 10 amp 1.9x (3.1s → 1.6s) 244 MB → 337 KB (740.6x)
cdf 3k ev × 30 ap × 2 vuln × 10 bins 21.2x (5.5s → 0.26s) ~384 KB → ~883 KB
occurrence 10M events 2.6x (1.8s → 0.69s) 59 MB → 66 MB (~)
amplifications 5M items 1.6x (0.15s → 0.09s) 169 MB → 23 MB (7.4x)
coverages 5M coverages 1.3x (0.31s → 0.23s) 245 MB → 49 MB (5.0x)

bintoparquet / parquettobin (default handler: aal, melt, periods, items, correlations)

Direction Converter Dataset Speedup Peak mem: orig → new
bintoparquet aal 5M rows 1.2x (0.39s → 0.32s) 229 MB → 30 MB (7.5x)
bintoparquet melt 5M rows 1.2x (1.27s → 1.06s) 629 MB → 84 MB (7.5x)
parquettobin aal 5M rows 2.1x (0.17s → 0.08s) 153 MB → 43 MB (3.5x)
parquettobin melt 5M rows 1.7x (0.52s → 0.30s) 420 MB → 126 MB (3.3x)

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

Update API client for OIDC M2M - (PR #1963)

Added new auth_mode m2m which uses client_credentials grant direct to IdP. Added three new flags to the API client CLI to support this.

  --auth-type {simple,oidc,m2m}
                        Authentication type: simple (username/password JWT), oidc (client credentials via platform),
                        m2m (client credentials direct to IdP)
  --oidc-token-url OIDC_TOKEN_URL
                        Token endpoint URL for m2m client_credentials grant (e.g.
                        https://idp.example.com/oauth2/token)
  --oidc-scope OIDC_SCOPE
                        OAuth2 scope to request when fetching an m2m token (e.g. oasis/m2m)

  • Ground-up loss (gulmc) now runs ~45% faster end-to-end and uses ~30% less peak memory on representative workloads, by replacing numba dicts with precomputed array-backed structures.

Fix for stalled runs on V2 workers - (PR #1967)

Fixed issue where one run script matched an deleted another chunks FIFO queues, causing that chunk of events to stall

Improved bash error detection - (PR #1969)

  • Bash script generation checks bash version support and adds -p var to wait calls, this will check the exit code of tracked background processes and kill the script if one errors.
  • Moved the bash tracing support check into python
  • Added a check to ensure all expected named pipes exist and are FIFO (and not files), check happens before the main execution starts. see: https://github.com/OasisLMF/OasisLMF/pull/1967

Fixes a pandas.errors.MergeError: Merge keys are not unique in right dataset; not a many-to-one merge crash in IL input preparation when multiple policies/layers on the same account share a CondTag and at least one declares a %-of-TIV (or BI) financial term while another declares a flat or non-TIV-dependent term.

Improvements to rtree lookup builtin - (PR #1974)

  • Improve performance by using vectorised operations.
  • Rename parameter from nearest_neighbor_min_distance to nearest_neighbor_max_distance to correctly reflect that this is the greatest distance at which a point will be associated with a geometry. Former parameter is still accepted but will log a deprecation warning.
  • Hide the warning about distances being incorrect when using a geographical coordinate system (this is not ideal but can still function as a rough threshold).
  • Add comments explaining that the distance is the Euclidean distance, not the more accurate spherical or ellipsoidal approximation.
  • Add tests.
  • Remove references in code and parameter names to "area peril" since this is a generic function that can be used for other purposes.

Fix platform checks for external PRs - (PR #1975)

Fix so that platform checks work on outside PR's

fix/pytools-empty-inputs - (PR #1987)

updates elt, plt, aal, lec, kat, join-summary-info code and tests to handle empty input files

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

fix/input_gen_status - (PR #1999)

Adds OasisExceptionNoKeys error to generate files

closes https://github.com/OasisLMF/OasisPlatform/issues/974

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

ONEARMY - v2.129.0

2.129.0 (2026-06-01)

Bug Fixes

Features

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 22 days ago

ONEARMY - v2.128.0

2.128.0 (2026-06-01)

Features

  • categories with dynamic icons and descriptions (#4759) (d4cbf42)

Sustainable Development - Knowledge Platforms - TypeScript
Published by onearmy-bot 22 days ago

fluxopt - v0.0.8

0.0.8 (2026-05-31)

Features

  • api: allow period-varying flow profiles via DataFrame; rename TimeSeries → Variate (#165) (a8b535c)

Bug Fixes

Miscellaneous Chores

Energy Systems - Energy System Modeling Frameworks - Python
Published by fluxopt-release[bot] 22 days ago

Food Expiration Dates - Version 2.8.3

GitHub release (by tag)

The FOSS version does not have the function to scan barcodes because it requires non-FOSS dependencies.

✨ What's New

  • ⬆️ Upgraded dependencies

Full Changelog: https://github.com/lorenzovngl/FoodExpirationDates/compare/v2.8.2...v2.8.3

Consumption - Agriculture and Nutrition - Kotlin
Published by lorenzovngl 22 days ago

tsam - v3.4.1

3.4.1 (2026-05-31)

Bug Fixes

  • warn that aggregate() column order will change in v4 (#330) (97f6e6d)

Energy Systems - Energy System Modeling Frameworks - Python
Published by fzj-iek3-vsa-release-bot[bot] 23 days ago

Home Assistant Octopus Energy - v18.3.0

18.3.0 (2026-05-30)

Bug Fixes

  • Fixed API for saving sessions to correctly filter saving sessions not available in account region (1 hour dev time) (8026acb)
  • Fixed cost sensors to be more accurate and more closly aligned with OE website (3 hours dev time) (7e746f7)
  • Fixed issue where auth token was not refreshing correctly (5 minutes dev time) (7fe9179)
  • Fixed issue where lack of heat pumps could prevent integration from loading (5 minutes dev time) (84db3f9)
  • Fixed typos and grammer (Thanks @prpr19xx) (816a6d9)
  • Fixed warning around sensors being registered with wrong domain (30 minutes dev time) (1436705)

Features

  • Added intelligent support for VOLKSWAGEN (5 minutes dev time) (33b850c)
  • Added latest_consumption_timestamp to previous accumulative consumption sensors to showcase the timestamp of the latest available data (30 minutes dev time) (c15d9f3)
  • Added partial support for new time of use intelligent tariff (3.5 hours dev time) (8b08737)
  • Added service to turn a octopus heat pump hush mode on/off (30 minutes dev time) (8d0f18e)

Minimum HA Version: 2025.11.0


Enjoying the integration? Why not make a one time or monthly GitHub sponsorship or use my Octopus Energy referral link?

Energy Systems - Building Energy Monitoring - Python
Published by github-actions[bot] 24 days ago