Recent Releases of Open Sustainable Technology Projects

OpenSTEF - v4.2.0

What's Changed

New Contributors

Full Changelog: https://github.com/OpenSTEF/openstef/compare/v4.1.1...v4.1.2

Energy Systems - Load and Demand Forecasting - Python
Published by lschilders about 1 month ago

GISWATER - v4.15.3

πŸ”½ Read the summarized changelog here πŸ”½

Fixed

  • Fix tools_db.ensure_service_auth to get correct credentials from pg_service.conf.
  • Fix config_form_fields dv_querytext to use vf_hydrometer and hydro_customer_code instead of v_rtc_hydrometer and hydrometer_customer_code.

Full Changelog: https://github.com/giswater/plugin/compare/v4.15.2...v4.15.3

πŸ“ƒ Check the official documentation here: ⛓️‍πŸ’₯ Giswater Documentation

Natural Resources - Water Supply and Quality - PLpgSQL
Published by danimarinBG about 1 month ago

open-MaStR - v0.17.2 Hotfix empty tables

What's Changed

Full Changelog: https://github.com/OpenEnergyPlatform/open-MaStR/compare/v0.17.1...v0.17.2

Energy Systems - Energy Data Accessibility and Integration - Python
Published by FlorianK13 about 1 month ago

CoopCycle - v5.5.1

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v5.5.0...v5.5.1

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

eccodes - 2.48.0

https://confluence.ecmwf.int/spaces/ECC/pages/690471601/ecCodes+version+2.48.0+released

Atmosphere - Meteorological Observation and Forecast - C++
Published by joobog about 1 month ago

EPyT-Flow - v0.17.2

  • Bugfix: set_node_demand_pattern in ScenarioSimulator
  • Bugfix: Wrong EPANET constant when querying link quality
  • Upgrade of EPANET-PLUS dependency -- incl. making use of the latest NumPy integration

Natural Resources - Water Supply and Quality - Python
Published by andreArtelt about 1 month ago

Green Metrics Tool - v4.0 Carbon Simulation, Grid Intensity Dynamic, Simple Compare, Measurement Phase Padding Improvements and Cluster Improvements

Another major release this year :)

This mid-summer release brings some totally new features, but also big QoL, Cluster and Analytics improvements.

Highlights at a glance

Cluster Features:

  • Added System logs to DB and frontend - No more email errors
  • Settings watcher
  • Docker login encryption
  • HTTP Auth encryption and frontend pruning

What's Changed

Full Changelog: https://github.com/green-coding-solutions/green-metrics-tool/compare/v3.0...v3.1

Consumption - Computation and Communication - Python
Published by ArneTR about 1 month ago

Scores - 2.6.0

Release Notes (What's New)

Version 2.6.0 (July 17, 2026)

For a list of all changes in this release, see the full changelog. Below are the changes we think users may wish to be aware of.

Features

  • scores has introduced support for pandas version 3. See PR #1062.
  • Added three new metrics:
    • Relative economic value: scores.continuous.relative_economic_value, scores.probability.relative_economic_value, scores.categorical.relative_economic_value and scores.plotdata.relative_economic_value. See PR #999 and PR #1088.
    • Relative economic value from rates: scores.continuous.relative_economic_value_from_rates, scores.probability.relative_economic_value_from_rates , scores.categorical.relative_economic_value_from_rates and scores.plotdata.relative_economic_value_from_rates. See PR #999.
    • Receiver (relative) operating characteristic area under curve (ROC AUC): scores.probability.roc_auc. This is significantly computationally more efficient than calculating the area under the curve using scores.probability.roc_curve_data. See PR #1036.
  • Added a kwarg to scores.continuous.kge to allow switching between the original Kling-Gupta Efficiency (KGE) formulation of Gupta et al. (2009) and the modified formulation of Kling et al. (2012). The default remains the original implementation. See PR #1069.

Deprecations

  • This deprecation was first introduced in Version 2.5.0. Support for include_components will be removed from threshold-weighted continuous ranked probability score (twCRPS) functions in a future version of scores. The scores development team believe using include_components=True may lead to misleading results when used with twCRPS functions. As such, the following are now deprecated:
    • support for include_components in scores.probability.tw_crps_for_ensemble,
    • support for include_components in scores.probability.tail_tw_crps_for_ensemble and
    • support for include_components in scores.probability.interval_tw_crps_for_ensemble.
      See PR #991.

Bug Fixes

  • Improved NaN handling in scores.probability.roc_curve_data. See PR #1036.
  • Improved dimension reduction code to ensure consistent dimension ordering in returned objects in scores.probability.roc_curve_data. See PR #1036.

Documentation

  • Added "Relative Economic Value (REV)" tutorial. See PR #999.
  • Updated the "Receiver Operating Characteristic (ROC)" tutorial to include information about the newly-added scores.probability.roc_auc function (which is significantly more computationally efficient). See PR #1036.
  • Updated the "Kling–Gupta Efficiency (KGE)" tutorial to include information about the newly-added kwarg which allows users to switch between the original KGE formulation of Gupta et al. (2009) and the modified formulation of Kling et al. (2012). See PR #1069.
  • Updated the "Contributing Guide" to include guidelines for generative tool usage. See PR #1027.
  • Added a commit template to the scores repository and added instructions in the "Contribuing Guide" for setting up and using the commit template. See PR #1045 and PR #1048.
  • Added an entry for "Aggregate" to the "Processing" table in docs/included.md. See PR #1038.
  • Updated docstrings (e.g. added examples and improved grammar) for multiple functions in the API documentation. See PR #996 and PR #1056.
  • Corrected erroneous namespaces and added :py:func: before the correct namespaces in src/scores/probability/crps_impl.py. Specifically, changed scores.probability.functions.fill_cdf to :py:func:`scores.processing.cdf.fill_cdf` and changed scores.probability.functions.cdf_envelope to :py:func:`scores.processing.cdf.cdf_envelope` . See PR #1050.
  • Updated links to the new verification site https://jwgfvr.github.io/forecastverification (which will replace the prior site: https://www.cawcr.gov.au/projects/verification) in tutorials/Additive_and_multiplicative_bias.ipynb, tutorials/Binary_Contingency_Scores.ipynb and src/scores/categorical/contingency_impl.py. See PR #1029, PR #1030 and PR #1031.
  • Updated link from https://www.openradar.io/ (which is no longer active) to https://nci.org.au/aura/ in docs/data.md. See PR #1081.
  • Replaced link to ERA5 dataset in docs/data.md from https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5 to https://doi.org/10.24381/cds.adbb2d47. See PR #1081.
  • Updated the "Quantile Interval Score and Interval Score" tutorial to use the updated lower-case "h" date range syntax, due to changes in pandas. See PR #1065.
  • Fixed integration of tutorials with Binder. See PR #1083.

Internal Changes

  • Moved tutorial files from a top-level directory, tutorials, into the docs/tutorials/ subdirectory. This change was made to support how recent Sphinx versions handle symbolic links to files located outside of the docs subdirectory. Users who run the tutorials will need to use the updated location. There is no change to how the tutorials render in the documentation. Unpinned the version of Sphinx used by scores, so that the most recent versions of Sphinx can be used. See PR #1042.
  • Introduced the use of the Python doctest module for automated testing of examples in API documentation (docstrings). Revised existing docstrings as appropriate to meet doctest tool requirements. Added the doctest tool to CI/CD and developer tooling via pre-commit. See PR #1056.
  • Update CI pipeline to run tests against all versions of Python even if one fails. See PR #1063.

Contributors to this Release

OisΓ­n M. Morrison* (@Oisin-M), Daniel Karney* (@danielkarney), Thomas C. Pagano (@thomaspagano), Tennessee Leeuwenburg (@tennlee), Stephanie Chong (@Steph-Chong), Nicholas Loveday (@nicholasloveday), John Sharples (@John-Sharples), Mohammadreza Khanarmuei (@reza-armuei), Nikeeth Ramanathan (@nikeethr), Maree Carroll (@mareecarroll) and Durga Shrestha (@durgals).

* indicates that this release contains their first contribution to scores.

Climate Change - Earth and Climate Modeling - Python
Published by tennlee about 1 month ago

Ecoscope - v2.16.6

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.16.5...v2.16.6

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] about 1 month ago

BirdNET-Go - BirdNET-Go 20260716

This is primarily a bug-fix release. It restores the range filter for arm64 (Raspberry Pi) Docker users whose species list had blown open to thousands of out-of-region species, closes an authentication middleware gap where a malformed Authorization header could let a protected handler run anyway, and fixes two database-migration edge cases that could delete a migrated database or crash-loop a fully migrated install on startup. It also adds cross-host install migration over SSH, stops the media API from showing broken audio/spectrogram players while an extended-capture clip is still being written, and corrects CPU temperature reporting on the Health page.

New Features

Cross-Host Install Migration over SSH

Moving BirdNET-Go to a new machine (for example a Raspberry Pi 4 to a Pi 5) no longer means copying files by hand and redoing the service setup. Run install.sh --migrate (or --migrate-from <host> to name the source non-interactively) on the new host and it pulls your config, SQLite database, and audio clips from the old host over SSH, then reconfigures the systemd service for the new machine while preserving your web port, TLS, metrics, and timezone settings. It verifies the old service is stopped, checks free disk space before the transfer, runs a SQLite integrity check, and never overwrites existing data on the target (any existing install is moved aside to a timestamped backup). apt + systemd Linux only; no macOS or Windows (#3934).

Security

  • Auth middleware now fails closed on bad credentials. A request to an auth-protected API route carrying a malformed Authorization header or an invalid token wrote a 401 but then still ran the route handler, because the abort was not propagated. The middleware now terminates the chain so protected handlers never execute after an authentication failure (#3930, fixes #3929).

Bug Fixes

Detection & Classification

  • Range filter restored on arm64 / Raspberry Pi Docker. On ONNX-only arm64 images the default rangefilter.model: latest silently failed to load, so the active species list jumped from around 100 for your location to 6000+ and out-of-range species started showing up. The latest default now auto-selects the shipped ONNX range-filter model, restoring the same regional filtering as before with no download. If you had gotten used to the unfiltered results, out-of-range species will be suppressed again (#3933, fixes #3932).

Audio & Streaming

  • FFmpeg RTSP timeouts now trigger the audio-only fallback. An RTSP source whose FFmpeg connection timed out without ever delivering data was treated as a clean end-of-stream, so the audio-only capture fallback never engaged and the stream went silent. That timeout is now detected and recorded so the fallback kicks in correctly (#3937, fixes #3936).

Media

  • Audio and spectrogram players no longer break for extended-capture clips. Detections that use Extended Capture emit their database entry and live update before the audio clip finishes writing, so the media API briefly raced the file: audio and spectrogram requests returned 404, the detections list showed a broken player until a manual reload, and the transient errors spammed the logs. Clips that are still within their capture window now return 503 with a Retry-After and the player waits them out on its own, while genuinely missing clips still return 404 (#3946).

System & Health

  • Correct CPU sensor used for the critical-temperature check. The Overview and Health pages could raise a false "Critical Temperature" alert when a non-CPU sensor read hotter than the CPU. Both pages now read the CPU thermal sensor specifically (#3941, fixes #3940).
  • Health page shows CPU temperature in the configured unit. The System > Health page always printed the CPU temperature in Celsius even when the dashboard was set to Fahrenheit; it now uses the configured unit, read per request so a unit change takes effect without a restart. As a side effect of consolidating the thermal readers, the cpu.temperature metric now reports the hottest valid zone, so on multi-zone or multi-socket systems it may read slightly higher after upgrade (#3945).

Database

  • Migration state detected correctly on startup. A leftover marker from an old bug (PR #2165) could make a legacy database look like a fully migrated v2 database, which deleted the real migrated sidecar and dropped the app back to legacy mode. That misdetection is fixed, and the detection now discriminates by row count so a completed-v2 install that still carries empty legacy tables is recognized as v2 instead of crash-looping on startup, while a genuinely legacy database with unmigrated data is still protected (#3926, #3947, fixes #3924).

πŸ›‘οΈ VirusTotal Results:

Biosphere - Bioacoustics and Acoustic Data Analysis - Go
Published by tphakala about 1 month ago

URBANopt CLI - Version 1.4.0.rc1

  • Update to OpenStudio 3.11
  • NOTE: Residential workflow will not work in this release but will be restored in 1.4.0.
  • NOTE: uo create --combined is temporarily disabled in this release candidate and will be restored in 1.4.0.

Consumption - Buildings and Heating - Ruby
Published by kflemin about 1 month ago

xCDAT - v0.11.3

v0.11.3 (16 July 2026)

This patch release fixes xgcm 0.10 compatibility by translating xCDAT's legacy grid options to the new padding API. This restores vertical regridding without requiring caller changes. The minimum xgcm version is now 0.10.0, which is required for the new padding API. It also constrains regionmask >=0.11.0 for numpy 2.0 compatibility.

Bug Fixes

DevOps

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.11.2...0.11.3

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] about 1 month ago

reV - Bespoke Noise MVP

What’s Changed

Features

  • Add noise modeling MVP to Bespoke (#582) @ppinchuk

Bug Fixes

  • Fix warnings when running reV version (#581) @ppinchuk

Energy Systems - Renewable Energy Integration - Python
Published by github-actions[bot] about 1 month ago

Ecoscope - v2.16.5

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.16.4...v2.16.5

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] about 1 month ago

Planscape - 2026.07.16-ef7c2f14fa

Rx Lev old title backfill

Biosphere - Wildfire - Python
Published by Foxbyte0101 about 1 month ago

openEO - openEO Python Client v0.51.0

Added

  • DataCube.resample_spatial() now supports parameterized resolution and projection arguments. (#897)
  • Sanitize asset download filenames (e.g. strip slashes, (semi)colon, hash, ...), instead of blindly using the asset key as filename. (#820)
  • Support parameters in DataCube apply- and band-math operations (#903)
  • Introduction of simple (experimental) event system at Connection.events to allow hooking into various events of the API and internals (#922)
  • Initial implementation of pytest plugin auto_list_job_ids to automatically list created jobs and sync processing requests (#922)

Changed

  • ResultAsset.__init__(): renamed name argument to key for clarity and consistency with the spec (#820)

Fixed

  • Better error message when passing a bounding box with field typos in Connection.load_collection() and alike (#910)

Sustainable Development - Environmental Satellites - Python
Published by soxofaan about 1 month ago

Planscape - 2026.07.16-8f18093056, Staging

Rx Lev backfill and many other changes

Biosphere - Wildfire - Python
Published by Foxbyte0101 about 1 month ago

EVerest - 2026.02.1

This is the first maintenance release of the 2026.02 stable line. It contains bug fixes, robustness improvements, and security patches backported to the stable/2026.02 branch.

In line with the project's release strategy, this patch release does not introduce breaking changes to the public API.

Changes since 2026.02.0

Framework

  • Add thread pool scaling policy to lib/framework for internal message handling.
    This allows more control over thread (pool) scaling and is specifically relevant
    for low resource constrained systems by @djchhp
  • Add thread pool exception policy and use Rethrow in message handling by @Pietfried
  • libio: add kernel CAN receive filters (CAN_RAW_FILTER) and one-shot timer support; used by the InfyPower driver for frame filtering and paced polling by @florinmihut

APIs

  • Move EVerestAPI modules into a common sub-folder by @cburandt
  • RpcApi: normalize signed external limits to absolute values by @FaHaGit

OCPP

  • Publish default_price on connectivity change and config update within OCPP1.6 and OCPP2.x by @Pietfried
  • Inject TariffFallbackMessage into AuthorizeResponse and TotalCostFallbackMessage at offline transaction end in OCPP2.x by @Pietfried

EV Communication

  • Add new nominal properties for DC Power Supply capabilities (ISO15118) by @Pietfried
  • libiso15118: add response message interval control by @FaHaGit
  • IsoMux: make proxy connect target configurable via proxy_device by @Pietfried
  • Add CC.5.6 2g) check from IEC 61851-23:2023 to EvseV2G; min voltage/current values now use power-supply limits by @SebaLukas
  • EvseSlac: add 0xA14E message filtering by @hikinggrass

Hardware Drivers

  • Add configuration option for the IT field of LemDCBM400/600 by @florinmihut
  • ChargeBridge: add enable_stop_charging_input config option by @corneliusclaussen

Documentation

  • Improve documentation build and deployment by @cburandt
  • EvseManager: remove duplicate section about OverVoltageMonitoring by @Pietfried

Testing & CI

  • Unify the e2e test runner and enable parallel ISO 15118 execution by @Pietfried
  • BuildKit: use corepack to provide a newer version of npm in the CI containers by @nzbr

Build System & Yocto

  • Add ChargeBridge systemd service by @corneliusclaussen

Notable Bug Fixes

Core

  • EvseManager: rework enable/disable handling by @Pietfried
  • EvseManager: drop max charger current limitation by @martinlukas84
  • EnergyManager: eliminate data race and unnecessary copy in optimizer by @Pietfried
  • OVMSimulator: prevent the OVM simulator from publishing 0 V by @FaHaGit
  • Powermeter errors: use powermeter/ definitions again instead of generic ones by @corneliusclaussen
  • Fix missing reset of flags in EvseManager by @florinmihut
  • ChargeBridge: fix mDNS discovery with multiple interfaces by @corneliusclaussen
  • EvseManager: invalidate powersupply_DC_set cache when switching power supply off by @biubiuzhang
  • EvseManager: destroy charger before its dependencies on shutdown by @mlitre
  • System, Linux_Systemd_Rauc: restrict diagnostics upload protocols by @hikinggrass
  • Adapt repository to its own everest-core β†’ EVerest rename by @cburandt
  • Auth: persist EVSE-specific reservations and no longer resurrect cancelled/expired reservations after a reboot by @biubiuzhang
  • EvseManager: register the OverVoltageMonitor plausibility subscription once at init instead of accumulating duplicate handlers by @florinmihut
  • EvseManager: skip calculation of limits if the number of phases is unknown, fixing a potential division by zero by @barsnick

Framework

  • libio (TCP): make tcp_socket ready before signalling ready by @djchhp
  • Fix telemetry_publish by @hikinggrass
  • Ensure clean module shutdown on init exceptions by @Pietfried
  • MQTT: fix TOCTOU race causing messages to be silently dropped by @Pietfried
  • Fix LatencyScaling in thread pools by @dorezyuk
  • Timer: drop mutex before join in destructor by @mlitre
  • Log MQTT messages at the "verbose" level by @barsnick
  • TLS: set server thread id before signalling the server as running, preventing a potential segfault on stop by @mlitre
  • SQLite: add missing nullptr check in database connection handling by @james-ctc
  • Preload the timezone database before worker threads start, preventing a crash caused by a racy lazy initialization by @mlitre

OCPP

  • OCPP 1.6: reject invalid boolean ChangeConfiguration values by @biubiuzhang
  • OCPP 1.6: fall back to DB for FinalCost arriving after StopTransaction.conf by @Pietfried
  • OCPP 1.6: fix ClearChargingProfile on connector 0 by @mlitre
  • OCPP2.x: Catch json::exception when parsing Get15118EVCertificateResponse and AuthorizeResponse by @Pietfried
  • OCPP2.x: Respect CertSigningWaitMinimum in cert signing retry by @mlitre
  • Reject smart charging profiles with non-finite float values by @Pietfried
  • Websocket: prevent segfault during lws_context_destroy reconnection callbacks by @mlitre
  • Message queue: protect BootNotification from being dropped during queue overflow by @mlitre
  • Free SSL_CTX on early-return paths in initialize_connection_options by @Pietfried
  • Use the configured OCSP request interval instead of a hardcoded 12 hours (default unchanged) by @ThatsLucas
  • Fix a race condition between the Installed firmware-status notification and the immediate hard reset triggered by firmware installation by @Pietfried

EV Communication

  • ISO15118: fix connection immediately terminated in case of a SequenceError by @mlitre
  • On a failed response code, create a default service parameter entry so libcbv2g can encode the EXI messages without errors; move all state tests to the FSM tests by @SebaLukas
  • PyEvJosev: start the Java gateway only once and reuse it across charging sessions by @Pietfried
  • EvseSlac: fix a segmentation fault by @djchhp
  • libiso15118: make the CB2CPP_BYTES macro use the correct size of the input buffer and change the MeterSignature type to std::array by @SebaLukas

APIs

  • RpcApi: correctly forward errors to RPC by @barsnick

Build System & Yocto

  • Fix everest-core scarthgap yocto recipe by @hikinggrass
  • yocto/scarthgap: add OpenSSL patch for newer versions by @Hgerner
  • yocto: update tpm2-openssl to 1.3 by @barsnick
  • Fix integrated yocto source fetching by @hikinggrass
  • Fix compilation due to missing cmake includes for the admin panel by @florinmihut

Hardware Drivers

  • PN532TokenProvider: rework low-level frame sending and receiving by @mhei
  • Huawei_V100R023C10: fix GOOSE receiver crash on malformed frames by @florinmihut

Testing & CI

  • Use one EXI JVM per session to prevent CertificateInstallationRes timeout by @Pietfried
  • Harden smoke tests by asserting power-below rather than flaky energy-below assertions by @Pietfried
  • Stabilize OCPP tests by @Pietfried
  • Make verify_multi_leaf_retrieval order-agnostic by @mlitre
  • Add rerun marker to test_cleanup_transaction_events_after_max_attempts_exhausted and set ValidationMode.EASY earlier by @Pietfried
  • Add a sleep to test_iso15118_dc_session_error_before_session and rerun annotations for EV-side pausing test cases by @Pietfried
  • Skip test_iso15118_ac_session_paused_by_ev by @Pietfried
  • Exclude author emails that match GitHub noreply addresses by @andistorm
  • Fix California pricing test case for Python 3.13 by @nzbr
  • OCPP 2.1: delay OCPP start to de-flake Q01 checks by @mlitre

Maintenance

  • CODEOWNERS: add owners for lib/everest/evse_security by @barsnick
  • CODEOWNERS: add yocto specifications and @barsnick for EvseV2G by @Pietfried
  • CODEOWNERS: add owners for RpcApi and fix the EnergyManager path by @Pietfried

New Contributors

@Hgerner made their first contribution in https://github.com/EVerest/EVerest/pull/2093
@mikuso made their first contribution in https://github.com/EVerest/EVerest/pull/2060

Fixed Security Issues

This release contains various security fixes.

Reported by @kmm2003:

Reported by @YueSongZe:

Reported by Alex Antonakakis:

Reported by @shxz9u:

Reported by @djchhp:

Full Changelog

https://github.com/EVerest/EVerest/compare/2026.02.0...2026.02.1

Consumption - Mobility and Transportation - C++
Published by Pietfried about 1 month ago

Deadtrees.earth - v2026.07.16.12

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.11...v2026.07.16.12

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.11

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.10...v2026.07.16.11

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

CoopCycle - v5.5.0

What's changed

  • Fix menu item cards
  • Fix shop ordering by time slot
  • Allow customizing the sort algorithm for shop collections

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v5.4.4...v5.5.0

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

Macro - v0.2.1

What's Changed

Bug Fixes

Other Changes

Full Changelog: https://github.com/macroenergy/MacroEnergy.jl/compare/v0.2.0...v0.2.1

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.10

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.9...v2026.07.16.10

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.9

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.8...v2026.07.16.9

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

TZ-OSeMOSYS - v0.3.9

Changes

  • Correct DaySplit/YearSplit timeslice mapping and max_hours compatibility with custom time slices (#188) @joel1120

Energy Systems - Energy System Modeling Frameworks - Python
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.8

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.7...v2026.07.16.8

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.7

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.6...v2026.07.16.7

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.6

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.5...v2026.07.16.6

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

ERAD - v0.1.14

What's Changed

Full Changelog: https://github.com/NLR-Distribution-Suite/erad/compare/v0.1.13...v0.1.14

Energy Systems - Grid Analysis and Planning - Python
Published by AadilLatif about 1 month ago

Deadtrees.earth - v2026.07.16.5

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.4...v2026.07.16.5

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

ClimWeb - v1.2.1

What's Changed

New Contributors

Full Changelog: https://github.com/wmo-raf/climweb/compare/v1.2.0...v1.2.1

Atmosphere - Meteorological Observation and Forecast - Python
Published by Grace-Amondi about 1 month ago

Deadtrees.earth - v2026.07.16.4

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.3...v2026.07.16.4

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.3

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.2...v2026.07.16.3

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.2

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16.1...v2026.07.16.2

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16.1

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.16...v2026.07.16.1

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

Deadtrees.earth - v2026.07.16

What's Changed

Frontend

Maintenance

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.09.7...v2026.07.16

Biosphere - Forest Remote Sensing - TypeScript
Published by github-actions[bot] about 1 month ago

ecmwf-opendata - 0.3.31

What's Changed

New Contributors

Full Changelog: https://github.com/ecmwf/ecmwf-opendata/compare/0.3.30...0.3.31

Climate Change - Climate Data Access and Visualization - Python
Published by awarde96 about 1 month ago

Mangrove Atlas - v8.0.0-rc.3

8.0.0-rc.3 (2026-07-16)

Features

  • add monitored area legend to alerts widget and map legends (#1593) (be9df22)
  • draw and analyse saved custom areas on map click (#1599) (b108b20)

Bug Fixes

  • add thousands separators to net change widget Y-axis (GMW-1054) (#1600) (8ea451c)
  • alerts widget axis labels and monitored areas outline (#1592) (46327c4)
  • correct species widget no-data behaviour (GMW-1062) (#1606) (666a8e7)
  • filter alerts map layer by widget date range (#1590) (7d9e506)
  • only require current password when changing password in account form (GMW-1046) (#1594) (713ac67)
  • order map-tip contextual layers on the map (GMW-1057) (#1603) (c5abe54)
  • prevent empty toast on dark-mode OS (GMW-1043) (#1607) (2273db6)

Biosphere - Forest Observation and Management - Jupyter Notebook
Published by github-actions[bot] about 1 month ago

openfoodfacts-server - v2.98.0

2.98.0 (2026-07-15)

Features

Bug Fixes

Consumption - Agriculture and Nutrition - HTML
Published by openfoodfacts-bot about 1 month ago

EcoAssist - AddaxAI v6.37

Increase JSON GH fetch timeouts

Biosphere - Terrestrial Wildlife - Python
Published by PetervanLunteren about 1 month ago

antaresRead - CRAN version 3.1.0

antaresRead 3.1.0

ENHANCEMENT :

  • .getPathsAPI() uses a specific endpoint to get the list of the outputs of a study.

BUGFIXES :

  • .getSimOptionsAPI() reads and returns the new converted study version format (ex : 9.0 => 900) in output mode

BREAKING CHANGES :

  • .getInputOptionsAPI() Since Antares Web 2.33.0, new numbering system in API mode (ex : 7.0, 8.2, 9.2, ...)

Energy Systems - Energy System Modeling Frameworks - R
Published by KKamel67 about 1 month ago

ClimaSeaIce.jl - v0.5.8

ClimaSeaIce v0.5.8

Diff since v0.5.7

Merged pull requests:

  • Metric-aware formulation for strain and stress (#164) (@simone-silvestri)
  • Include mass_fluxes in prognostic state management (#168) (@simone-silvestri)

Cryosphere - Sea Ice - Julia
Published by github-actions[bot] about 1 month ago

CoopCycle - v6.0.0-beta3

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v6.0.0-beta2...v6.0.0-beta3

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

GISWATER - v4.15.2

πŸ”½ Read the summarized changelog here πŸ”½

Fixed

  • Fix gw_fct_setnodefromarc function to return the correct error message with gw_fct_exception_others function.
  • Fix admin dialog: do not show ghost schemas in parentheses when switching connections or after delete; restore selection only if the schema exists on the current connection.
  • Fix admin dialog: persist last selected schema per connection instead of globally.
  • Fix admin dialog: refresh schema list and project info when switching connections (ignore stale async load results).
  • Fix admin dialog: avoid TypeError and missing-table warnings when a deleted or invalid schema is still selected.
  • Fix admin dialog: show PostgreSQL/PostGIS/pgRouting versions for the active connection even when the server version is incompatible.
  • Fix admin dialog: pg_service connections without user/password in pg_service.conf now prompt credentials via QGIS (same as Browser) instead of failing with fe_sendauth.

Full Changelog: https://github.com/giswater/plugin/compare/v4.15.1...v4.15.2

πŸ“ƒ Check the official documentation here: ⛓️‍πŸ’₯ Giswater Documentation

Natural Resources - Water Supply and Quality - PLpgSQL
Published by danimarinBG about 1 month ago

CoopCycle - v5.4.4

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v5.4.3...v5.4.4

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

Diversity.jl - v0.5.16

Diversity v0.5.16

Diff since v0.5.15

Merged pull requests:

  • Fix Gower error (#54) (@richardreeve)

Biosphere - Biodiversity Analysis and Metrics - Julia
Published by github-actions[bot] about 1 month ago

ERAD - v0.1.13

What's Changed

New Contributors

Full Changelog: https://github.com/NLR-Distribution-Suite/erad/compare/v0.1.11...v0.1.13

Energy Systems - Grid Analysis and Planning - Python
Published by AadilLatif about 1 month ago

Volca - v0.9.3

What's Changed

Full Changelog: https://github.com/ccomb/volca/compare/v0.9.2...v0.9.3

Industrial Ecology - Life Cycle Assessment - Haskell
Published by github-actions[bot] about 1 month ago

ClimaAtmos.jl - v0.42.0

ClimaAtmos v0.42.0

Diff since v0.41.3

Breaking changes

  • Update to RRTMGP v0.22 API

πŸ“’ API Changes:

πŸš€ Features

πŸ“‘ Documentation

πŸ› Fixes

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] about 1 month ago

MAAP - v5.1.2a2

Biosphere - Biomass - Python
Published by github-actions[bot] about 1 month ago

cellpy - v1.1.0.post1

Summary

Post-release after v1.1.0: conda env sync, drop invoke/tasks.py, docs Python 3.13+/copyright 2026, HISTORY update.

Install

pip install cellpy==1.1.0.post1
# or
pip install -U cellpy

Energy Storage - Battery - Python
Published by jepegit about 1 month ago

goat - v2.4.50 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.49 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.49...v2.4.50

Consumption - Mobility and Transportation - TypeScript
Published by majkshkurti about 1 month ago

cellpy - v1.1.0

What's Changed

New Contributors

Full Changelog: https://github.com/jepegit/cellpy/compare/v.1.0.1...v1.1.0

Energy Storage - Battery - Python
Published by jepegit about 1 month ago

EOReader - v0.24.2

0.24.2 (2026-07-15)

  • FIX: Fix 4-bands VantorBandId.Multi's band order (BGRN instead of NRGB)
  • FIX: Set back LIA (SAR local incidence angles) computation in default pipeline since SNAP 13 has been fixed #276

Sustainable Development - Environmental Satellites - Python
Published by remi-braun about 1 month ago

ecodata - v7.0.0

Date: 07/15/2026

Release includes data/plots used to build the 2026 NEFMC and MAFMC State of the Ecosystem Reports submitted to both SSCs and councils (MAFMC & NEFMC).

Full Changelog: https://github.com/NOAA-EDAB/ecodata/compare/6.0.1...v7.0.0

Biosphere - Marine Life and Fishery - HTML
Published by BBeltz1 about 1 month ago

OpenIO-Canada - OpenIO v2.11.1

v2.11.1 is a correction of v2.11.

  • The endogenized capital matrix of exiobase was updated and we prevented impossible values from normalizing this capital matrix (sum of the row cannot exceed 1$). This created a significant decrease of the share of foreign capital goods impacts.
  • Through the new endogenization of capitals approach in v2.11, residential buildings were treated as regular capital goods, while in reality they are not used for production. As a result, we now convert residential buildings capital formation to a typical household final expenditure (as was done in v2.10 for example). This leads to an increase of their emissions compared to v2.11.

Overall the two corrections kind of compensate each other, at the national/total level. However, the contributions of the different economic sectors between 2.11 and 2.11.1 are very different.

Industrial Ecology - Input Output Model - Python
Published by MaximeAgez about 1 month ago

CoopCycle - v5.4.3

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v5.4.2...v5.4.3

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

CoopCycle - v5.4.2

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v5.4.1...v5.4.2

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

MUSICA - Version 0.16.1

What's Changed

New Contributors

Full Changelog: https://github.com/NCAR/musica/compare/v0.16.0...v0.16.1

Atmosphere - Atmospheric Chemistry and Aerosol - Jupyter Notebook
Published by K20shores about 1 month ago

Antares Simulator - v10.2.0-rc2

Run tests: false

Energy Systems - Energy System Modeling Frameworks - C++
Published by github-actions[bot] about 1 month ago

Ecoscope - v2.16.4

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.16.3...v2.16.4

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] about 1 month ago

CloudnetPy - CloudnetPy 1.93.5

  • Allow passing "mira-35s" and "mira-35c" models to mira2nc
  • Improve tpow screening based on specific MIRA model
  • Write actual radar frequency used by MIRA to output file
  • Remove LDR variable from MIRA if polarization is off
  • Expose model evaluation entry points and improve documentation

Atmosphere - Atmospheric Chemistry and Aerosol - Python
Published by github-actions[bot] about 1 month ago

EcoSISTEM.jl - v0.4.0

EcoSISTEM v0.4.0

Diff since v0.3.0

Breaking changes

  • New requirement for Julia v1.11 for greedy scheduler
  • Deprecated Worldclim_bioclim(...) to ClimateRaster(WorldClim{BioClim}, ...) - note this will change again soon, so may be best to stick with deprecations for now

Merged pull requests:

  • Simplify setup of climates (#144) (@richardreeve)
  • Improving cache use efficiency (#149) (@richardreeve)
  • Bump actions/checkout from 4 to 7 (#150) (@dependabot[bot])
  • Bump julia-actions/cache from 2 to 3 (#151) (@dependabot[bot])
  • Bump julia-actions/setup-julia from 2 to 3 (#152) (@dependabot[bot])

Biosphere - Ecological and Environmental Modeling - Julia
Published by github-actions[bot] about 1 month ago

GISWATER - v4.15.1

πŸ”½ Read the summarized changelog here πŸ”½

Fixed

  • Fix gw_trg_edit_inp_gully trigger to use gully_method instead of method.
  • Fix gw_trg_edit_inp_node trigger to use gully_method instead of method.
  • Fix gw_trg_edit_node trigger to use gully_method instead of method.
  • Fix gw_fct_setmincut use DISTINCT ON to avoid duplicate records in om_mincut_valve.
  • Fix check if column addparam exists in sys_version table.

Changed

  • Refactor v_om_mincut_initpoint: now uses a JOIN instead of a LEFT JOIN with selector_mincut_result and removes the check for id > 0.

Full Changelog: https://github.com/giswater/plugin/compare/v4.15.0...v4.15.1

πŸ“ƒ Check the official documentation here: ⛓️‍πŸ’₯ Giswater Documentation

Natural Resources - Water Supply and Quality - PLpgSQL
Published by danimarinBG about 1 month ago

ClimWeb - v1.2.1beta1

What's Changed

New Contributors

Full Changelog: https://github.com/wmo-raf/climweb/compare/v1.2.0...v1.2.1beta1

Atmosphere - Meteorological Observation and Forecast - Python
Published by Grace-Amondi about 1 month ago

CoopCycle - v6.0.0-beta2

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v6.0.0-beta1...v6.0.0-beta2

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

CoopCycle - v5.4.1

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v5.4.0...v5.4.1

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

The REgional Model of INvestments and Development - REMIND v3.7.0

validated for SSP2 for spatial resolution H12

Sustainable Development - Sustainable Investment - GAMS
Published by LaviniaBaumstark about 1 month ago

Ecoscope - v2.16.3

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.16.2...v2.16.3

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] about 1 month ago

TZ-OSeMOSYS - v0.3.8

Changes

  • Fixed bug in discounting of salvage value (#185) @abhishek0208
  • remove availability factor from min_annual_capacity_factor (#186) @djwels
  • Refactor StorageGrossCapacitySufficiency constraint (#187) @joel1120

Energy Systems - Energy System Modeling Frameworks - Python
Published by github-actions[bot] about 1 month ago

wradlib - wradlib v2.9.5

What's Changed

Full Changelog: https://github.com/wradlib/wradlib/compare/2.9.4...2.9.5

Atmosphere - Meteorological Observation and Forecast - Python
Published by kmuehlbauer about 1 month ago

CoopCycle - v5.4.0

What's Changed

Full Changelog: https://github.com/coopcycle/coopcycle-web/compare/v5.3.2...v5.4.0

Consumption - Mobility and Transportation - PHP
Published by alexsegura about 1 month ago

OpenQuake - OpenQuake Engine 3.26.1

Release 3.26.1

[Matteo Nastasi (@nastasi-oq), Antonio Ettorre (@antonioettorre)]

  • Fix and improve of post installation scripts

Release 3.26.0

[Amir Shahmohammadian (@Shahmohamadian)]

  • Fixed a bug in the treatment of PGV period in the Jayaram and Baker
    (2009) spatial correlation model resulting in a wrong coefficient
    b = 22.0 instead of b = 25.7

[Michele Simionato (@micheles)]

  • Optimized ebrisk calculations by using larger GMF arrays
  • Saving memory when running several jobs together with a pool
  • Fixed a bug with IMT-dependent weights being not normalized, breaking
    the CND model with use_rates=true

[Paolo Tormene (@ptormene)]

  • Fixed a unit-scaling bug in GMF calculations; acceleration IMTs are
    converted to g as before, while velocity measures (PGV) preserve their
    native cm/s units.

[Paolo Tormene (@ptormene)]

  • Added exporter for exposure_by_liquefaction_lse and
    exposure_by_landslide_lse (Exposure grouped by Region and by
    Liquefaction/Landslide LSE)

[Michele Simionato (@micheles)]

  • Parallelized the exports in workflow calculations
  • Fixed the exporters aggexp_tags and aggrisk_tags
  • Reduced the number of tasks and the memory consumption in event_based_risk
  • Optimized rupture sampling for sources with high multiplicity
  • Internal: storing occ_by_trt_smr in the SES.hdf5 file
  • Introduced strict flag to disable checks which are possibly too strict
  • Internal: storing the real occurrence_rate in the ruptures dataset,
    not multiplied by smweight
  • Fixed the slow tasks in AELO, due to accidental disabling of the filtering

[Savas Ceylan (@sceylan)]

  • Added EdwardsFah2013Foreland3Bars, BindiEtAl2011Rhypo,
    ECOS2009VariableDepth and ECOS2009FixedDepth GSIMs with
    verification tests.

[Michele Simionato (@micheles)]

  • ebrisk calculations with not enough GMFs now just log an error
    instead of failing
  • Cached the multifault sections, with a 6x speedup when sampling the
    ruptures of the NZL model
  • Avoided copying sources when building the CompositeSourceModel,
    thus reducing the memory occupation and time by 75% for NZL

[Paolo Tormene (@ptormene), Michele Simionato (@micheles)]

  • Implemented secondary perils for ShakeMap calculations

[Catarina Costa (@catarinaquintela)]

  • Fixed landcover coefficient assignment on Nowicki Jessee landslide model

[Michele Simionato (@micheles)]

  • Saving year and ses_id in the events dataset of SES.hdf5 files
  • Splitting multifault and multipoint sources with the colon convention
  • Fixed missing weight in AvgPoeGMPE breaking the realization exporter

[Christopher Brooks (@CB-quakemodel)]

  • Fix a bug observed in the Aki and Richard's convention check in
    complex faults.

[Michele Simionato (@micheles)]

  • Added --kfilter capability to oq run workflow.toml
  • Optimized reading and sampling multiFaultSources
  • Saved memory in classical calculations with large sources affecting many
    sites, by yieldings contexts
  • Changed the rupture sampling algorithm so that the source groups are
    consistent between event based and classical calculations; removed
    useless copies of the sources and improved the performance and memory usage

[Fahrettin Kuran (@kurannn)]

  • Added additional magnitude-scaling relationships to wc1994.py
  • Added additional magnitude-scaling relationships to thingbaijam2017.py

[Michele Simionato (@micheles)]

  • Added checks on MAX_NUM_RUPTURES and ps_grid_spacing
  • Added command oq info db to extract the path to the sqlite file
  • Implemented a workflow to run the 2026 Global Risk Model

[Thuany Costa de Lima (@thuanycostadelima)]

  • Fix Allen (2022) depth truncation bug: hypocentral depth is now
    clamped to [10, 500] km before evaluating the cubic log-depth
    scaling term, as recommended in the original paper (Eq. 4, p. 1049).
  • Updated test CSVs to reflect the corrected implementation.
  • Added Bayless and Somerville (2024) GMM for Australia:
    BaylessSomerville2024Cratonic and BaylessSomerville2024NonCratonic.

[Michele Simionato (@micheles)]

  • Changed postjobs.build_ses to store oqparam/{model}
  • Saved memory in the rupture sampling algorithm for fault sources
    (simple, complex, characteristic)
  • Extended use_rates to work also with IMT-dependent weights

[Christopher Brooks (@CB-quakemodel)]

  • Add ability to specify a down-dip fraction for hypocentre placement
    on the rupture surface within a hypoDepthDist for area, point and
    multi-point sources with a QA test in classical/case_31.
  • Fix exporting of ruptures with surfaces defined using a GriddedSurface

[Michele Simionato (@micheles)]

  • Storing also aggexp_by outputs if avg_losses_by is enabled
  • Extended the rupture exporter to also work with multi-model SES files
  • Keeping the correlation matrices at 32 bit to save memory and to double
    the speed

[Christopher Brooks (@CB-quakemodel)]

  • Modify MorikawaFujiwara2013 to compute the distance to volcanic
    front (xvf) on a ctx-by-ctx basis instead of requiring it as a
    site parameter for consistency with NIED's own implementation.
  • Expand GridAdjustedGMPE to provide raytracing capabilities for
    distance-based corrections and update the QA test (classical/case_11)
    to test this feature.
  • Add the 2025 NSHM variants of the anomalous intensity correction
    and the PH correction to the MorikawaFujiwara2013 and some QA
    tests to check the site location-specific component of these
    corrections (classical/case_30).
  • Added ability to specify a distribution of hypocenters within a
    simple fault source. Tested in classical/case_28 and unit tests.
  • Added the BCHydro adjusted versions of the original NGA GMMs (median
    scaling and single station sigma) and some unit tests.

[Marco Pagani (@mmpagani)]

  • Fixing the calculation of ruptures with clusters and mutually exclusive
    sources

[Michele Simionato (@micheles)]

  • Computing the GMFs with a single core in scenario calculations,
    changing a bit the numbers (akin to a change of seed), but saving a
    lot of memory, especially in conditioned computations
  • Changed the distribution in damage calculations to split in blocks
    of assets, with a huge performance benefit for large scenarios

[Christopher Brooks (@CB-quakemodel)]

  • Add ability to specify a magnitude-dependent aspect ratio which
    is evaluated using a predefined expression via a MagDepAratio
    class.
  • Add the magnitude-scaling relationship used in the Northern
    Volcanic Arc (NVA) source zone of the BC Hydro SSC logic tree.
  • Add the NIED 2025 sigma model to the MorikawaFujiwara2013 GSIM
    and some unit tests.
  • Add ability to specify sentinel (-999) z_ref values when using the
    prepare_site_model command.
  • Add a relative epistemic uncertainty for seismogenic depths in the
    source model logic tree. Some unit tests added and a QA test in
    logictree/case_33.
  • Add ability to specify reference z1pt4 (like for z1pt0, z2pt5 etc.) in
    the job file (QA test in classical/case_13 with MorikawaFujiwara2013).

[Michele Simionato (@micheles)]

  • Internal: added an utility hdf5.reduce_file to reduce HDF5 files
  • Added parameter rupture_id to be used with rupture_model_file
    to run scenarios starting from a SES.hdf5 file

[Christopher Brooks (@CB-quakemodel)]

  • Added new epistemic uncertainties in the source model logic tree
    for the rupture aspect ratio (setAspectRatioAbsolute and
    setAspectRatioRelative). Unit tests added and a QA test in
    logictree/case_32.

[Michele Simionato (@micheles), Paolo Tormene (@ptormene)]

  • Updated build_exposure_hdf5 to work with the 2026 Global Risk Model

[Amirhossein Mohammadi (@amirxdbx)]

  • Add Karimzadeh 2023 Azores Islands GSIM implementation with
    verification tests.

[Michele Simionato (@micheles)]

  • In event based calculations do not collect together sources following
    the colon convention to avoid duplicated rupture IDs

[Christopher Brooks (@CB-quakemodel)]

  • Add GridAdjustedGMPE - a utility GSIM class allowing the
    adjustment of a GMPE using h3-gridded adjustments already
    defined within a hdf5 file. Examples of the hdf5 file structure
    are available in classical/case_11 and the associated unit tests.
  • Introduce explicit handling of sentinel z_sed values (-999) within
    the Conterminous US 2023 NSHM's Coastal Plains site amplification
    adjustment model to turn off this correction for such sites.

[Michele Simionato (@micheles)]

  • Logging and storing the engine version and not the DbServer version

[Matteo Nastasi (@nastasi-oq)]

  • Integrate Christopher Brooks (@CB-quakemodel) PAPERS script to run calculation
    starting from hypothetical ruptures into engine as new API
    entry-point

[Michele Simionato (@micheles)]

  • Added variable keep_trt to select a branchset in the gsim logic tree
  • Filtering the sites around the rupture also in scenario_damage
  • Extended oq shakemap2gmfs to work without a site model file

[Christopher Brooks (@CB-quakemodel)]

  • Added the AlternativeCharacteristicMFD class (unit tests and also
    a QA test in classical/case_10)
  • Fix some unit conversion bugs in the MorikawaFujiwara2013 and
    also a bug where the xvf cap of 75 km was being applied incorrectly.
  • Modify openquake/hazardlib/tests/gsim/utils.py to support checking
    of JMA values too (supported IMT for MF13 GSIM).

[Paolo Tormene (@ptormene)]

  • If any station is farther than the site association distance,
    the job keeps running instead of raising a SiteAssociationError

[Michele Simionato (@micheles)]

  • Internal: added postproc.debug_rupture
  • Saved avg_gmf always in impact mode
  • Saved relevant_events always when using --hc

[Christopher Brooks (@CB-quakemodel)]

  • Refactored check_gsims to permit unsupported IMTs when a weight
    of zero is specified for them in an IMT-dependent weighted GMC LT.
    A test case (classical/case_39) is added which checks this behaviour
    (permit zero weight for unsupported IMT, and raise error if non-zero
    for same unsupported IMT).

[Michele Simionato (@micheles)]

  • Added maximum_depth dictionary (in km per tectonic region type)
    to the job.ini accepted parameters, used to discard deep ruptures
    in event based calculations

[Paolo Tormene (@ptormene), Michele Simionato (@micheles), Paul Henshaw (@pslh)]

  • If any worker dies before completion, the corresponding master and
    all its subprocesses are killed and the event causing the
    interruption is logged

[Christopher Brooks (@CB-quakemodel)]

  • Added capability to specify an IMT-dependent vector of deltas
    to apply to total sigma, tau and phi within ModifiableGMPE.
  • Fix a bug where ESHM20 subclasses of BCHydro without a FABA
    taper model incorrectly fellback to the original BCHydro backarc
    term, causing a missing attribute error for backarc. Updated
    classical/case_61 to now test this scenario.
  • Correct the _apply_subduction_trench_correction term in
    Si and Midorikawa (1999)'s NorthEastCorrection subclasses
    to use rhypo instead of rrup.

[Anirudh Rao (@raoanirudh)]

  • Support sampling from the truncated multivariate normal distribution
    using Paul Brunzema's implementation of the Botev (2017) algorithm
    (https://github.com/brunzema/truncated-mvn-sampler), permitting
    truncation in calculations employing a cross-IM correlation model
  • Introduce two new job parameters: truncation_level_between and
    truncation_level_within allowing the user to specify different
    truncation levels for between-event residuals and within-event
    residuals in a scenario or event-based calculation

[Christopher Brooks (@CB-quakemodel)]

  • Add ability to specify deltas for tau and phi within ModifiableGMPE.

[Michele Simionato (@micheles)]

  • Extended the cross checking between IMTs and GSIMs to ConditionalGMPEs
  • Extended export_job_zip to scenario calculations

[Anirudh Rao (@raoanirudh)]

  • Added the Holmgren et al. (2024) GMM for Southeastern Africa
  • Removed experimental liquefaction models and refactored
    the secondary perils test suite
  • Supported embodied carbon as a new loss category

[Michele Simionato (@micheles)]

  • Improved error message when all assets are filtered out
  • Fixed a bug when prefiltering sources around the poles
  • Made it possible to run risk calculations depending on AvgSA
  • Internal: inferring the slow tasks information from starmap_info
  • Removed numpy.random.seed in the engine code base
  • The NegativeBinomialTOM can now be applied to all parametric sources

Climate Change - Natural Hazard and Storms - Python
Published by nastasi-oq about 1 month ago

tespy - TESPy version 0.10.2

What's Changed

New Contributors

Full Changelog: https://github.com/oemof/tespy/compare/v0.10.1...v0.10.2

Consumption - Buildings and Heating - Python
Published by fwitte about 1 month ago

RRTMGP.jl - v0.22.2

RRTMGP v0.22.2

Diff since v0.22.1

Merged pull requests:

  • Ts/vendor dev guides (#614) (@tapios)
  • add set_volume_mixing_ratio for well-mixed gases (#615) (@szy21)
  • set z and metric_scaling for the isothermal boundary layer (#616) (@szy21)

Atmosphere - Radiative Transfer - Julia
Published by github-actions[bot] about 1 month ago

ESMValCore - Version 2.15.0

Please see changelog for details.

Climate Change - Climate Data Processing and Analysis - Python
Published by flicj191 about 1 month ago

OpenMethane - v1.6.1

openmethane-prior v1.6.1 (2026-07-15)

πŸŽ‰ Improvements

  • Extracted shared filter_by_anzsic_code_family() helper to remove duplicated ANZSIC code family filtering in NPI, Safeguard, and oil/gas site sources. Fixed simplify_anzsic_code() so subdivision codes ending in zero (e.g. "30") are not over-shortened. (#200)
  • Only runs tests and actions which need credentials for internal PRs and pushes (#202)

πŸ› Bug Fixes

  • Fix failing tests due to updated ANGA inventory (#204)
  • Remove NT oil well filtering based on the PURPOSE field which no longer contains accurate data (#207)

Emissions - Emission Observation and Modeling - Python
Published by aethr about 1 month ago

echoSMs -

Added

  • Add a changelog to the repository

Changed

  • Fix typos and grammar in documentation
  • Give the datastore schema browser more window width in the documentation
  • All documentation gets the datastore URL from one source now (it is no longer hard-coded in the documentation)
  • Improved axes labels for 3D plots of datastore surface shapes

Fixed

  • Resolve errors in example Python code in the documentation and the Viewer program

Biosphere - Marine Life and Fishery - Python
Published by github-actions[bot] about 1 month ago

Anker Solix Integration for Home Assistant - 3.7.0

Release 3.7.0

[!IMPORTANT]
🚨 Read the breaking changes before upgrading 🚨

This release adds support for the new SOC limit settings of Solarbank 2 & 3 systems. It also adds the new load type selection for Solarbank 3 custom and smart plug schedules, in order to support controllable AC charge power for dedicated time slots.
There are also a couple of MQTT managed device improvements, especially for supporting the reverse charge mode of the AS200 alternator charger.

Additional general improvements include diagnostics support for devices and the hub configuration, to allow quick and easy download of the corresponding cached data. Furthermore the firmware and OTA update sensors have been replaced with update entities for centralized update notifications through Home Assistant

πŸ’–A big THANK YOU to the community and your sponsoring and support to keep this project active. πŸ’–
"Buy Me A Coffee"

Enhancements: πŸ“’

  • Bumped Api library to release 3.7.0 for enhanced MQTT device support and support of new Solarbank 2 & 3 features

  • Implemented HA diagnostics support for the hub configuration and the devices (#551)

    • Device diagnostics will download only the device cache data, with most sensitive but independent data redacted
    • Hub diagnostics will download the configuration data as well as the whole cache of the update coordinator, with most sensitive but independent data redacted

[!IMPORTANT]
Device and System identifiers from diagnostics CANNOT be redacted without loosing their dependencies within the cache structures. In order to provide a completely randomized export from your account data (including optional MQTT messages from owned devices), you need to use the Export systems action

  • Implemented update entities for devices to utilize HA functionality to report available firmware updates (#550) (Thanks @SH1FT-W for the suggestion)

    • HA will now report available Anker Solix firmware updates under Settings, System, Updates
    • The new update entity does consolidate the information of the former firmware and ota_update sensors
    • The installed firmware version must now be obtained from the update entity attribute installed_version. It can also be obtained from the entity's device information property sw_version.
    • Component information is now provided in a human readable table format in the more info dialog.
    • Any leading 'v' of firmware versions is now stripped to support comparisons by the update entity

[!NOTE]
Firmware updates through the integration will not be supported and they sill must be triggered through the Anker mobile app. You can skip the update notification in HA, if the actual device firmware update will be postponed.

  • MQTT Enhancements for a couple of devices

    • Added A1726/A1728 DC switch control (#531, #316) (Thanks @gimmers-eth)
      • Mapped DC switch state field to enable the DC switch control entity
    • Updated AX170 circuit fields (#539, #312) (Thanks @tmcor))
      • Up to 2 circuits can be paired during setup
      • Paired circuits will now be recognized and power will be combined to the first circuit of the pair. The other circuit will be removed from
        the cache data (see breaking changes)
      • Added/updated AC power, battery power, other load through the dock and overall home demand
    • Updated AS200 Alternator Charger data fields and added support for reverse charge controls (#290) (Thanks @mgTerminator)
      • Identified status fields for existing cable connections to properly block unsupported controls depending on connections
      • Added reverse charge mode selection entity (selection is only possible if supported PPS expansion cable is connected to charger)
      • Added mappings for PPS data received upon expansion cable connection (serial, model type, SOC, temperature, remaining time). They will be provided with 'Device 1' power and status sensors and attributes
    • Updated C2000 Gen 2 fields
      • Added remaining time
      • Added mappings for attached charger (serial, model type, mode). They will be provided with 'Device 1' power and status sensors and attributes
    • Enhance X1 support by updating status enumerations (#314) (Thanks @Shaan-alpha)
    • Fix and extend Power Panel MQTT mappings (A17B1) (#310) (Thanks @xjc10)
  • Various enhancements to support latest Solarbank firmware changes

    • Add support for AC charge setting in custom and smart plug schedules (#538)
      • This feature requires Solarbank 3 with supported firmware
      • New select entity to control the load type in current schedule time slot
      • Updated Anker Solix schedule actions to support additional and optional load type selection for Solarbank 3 systems
      • See Info documentation Home load type for more details
    • Add support for new SOC charging/discharging limits for Solarbank 2 and 3 (#529)
    • Add support for new backup SOC settings for Solarbank 3 and Power Dock systems
      • This feature requires Solarbank 3 or Power Dock with supported firmware
  • Updated export system module

    • Randomize all known device serials from cloud Api in MQTT binary messages.

[!IMPORTANT]
Unknown serials like battery expansion packs or devices running only in local MQTT mode cannot be randomized in binary MQTT data.

Breaking changes: πŸ’₯

  • Some code changes require newer HA core versions.
    • The minimum version was increased to HA 2025.12.0
    • Integration update will not be allowed if running on older core versions
  • Country Romania (RO) cloud server assignment was reverted back to EU server
    • Recent users confirmed that their system and device data was created on the EU server by the mobile App
    • Romanian users with systems and devices located on the COM server need to change their hub configuration to another country that is assigned to the COM server, e.g. Unites States
    • Romanian users with systems and devices located on the EU server can now safely revert their country setting to Romania
  • The firmware and ota_update sensors have been removed and replaced by a new update entity
    • They can safely be removed from your devices in the active hub configurations
    • Optionally you can reconfigure your hub with existing credential confirmation, which will automatically remove all entities and re-create only remaining entities
  • AX170 power dock circuit sensors may become unavailable
    • If circuits have been paired during the power dock installation setup, the power will now be combined under one circuit.
    • The unavailable circuit entities of the paired circuits can be safely removed
  • For upgrades from version < 3.6.3, see breaking changes in 3.6.3 release notes

Fixes πŸ”¨ and other changes: πŸ”§

  • Reverted country assignment for RO back to EU cloud server since original change seems to be wrong (#250)
    • see breaking changes
  • Changed country assignment for JP to EU cloud server (#557)
  • Fix deprecation warning: Integration passes a non-string value of type int as hw_version to the device registry (#549)

Full Change log https://github.com/thomluther/ha-anker-solix/compare/3.6.3...3.7.0 and link to previous release notes 3.6.3

General notes: πŸ“‹

  • MQTT data may get stale if required status messages are not longer published by the device. Some devices publish specific status messages only while their real-time trigger is active. If you overlay MQTT data, the stale MQTT values cannot be refreshed anymore by new Api data, see example in issue #401. This is working as designed, therefore you have the choice whether MQTT data should overlay Api data.
  • The device sensor for battery energy is just a theoretical value and calculated by the Api library from calculated (or customized) battery capacity and the reported SOC. Changes of this entity should NOT be considered for the energy dashboard or energy helper sensors, since this battery energy sensor can never reflect the battery efficiency or capacity loss over time. Furthermore the SOC value may be inaccurate as well since that is difficult to determine for LiFePo batteries.
  • I do NOT recommend to use the Anker Solix integration daily energy statistic sensors directly in your energy dashboard, even if that is possible since they are classified as total_increasing sensors. The reasons for that are described in the discussion how to integrate the Solarbank into you energy dashboard. There you can also find the recommended approach for creating the required entities for easiest and most flexible energy dashboard integration. If your device supports accumulated energy values from decoded MQTT data, they may provide a more accurate source for your helper sensors, which I recommend to be used for energy dashboards.

Contribution: πŸ™Œ

  • YOUR HELP is required if you have new Anker Solix devices or if new features are introduced by Anker and you want them being integrated into HA
  • I have no chance to test any Anker devices or explore the cloud Api requests and responses for new devices or features. Since the Api is not official, no documentation exists and the Api library can only be enhanced with your support and willingness to explore and test the Api queries:
  • Enhancements may only be possible when exclusive owner access to the system is available.
    • But since the system belongs to you and the Api usage is not officially supported, it is up to you to test and verify Api capabilities
  • MQTT device data requires decoding of binary data for your owned device type and constellation before they can be consumed

Appreciation: ✨

If you like this integration and you want to show your appreciation for the countless hours spent to enhance and maintain it, I would be happy for a 🍡coffee β˜• or if you become a sponsor πŸ’–.
"Buy Me A Coffee"

Renewable Energy - Photovoltaics and Solar Energy - Python
Published by thomluther about 1 month ago

Oceananigans.jl - v0.110.11

Oceananigans v0.110.11

Diff since v0.110.10

Merged pull requests:

  • (0.110.11) Restores update_state! ordering for nonhydrostatic model (#5791) (@jagoosw)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 month ago

CloudMicrophysics.jl - v0.37.1

CloudMicrophysics v0.37.1

Diff since v0.37.0

Changes

  • Exposing the Frostenberg 2023 parameters for calibration

Merged pull requests:

  • docs: improve formatting, fix typo (#679) (@haakon-e)
  • Bump codecov/codecov-action from 6.0.1 to 7.0.0 (#724) (@dependabot[bot])
  • Make the pointwise 2M+P3 tendencies ForwardDiff-differentiable (#725) (@haakon-e)
  • rft: cleanup from #681 (#736) (@haakon-e)
  • fix: units of Barklie Gokhale 1959 (#739) (@haakon-e)
  • chore(deps): bump actions/checkout from 4 to 7 (#745) (@dependabot[bot])
  • ci(docs): add per-ref concurrency to the documentation workflow (#747) (@haakon-e)
  • GPU performance: eliminate warp divergence and reduce compile times (#748) (@tapios)
  • GPU performance optimizations (#750) (@tapios)
  • ci: refresh dev-guides sync workflow from template (#752) (@imreddyTeja)
  • fix: trigger CLA on bot PR review and auto-merge events (#755) (@k-alphonse)
  • Prevent dependabot from pushing doc previews (#756) (@imreddyTeja)
  • refactor(P3,2M): regime selector, aspect-ratio types, and collision-path fixes (#757) (@haakon-e)
  • Use the Frostenberg 2023 a and b coefficients in INP_concentration_mean (#758) (@jefftyoder)
  • chore(deps): bump actions/checkout from 4 to 7 (#759) (@dependabot[bot])
  • Pin JuliaFormatter to v2.10.1 (#763) (@nefrathenrici)
  • New release v0.37.1 (#765) (@trontrytel)

Closed issues:

  • fix: trigger CLA workflow during bot PR review and auto-merge events (#754)

Atmosphere - Atmospheric Chemistry and Aerosol - Julia
Published by github-actions[bot] about 1 month ago

hyswap - v1.0.1

What's Changed

  • Replace GH action versions with specific commit hashes
  • Remove some errant min_years references
  • Switch most examples to use dataretrieval.waterdata module and add some automatic ordering to percentile functions
  • Fix typo in cumulative hydrograph plots that was incorrectly selecting the lowest cumulative flow year

Full Changelog: https://github.com/DOI-USGS/hyswap/commits/v1.0.1

Hydrosphere - Freshwater and Hydrology - Jupyter Notebook
Published by ehinman about 1 month ago

iNaturalistReactNative - v1.0.26+221

FIXED

  • User still appears in following list after unfollow
  • Icon buttons provide visual feedback when pressed
  • Activity icons not appearing on Me tab

UPDATED

  • Mobile CV model to 2.30

Biosphere - Biodiversity Citizen Science - Fluent
Published by jtklein about 1 month ago

openfoodnetwork - v5.7.3 Chicken Pulao

What's Changed

User-facing changes πŸ‘€

API changes ⚠️

Experimental features for testing 🚧

Technical changes πŸ› οΈ

Dependencies πŸ“¦

New Contributors

Full Changelog: https://github.com/openfoodfoundation/openfoodnetwork/compare/v5.7.2...v5.7.3

Consumption - Agriculture and Nutrition - Ruby
Published by chahmedejaz about 1 month ago

Volca - v0.9.2

What's Changed

Full Changelog: https://github.com/ccomb/volca/compare/v0.9.1...v0.9.2

Industrial Ecology - Life Cycle Assessment - Haskell
Published by github-actions[bot] about 1 month ago

VITALS - v2.2.0

This is an overhaul of the repository designed to implement a few new features:

  • Add PACE & EMIT Tutorials
  • Add pyproject.toml for building/installing the repository as the vitals package
  • Add src/vitals/pace_tools.py and src/vitals/utils.py modules
  • Add citation.cff

And change some existing functionality:

  • Move shared Python modules from python/modules/ to src/vitals/ and rename python/EMIT_NEON/ to python/emit_neon/
  • Replace earthaccess.collection_query with earthaccess.search_datasets and remove pinned earthaccess version (fixes https://github.com/nasa/VITALS/issues/59)
  • Improve merge_emit granule ID retrieval when earthaccess file handlers are passed to emit_xarray in emit_tools.py
  • Update NEON notebooks for new filepaths, token handling, and neonutilities version
  • Update README with a full table of contents, citation guidance, and related resources
  • Update setup instructions, environment.yml, and web-book Quarto files (_quarto.yml, index.qmd)
  • Update contract numbers in notebook footers where applicable
  • Various spelling/grammar fixes

Sustainable Development - Education - Jupyter Notebook
Published by ebolch about 1 month ago

WOMBAT - v0.13.4

What's Changed

Full Changelog: https://github.com/NLRWindSystems/WOMBAT/compare/v0.13.3...v0.13.4

Renewable Energy - Wind Energy - Python
Published by RHammond2 about 1 month ago

soilDB - soilDB 2.9.2

soilDB 2.9.2 (2026-07-10)

  • EDIT base URL (for get_EDIT_ecoclass_by_geoUnit() and make_EDIT_service_URL()) updated to new USDA-managed server: https://edit.sc.egov.usda.gov/
  • SoilWeb-based Web Coverage Services (soilColor.wcs(), ISSR800.wcs(), mukey.wcs()) have been updated with FY26 maps, now including most OCONUS soil surveys (AK, HI, PR, PW, GU, AS, MP)
  • downloadSSURGO() gains arguments include_spatial and include_tabular that are analogous to arguments of the same name from createSSURGO(). Also, added LAPPLY.FUN to support arbitrary parallel or progress reporting backends. Thanks to feature request from @dylanbeaudette (#470).
  • createSSURGO() improved performance of reading and writing of tabular data and type conversion

What's Changed

New Contributors

Full Changelog: https://github.com/ncss-tech/soilDB/compare/2.9.1...2.9.2

Natural Resources - Soil and Land - R
Published by AndrewBrown-USDA about 1 month ago

RRTMGP.jl - v0.22.1

RRTMGP v0.22.1

Diff since v0.22.0

Merged pull requests:

  • Release v0.22.0 (#612) (@tapios)
  • Allocation-free copy (#613) (@tapios)

Atmosphere - Radiative Transfer - Julia
Published by github-actions[bot] about 1 month ago

RRTMGP.jl - v0.22.0

  • Internal compute buffers now use device-dependent physical layouts behind a
    uniform column-first (ncol, nlay/nlev) indexing convention: optical
    properties (OneScalar, TwoStream), source functions (SourceLWNoScat,
    SourceLW2Str, SourceSW2Str), and the broadband flux buffers (FluxLW,
    FluxSW). On the GPU the storage is column-first, giving coalesced access
    (on an A100 at DYAMOND scale this cuts longwave kernel times by 25-36% and
    shortwave all-sky by 14-20%); on the CPU the storage stays vertical-first
    under a lazy PermutedDimsArray wrapper, preserving the stride-1 vertical
    sweeps (and CPU performance) while running the same kernel code.
    The Layer-2 flux getters (lw_flux_up, net_flux, ...) still present
    plain (nlev, ncol) views: they read Fluxes.FluxPresentation arrays that
    update_fluxes! fills from the compute buffers with one fused transposing
    copy per call (so getters remain Array-materializable, broadcastable, and
    reducible on the GPU). The opt-in per-band buffers (FluxBand) keep the
    host-facing (nlev, ncol, n_bnd) layout. Breaking for Layer-1
    (functional-core) users
    : code reading the workspace fields directly
    (slv.flux.flux_up, op.Ο„, ...) must swap index order to [gcol, ilev]
    or wrap the buffer in Fluxes.lazy_transpose. State inputs
    (AtmosphericState arrays) and all boundary-condition arrays are
    unchanged.
  • New TransposedStateCache: column-first copies of the hot
    AtmosphericState arrays (layer pressure/temperature/dry-air column
    amount/relative humidity, level temperatures), refreshed by one
    permutedims! per spectral solve, so the gas-optics g-point loop reads
    coalesced memory on GPUs. On by default on the GPU (the RTE workspace
    constructors build one; the RRTMGPSolver shares a single cache between
    the longwave and shortwave workspaces) and off (nothing) on the CPU,
    where the state's vertical-first layout is already cache-friendly; pass
    state_cache = nothing to opt out, or pass the same cache to several
    workspaces to share the storage.
  • Documentation reorganized along tutorial / how-to / explanation / reference
    lines: two new executable (Literate.jl) tutorials β€” "A first radiation
    calculation" and "Radiative-convective equilibrium", which reproduces
    Manabe's classic fixed-relative-humidity climate-sensitivity experiment with
    RRTMGP's clear-sky optics β€” plus four how-to guides (driving RRTMGP from a
    host model, running on GPUs, caching the lookup tables, per-band fluxes).
    The README now gives a Thermodynamics.jl-style overview with quick starts.
  • Struct docstrings migrated off DocStringExtensions.FIELDS to explicit
    # Fields sections (per the CliMA documentation policy), so field
    descriptions and units render on the API pages without inline field
    docstrings.
  • New unit tests for previously indirect paths: every interpolation /
    bottom-extrapolation scheme against closed forms (including a dry-adiabat
    round-trip through interpolate_levels!), solver-constructor and getter
    guard errors, validate_inputs field-by-field, the incident-longwave-flux
    boundary condition, pointwise deep-atmosphere flux scaling, heating-rate =
    net-flux divergence, gray clip!, aerosol-only LookupBundle round-trips,
    cloud-radiative-effect sign checks in the all-sky tests, and the McICA
    reproducibility tests now also run in Float32.
  • New advisory GPU benchmark ratchet (perf/benchmark_ratchet.jl + a
    soft-fail Buildkite step): the DYAMOND-scale solve_lw!/solve_sw! medians
    are compared against per-GPU baselines committed under
    perf/benchmark_baselines/, flagging wall-time regressions beyond 20%
    without blocking merges. The three DYAMOND benchmark scripts are now
    includable (their sweeps run only when executed as scripts).
  • New docs page "Fortran and paper concordance": tables mapping RRTMGP.jl
    names (containers, RTE/gas-optics/cloud/aerosol kernels) to the Fortran
    rte-rrtmgp mo_*/ty_* names and to the papers whose equations they
    implement, so Fortran-literate readers can navigate instantly.
  • The standalone (Layer-3) path is complete: standard_atmosphere(FT; kind)
    builds an idealized clear-sky AtmosphereProfile (:tropical,
    :midlatitude_summer, :subarctic_winter β€” analytic two-segment
    temperature, exact hydrostatic pressure, idealized water vapor/ozone,
    present-day well-mixed gases), and solve(profile; method) solves it in one
    call β€” ClearSkyRadiation (default) or GrayRadiation. Both solve and
    solve_gray now return a documented RadiationOutput struct with stable
    field names (lw_up … sw_direct_dn, net, heating_rate, solver);
    solve_gray previously returned a NamedTuple with the same names, so
    field access is unchanged.
  • New prepare_atmosphere!(solver): runs the atmospheric-state preparation
    cascade (level interpolation, isothermal boundary layer, clipping, dry-air
    column amounts) without solving, so hosts can inspect the prepared state β€”
    the prepare/solve split. update_fluxes! is now literally
    prepare_atmosphere! followed by the three solve/combine steps.
  • Breaking: lookup_tables now returns a typed [LookupBundle] instead of
    a nested (; lookups, lu_kwargs) NamedTuple: stable fields
    (lookup_lw, lookup_sw, cloud/aerosol tables, the name→index maps, and the
    band/gas counts), nothing where a table is absent. Code that indexed the
    NamedTuple (e.g. bundle.lookups.lookup_lw, bundle.lu_kwargs.nbnd_lw) drops
    one level (bundle.lookup_lw, bundle.nbnd_lw).
  • New save_lookup_tables(path, bundle) / load_lookup_tables(path, grid_params)
    cache the lookup tables on disk (Julia Serialization; a same-version cache,
    not an interchange format), so the spectral methods can run without NCDatasets
    once a cache has been generated β€” e.g. for standalone/classroom use.
  • The CPU and CUDA solver drivers now share device-agnostic per-(g-point,
    column) bodies (*_gpt_col! in src/rte/), removing the duplicated
    orchestration where backend asymmetries repeatedly crept in. As part of the
    unification, the broadband shortwave direct beam sw_direct_flux_dn is now
    accumulated at every level: it was previously meaningful only at the
    surface row (a documented limitation inherited from PR #550), with the rows
    above holding the first g-point's profile on CPU and uninitialized memory on
    GPU.
  • Breaking (with aliases): renamed two modules for clarity β€” Vmrs β†’
    VolumeMixingRatios and GrayUtils β†’ GrayAtmosphere. The old names remain
    as const aliases for one release and will be removed in 0.24.
  • Breaking: renamed aerosol_idx() β†’ aerosol_index_map(), resolving the
    one-character collision with aerosol_index(name) (which returns a single
    index rather than the whole map).
  • Float32 accuracy overhaul of the RTE kernels: series-switch threshold for the
    longwave no-scattering source at eps^(1/4) (was 100Β·eps), exact Ξ³1 βˆ’ Ξ³2
    identities in the two-stream k, expm1-based thin-layer factors, a consistent
    off-resonance evaluation of the shortwave direct reflectance/transmittance,
    exact non-cancelling delta-scaling forms, an addition-built direct-beam
    profile, a continuous gas-optics Ξ· interpolation at Ξ· = 1, and a restructured
    longwave two-stream source (exact 1 βˆ“ Rdif βˆ’ Tdif factorizations, so no term
    divides by Ο„ and thin layers keep their real O(Ο„) emission instead of being
    zeroed below a threshold). Measured Float32↔Float64 broadband agreement
    improves 25–90Γ—: every longwave path now sits at its ~2–5e-4 W/mΒ²
    interpolation-noise floor (from 1.1e-2–3.4e-2). A new ratcheting f32↔f64
    consistency test (test/float32_consistency.jl) locks the gains, and the
    Float32 longwave no-scattering reference tolerances tighten from 0.05 to
    5e-3 W/mΒ².
  • New RRTMGP.Numerics module: every numerical guard constant (k_min,
    Ο„_thresh, resonance_window, ΞΌβ‚€_min) in one place with its derivation.
  • New opt-in input validation: set RRTMGP.check_values[] = true to have
    update_fluxes! validate solver inputs (pressures/temperatures positive and
    finite, cos_zenith ∈ [-1, 1], emissivity/albedos ∈ [0, 1], VMRs β‰₯ 0) via
    validate_inputs; off by default and allocation-free when off.
  • Lookup loaders now assert the canonical gas slots the kernels hard-code
    (h2o β†’ 1, o3 β†’ 3) and that temperature_Planck is in Kelvin (the g128 file
    variants store an integer index, which would silently corrupt the Planck
    interpolation).
  • Breaking: the public API is now centered on RRTMGPSolver plus a complete set of named
    getters (layer_temperature, level_pressure, net_flux, ...), built on the functional
    solve_lw!/solve_sw! core. Hosts exchange every input and output through the getters β€” a
    documented, ClimaCore-free data-exchange contract β€” and drive the solve with a single
    allocation-free, type-stable update_fluxes! that returns nothing (results are read back
    through the getters).
  • Breaking: removed the deprecated positional-argument constructors that warned to use
    RRTMGPGridParams: the old signatures of OneScalar, TwoStream, FluxLW, FluxSW,
    SourceLWNoScat, SourceLW2Str, SourceSW2Str, NoScatLWRTE, TwoStreamLWRTE,
    NoScatSWRTE, TwoStreamSWRTE, and VmrGM, plus source_func_longwave,
    source_func_shortwave, and init_vmr. Construct these with RRTMGPGridParams (and
    VolumeMixingRatioGlobalMean for VmrGM).
  • Breaking: RRTMGPGridParams now takes domain_nlay (the physical layer count) instead
    of nlay, and adds the isothermal boundary layer internally; the stored nlay field is the
    total. Callers no longer compute domain_nlay + 1 themselves.
  • Breaking: removed the internal RRTMGPData{Order} data-layout types and helpers
    (NVCData/VCData/NCData/NData, set_cols!/set_domain!/domain_view, and the
    index-order tags); the getter-based API does not use them.
  • Lifted the grid-adaptation helpers out of ClimaAtmos into RRTMGP as separable, in-place
    functions over plain (nlay, ncol) array views: interpolate_levels!,
    add_isothermal_boundary_layer!, clip!, and update_concentrations!.
  • clip! now also clamps the spectral solvers' layer/level temperatures into the
    valid range of the optics lookup tables β€” the tables' first and last reference
    temperatures (lookup.t_ref_min/t_ref_max, 160–355 K for the standard tables),
    read straight from the lookup table β€” moving the clamp that ClimaAtmos applied
    before every radiation call into RRTMGP's own input preparation. The gray path is
    deliberately not clamped: it uses no lookup tables, and idealized gray atmospheres
    can legitimately reach temperatures outside the lookup range.
  • Added standalone entry points that need no NetCDF lookup tables β€” solve_gray,
    default_parameters, and heating_rate (in K/s) β€” for single-column/classroom use.
  • Added optional spectrally-resolved (per-band) fluxes: construct with spectral_fluxes = true,
    then read spectral_{lw,sw}_flux_{up,dn,net} and the band edges {lw,sw}_band_bounds. Off by
    default, and the broadband path is byte-for-byte unchanged.
  • Added a canonical aerosol species name map: the aerosol getters take canonical names
    (sulfate, sea_salt1, black_carbon_rh, ...), and hosts map their own short names
    (so4, ss1, ...) to these.
  • Added deep_atmosphere_inverse_scaling (an RRTMGPSolver kwarg/getter): a (nlev, ncol)
    factor applied to the fluxes for deep-atmosphere geometry, where the host passes the
    multiplicative inverse of its metric scaling (the low-level metric_scaling argument is
    unchanged).
  • RRTMGPSolver and its optics/source workspaces are now Adapt-able via custom overloads
    that preserve the packed-buffer view topology across device transfers, so checkpoint restores
    stay zero-allocation.
  • Fixed VolumeMixingRatioGlobalMean, which threw an UndefVarError on every call.
  • New documentation: "The functional core" and "The getter contract" pages.

Migration

RRTMGPGridParams now takes the physical domain_nlay and adds the isothermal boundary layer
itself, so host adapters (ClimaAtmos/ClimaCoupler) no longer compute the total layer count:

- nlay = domain_nlay + Int(add_isothermal_boundary_layer)
- gp = RRTMGPGridParams(FT; context, nlay, ncol, isothermal_boundary_layer)
+ gp = RRTMGPGridParams(FT; context, domain_nlay, ncol, isothermal_boundary_layer)
+ nlay = gp.nlay        # total, if you still need it (e.g. for state allocation)

Results are read through the getters after the solve: update_fluxes!(solver, seed) returns
nothing, so use net_flux(solver) (a domain-masked view) or the raw solver.net_flux_buffer.

Atmosphere - Radiative Transfer - Julia
Published by tapios about 1 month ago

The Public Utility Data Liberation Project - PUDL v2026.7.2

PUDL is an application that must be installed from the repository using pixi.

Installation:

git clone https://github.com/catalyst-cooperative/pudl.git
cd pudl
git checkout v2026.7.2
pixi install

Data Release:

Data products generated by this release will be published separately to Zenodo
as well as s3://pudl.catalyst.coop/'v2026.7.2'.

Changes:

See Release Notes for details.

What's Changed

Other Changes

Full Changelog: https://github.com/catalyst-cooperative/pudl/compare/v2026.7.1...v2026.7.2

Energy Systems - Energy Data Accessibility and Integration - Python
Published by github-actions[bot] about 1 month ago

GBIF Name Parser - name-parser 5.0.0

First release of the 5.x line. This is now an API-only, single-module project (name-parser-api): the data model, the NameParser contract, and name/rank/unicode utilities. The parsing engine has been reimplemented in Rust and is
consumed through this interface via a native binding β€” see gbif/name-parser-rust (https://github.com/gbif/name-parser-rust).

Highlights

  • Three-way ParseResult (Parsed | Informal | Unparsable), sealed. parse(...) never throws; type() and code() are available on all three variants. Informal is a new dedicated result for a supraspecific taxon carrying a provisional,
    non-code designation (Rhizobium sp. RMCC TR1811, Bartonella group).
  • parseAuthorship(...) returns Optional instead of throwing.
  • UnparsableNameException is now unchecked, raised only by the opt-in ParseResult.orElseThrow().
  • NameType.IDENTIFIER β€” a new classification for anchorless machine identifiers (BOLD BIN, UNITE SH, OTU/ASV, culture-collection accessions) that previously fell into OTHER.
  • The bundled Java parser is gone. For a working NameParser, use the native Rust binding; to stay on the pure-Java engine, remain on the 4.x branch.

Fixes in this release

  • Authorship.addAuthor/addExAuthor no longer drop real authors (inverted blank-check corrected).
  • equals/hashCode now include authorship β€” previously two names differing only in authorship compared equal. Behavioral change: any code relying on the old authorship-blind equality (e.g. dedup) should re-check.
  • copy() deep-copies its mutable collections instead of aliasing them.

Migration

See Migrating from 4.x to 5.0 (https://github.com/gbif/name-parser#migrating-from-4x-to-50) in the README.

Biosphere - Biodiversity Data Cleaning and Standardization - Java
Published by mdoering about 1 month ago

PowerIO - v0.7.1

  • The SCOPF Julia wire conversion is structural (#252): every struct reaching
    the wire classifies its fields (index, renamed, value) through an exhaustive
    destructure, so a new field fails to compile until classified and a value
    field reusing an index name is never renumbered. Wire output is unchanged.
  • GOC3 parses once per read (#250): the reader hands its parsed document
    forward as Parsed::document, and the package boundary derives the
    operating point series from it instead of reparsing the retained text.
  • DcOpfInstance carries the constant cost term c0 (generator and nodal
    data), and the DC OPF bundle writes c0.mtx/c0_gen.mtx (bundle schema
    0.3.0).
  • Balanced formats harvest and emit coordinates (#183): PowerWorld aux
    Latitude:1/Longitude:1, pandapower bus geo Point strings, PyPSA
    buses.csv x/y, each in both directions. Writers with no geometry concept
    warn that locations were dropped.
  • The standalone geographic document (#184): GeoLayer/ElementKey with
    tolerant reads (headerless buscoords CSV, aliased CSV/JSON records, GeoJSON)
    and canonical GeoJSON writes (.geo.json, the powerio_geo foreign
    member); DisplayFormat::GeoJson/DisplayData::Geo;
    Network::geo_layer()/apply_geo_layer() with multiconductor equivalents
    in powerio-pkg; Branch.route/DistLine.route polyline routing (payload
    schemas 1.2.0); .pwd promotion (geo_layer_from_pwd,
    apply_substation_points, pwd_mercator_to_lonlat); and
    powerio geo extract | apply | convert in the CLI.
  • C ABI and Python bindings for the new surfaces (#249, #185), all additive
    (PIO_ABI_VERSION stays 4): pio_acopf_from_network / pio_acopf_to_json
    / pio_acopf_instance_free, pio_geo_parse / pio_geo_extract /
    pio_geo_apply, and pio_dist_geo_extract / pio_dist_geo_apply. Python
    gains parse_geo, Network.geo_layer()/apply_geo_layer()/acopf_instance(),
    and the distribution equivalents.
  • DeepMind OPFData reader (#258): SourceFormat::DeepMindOpfDataJson reads
    one raw OPFData JSON document as a solved snapshot, echoes the same format
    byte for byte, and converts through the standard surface (CLI, C ABI,
    Python).

What's Changed

Full Changelog: https://github.com/eigenergy/powerio/compare/v0.7.0...v0.7.1

Energy Systems - Energy Data Accessibility and Integration - Rust
Published by github-actions[bot] about 1 month ago

GridFM - v0.8.1

What's Changed

Full Changelog: https://github.com/gridfm/gridfm-graphkit/compare/v0.8.0...v0.8.1

Energy Systems - Grid Analysis and Planning - Python
Published by romeokienzler about 1 month ago

GridFM - v0.8.0

What's Changed

New Contributors

Full Changelog: https://github.com/gridfm/gridfm-graphkit/compare/v0.0.7...v0.8.0

Energy Systems - Grid Analysis and Planning - Python
Published by romeokienzler about 1 month ago

WildlifeDatasets - v1.0.9

New functionality

Other changes

Biosphere - Terrestrial Wildlife - Jupyter Notebook
Published by sadda about 1 month ago

timex_lca - V1.1.2

To speed up calculation in the case that detailed background contribution analysis is not needed, the option
lci(expand_technosphere=False) was introduced. Note this feature existed before but was broken in recent releases.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by jakobsarthur about 1 month ago

ClimaSeaIce.jl - v0.5.7

ClimaSeaIce v0.5.7

Diff since v0.5.6

Merged pull requests:

  • [codex] Improve docs references and public docstrings (#161) (@navidcy)
  • Update README + docs landing page (#162) (@navidcy)
  • Fix rendering in the Docs/Layered snow + ice section (#163) (@navidcy)
  • (0.6.0) Add thermodynamics mass fluxes (#166) (@simone-silvestri)
  • (0.5.7) bump version (#167) (@simone-silvestri)

Cryosphere - Sea Ice - Julia
Published by github-actions[bot] about 1 month ago

Oceananigans.jl - v0.110.10

Oceananigans v0.110.10

Diff since v0.110.9

Merged pull requests:

  • Bump CUDA in /test (#5696) (@dependabot[bot])
  • Remove type-instability in buffer_*_parameters (#5748) (@simone-silvestri)
  • Bugfix in left center-field boundary conditions with PerturbationAdvection (#5767) (@tomchor)
  • Speed up multi_region cubed sphere and zstar tests (#5775) (@tomchor)
  • (0.110.10) Fix substeps alignment in SplitExplicitFreeSurface (#5788) (@simone-silvestri)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 month ago

pyOpenRiverCam - v0.9.9

[0.9.9] = 2026-07-13

Fixed

  • bug in optimize_instrinsic. Case where distortion coefficients were already known and 6 or more GCPs were provided, were re-constraining the distortion coefficient.
  • bug in command-line interface. With --src and --dst provided on CLI, code would crash. This is now solved, and user is no longer asked to provide --src interactively
    as this is always required in any case.

Hydrosphere - Freshwater and Hydrology - Python
Published by hcwinsemius about 1 month ago