Recent Releases of Open Sustainable Technology Projects

EcoAssist - AddaxAI v7.0.7

  • AddaxAI now accepts custom download mirrors, making installing in mainland China possible

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

Nos Gestes Climat - Release v4.14.3

What's Changed

New Contributors

Full Changelog: https://github.com/incubateur-ademe/nosgestesclimat/compare/v4.14.2...v4.14.3

Emissions - Carbon Intensity and Accounting - JavaScript
Published by github-actions[bot] 11 days ago

EcoAssist - AddaxAI v7.0.6

  • Sites and camera folders can now be added in bulk from a CSV file
  • Fixed model installations failing on Windows computers set to East Asian languages (Thanks to @HKimura787)
  • The verification progress now only counts images you can actually review
  • The note explaining how videos are analysed is clearer
  • Fixed an error that could break the deployments page

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

PowerCalc - v1.24.1 🌈

Changes

  • #4450 Update translations @github-actions[bot]
  • #4462 Implement discovery ignore list to prevent duplicate discoveries @bramstroker
  • #4464 Add integration to discovery title @bramstroker

💡 Power profiles

  • #4452 Add yeelight YLQPD-0011 power profile @AlexMihai1804

🚀 Features

  • #4465 Add option to change device @bramstroker

🐛 Bug Fixes

  • #4463 Skip discovery when already setup for composite device @bramstroker
  • #4466 Also look at devices sharing same MAC to prevent duplicate discovery @bramstroker

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

MHKiT-Python - MHKiT-Python: 1.1.1

Bug Fixes

  • Fix edge case for Nortek data files with odd number of bins #459

Renewable Energy - Hydro Energy - Python
Published by simmsa 11 days ago

Open Energy Platform - v1.9.0

Energy Systems - Energy System Modeling Frameworks - Python
Published by jh-RLI 12 days ago

GraphCast - Version 0.3.0

  • Add support for WN2.

Atmosphere - Meteorological Observation and Forecast - Python
Published by andrewlkd 12 days ago

QA4SM - QA4SM v4.1.1

Updates

  1. Add c3S_v2026 dataset

Natural Resources - Soil and Land - Python
Published by shmeleva-awst 12 days ago

Emoncms - 11.15.16

  • improved firmware upload tool
  • Merge pull request #2001 from emoncms/copilot/add-liters-to-unit-options
  • feat: add liters unit option
  • Initial plan
  • Merge pull request #1999 from emoncms/copilot/add-pressure-units-psi-and-bar
  • Add pressure units psi and bar to units.php
  • Initial plan
  • Merge pull request #1995 from emoncms/copilot/add-additional-units
  • test: align UnitsConfigTest docblock formatting
  • feat: add MWh, mi and km feed units
  • Initial plan
  • update vue.js
  • contact details

Full commit diff

Energy Systems - Building Energy Monitoring - PHP
Published by TrystanLea 12 days ago

HydroMT - v1.4.1

v1.4.1 (2026-08-06)

Changed

  • resample_time now requires uniform time steps by default when resampling. Irregular time coordinates that were previously resampled based on their mean timestep now raise a ValueError unless require_uniform_spacing=False is passed.
  • Xarray-based drivers now reject parallel=True with lock=False when the active Dask scheduler is threaded, instead of forwarding an unsafe keyword-argument combination to xarray.open_mfdataset.
  • Multi-file Dataset, GeoDataset and RasterDataset sources with {year} or {month} URI placeholders now check that all resolved periods are present in the opened data, including when local path separators differ between platforms.

Fixed

  • SlippyTileDriver no longer crashes when an AWS credential provider raises while resolving (e.g. an expired SSO token); it now falls back to anonymous access, so public buckets remain reachable.
  • readers.open_mfraster now uses the numeric basename as the concatenation index for files matched by a bare wildcard (e.g. *.tif matching 1.tif .. 12.tif) instead of the file-order fallback, and sorts the matched files so the concat order and variable name no longer depend on the filesystem glob order. (#1465)
  • preprocessing.harmonise_dims no longer applies 0-360 to -180-180 longitude normalisation to projected datasets (x in metres, all > 180), which silently shifted the grid by -360. Normalisation is now only applied for geographic CRS; datasets without a CRS are left unchanged with a warning. (#1476)
  • RasterDatasetAdapter now respects handle_nodata when requested variables are missing from the source: NoDataStrategy.WARN and NoDataStrategy.IGNORE return None (and warn) instead of always raising NoDataException. (#1407)
  • A DataFrame source without an explicit driver now defaults to the pandas driver instead of incorrectly inferring geodataframe_table (which also claims .csv/.parquet) and failing validation. (#1403)

Hydrosphere - Freshwater and Hydrology - Python
Published by github-actions[bot] 12 days ago

EVCC - 0.313.2

Changelog

Other Changes ☀️

  • 5b4b4a333c28bebf1f14663351a6b2833e67856c Sponsor: wait for network to settle during startup check [0.313 backport] (#32557)
  • 4ca64eaf49bf3078c6e92dfbceecfbed6bcdeb54 Warn on repeated requests only when they succeed [0.313 backport] (#32472)

Bug Fixes 🐞

  • 58938bd0a2a950f05299561be04f732db2b18169 Atmoce: fix curtailed for battery [0.313 backport] (#32461)

Consumption - Mobility and Transportation - Go
Published by andig 12 days ago

eCalc - v13.10.0

13.10.0 (2026-08-06)

Features

  • libecalc: add closed-form liquid pump process simulation (#1681) (1b37ab0)

Miscellaneous Chores

  • deps: bump actions/checkout from 6.0.3 to 7.0.1 (8489a3c)
  • deps: bump astral-sh/setup-uv from 8.3.2 to 9.0.0 (1f2dd14)
  • deps: bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.2 (d7ecdb7)
  • deps: bump zizmorcore/zizmor-action from 0.6.0 to 0.6.1 (8cde868)
  • handle ecalc and process events (#1688) (69c7d10)
  • make ecalc compatible with numpy >= 2.4 (#1686) (834a89c)
  • rebundle a compressor (#1679) (d91dd6b)
  • update deps (#1692) (7277272)
  • upgrade dependencies for week 32. Auto-generated by devCalc (d3561ec)

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

openfoodfacts-server - v2.101.0

2.101.0 (2026-08-06)

Features

  • webmanifest: add F-Droid related application (#14206) (bb1bdaa)

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

Mangrove Atlas - v8.0.0-rc.6

8.0.0-rc.6 (2026-08-05)

Features

  • automate deforestation alerts tileset update (#1639) (fc605b7)

Bug Fixes

  • init Transifex Live after hydration to stop text mismatch (#1643) (a614c01)
  • keyboard and screen reader access on core controls (#1645) (8ae284a)
  • mobile layout — welcome modal on small viewports and nav bar width (#1641) (01a582d)
  • point alerts layer at automated deforestation-alerts tileset (#1642) (c489e56)
  • share the current view, not the one the dialog mounted with (#1647) (aa0beca)
  • stop widget cards vanishing while their data loads (#1648) (cffb986)

Biosphere - Forest Observation and Management - Jupyter Notebook
Published by github-actions[bot] 12 days ago

openfoodfacts-server - v2.100.0

2.100.0 (2026-08-06)

Features

  • add density to ingredients for volume quantity conversions to g - WIP (#14119) (b5ac5de)

Bug Fixes

  • also match parent ingredients for Forest Footprint 2026 (#14210) (7859316)

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

dwd_weather - 5.0.0

Breaking changes ⚠️

  • Normalize sunshine units #274 Now everywhere the data is reported in W/m2.
  • Disables airquality stations, as they are sadly removed currently from the dwd servers #266

New features

  • Daily sunshine duration sum: Now the daily sun duration is available as a new sensor and also keeps the history in cache, so no more manually sum up is necessary.

Other

  • Bugfixes and code improvements

❤️ Support My Work

I've been working on this project with a lot of passion and dedication in my free time for nearly over 6 years now (starting summer 2020). If you find dwd_weather useful and appreciate the effort that goes into developing it, please consider making a small donation. Your support helps me continue to provide updates, build new features, and improve the project. Finding motivation for developing besides a full time job is not always easy. So if you would like to sponsor my coffee while coding, I would be very happy ☕

Buy Me A Coffee

Every contribution, no matter how small, is motivating me! Thank you so much for your support! 🙏

❤️ Unterstütze meine Arbeit

Ich arbeite nun schon seit fast über 6 Jahren (seit Sommer 2020) in meiner Freizeit mit viel Leidenschaft und Hingabe an diesem Projekt. Wenn du dwd_weather nützlich findest und die Arbeit dahinter schätzt, ziehe bitte eine kleine Spende in Betracht. Deine Unterstützung hilft mir, weiterhin Updates bereitzustellen, neue Funktionen zu entwickeln und das Projekt zu verbessern. Neben einem Vollzeitjob Motivation für die Entwicklung zu finden, ist nicht immer einfach. Wenn du mir also meinen Kaffee beim Programmieren sponsern möchtest, würde ich mich sehr freuen ☕

Buy Me A Coffee

Jeder Beitrag, egal wie klein, motiviert mich! Vielen Dank für deine Unterstützung! 🙏

💬 Feedback and Contributions

I’m always open to feedback, suggestions, or contributions. Feel free to create an issue or submit a pull request.

Thank you for your support, and I hope you enjoy the new version! 🚀

Atmosphere - Meteorological Observation and Forecast - Python
Published by FL550 12 days ago

ONEARMY - v2.143.0

2.143.0 (2026-08-06)

Features

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

CloudnetPy - CloudnetPy 1.94.2

  • Parse model from filename without hardcoding valid values

Atmosphere - Atmospheric Chemistry and Aerosol - Python
Published by github-actions[bot] 12 days ago

PowerSimulations.jl - v0.38.2

PowerSimulations v0.38.2

Diff since v0.38.1

Merged pull requests:

  • Give MBC test fixture's thermal unit a base power != system base (#1650) (@luke-kiernan)
  • [Do not merge until after Sienna#71] Add docs deploy concurrency guard and Sienna aggregate refresh dispatch. (#1652) (@kdayday)

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

ONEARMY - v2.142.5

2.142.5 (2026-08-05)

Bug Fixes

  • reset Manage subscription button when returning from Stripe (#4815) (3d9107b)

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

pyam - Release v3.5.0

Release v3.5.0

Highlights

Support the central 90% interval [p5-p95] as a limits setting in the statistics module.

API changes

The method len(df) is marked as deprecated. Use either len(df.series) for the number of datapoints or len(df.index) for the number of scenarios.

The method Statistics.summarize() includes a new argument limits that can take the values 'full range', 'interquartile' or 'central 90%'. The previous boolean arguments fullrange and interquartile are marked as deprecated.

Individual updates

  • #993 Mark len(df) as deprecated
  • #991 Support the central 90% as limits in the statistics summary
  • #989 Add an IamDataFrame.series attribute to get timeseries data as pd.Series

Climate Change - Integrated Assessment and Climate Policy - Python
Published by danielhuppmann 13 days ago

LiteFarm - v3.13.0

Release notes

Certifications, Rebuilt for How Farms Actually Certify.

In this release

  • Certifications
  • bug fixes

Consumption - Agriculture and Nutrition - JavaScript
Published by SayakaOno 13 days ago

Ecoscope - v2.18.0

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.7...v2.18.0

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] 13 days ago

echoSMs -

Release notes are available at https://github.com/ices-tools-dev/echoSMs/blob/main/CHANGELOG.md

Biosphere - Marine Life and Fishery - Python
Published by github-actions[bot] 13 days ago

The Community Earth System Model - cesm3_0_beta09

Various component updates.

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

C-Star - 0.8.0

What's Changed

New Contributors

Full Changelog: https://github.com/CWorthy-ocean/C-Star/compare/0.7.0...0.8.0

Emissions - Carbon Capture - Python
Published by ScottEilerman 13 days ago

AMO-Tools-Desktop - MEASUR v1.8.2

A software tool for calculating energy efficiency for a variety of industrial and manufacturing applications.

MEASUR helps manufacturers increase industrial energy efficiency at the plant-level and in specific systems. Learn step-by-step ways to identify opportunities, monitor progress, and improve efficiency in any facility. Some tools help facilities implement an energy management system and prepare to become ISO 50001 and Superior Energy Performance certified. Based on older Department of Energy (DOE) tools, the Industrial Technologies office (ITO, formerly the Advanced Manufacturing Office, AMO) has undertaken this effort to refactor the legacy tools into a modern environment.
The suite includes 8 assessment modules (6 energy system, the treasure hunt, and the water balance modules), a Data Exploration Module, extensive help text, comprehensive reports, data visualization, and 80 calculators!

Release Notes v1.8.2

MEASUR is a supported application, updates are expected and may impact previously created assessments.
Warnings:

  • Installing v1.0.0 or an earlier version of this tool will automatically reset your app data. Data can be imported into an earlier version from v1.0.1
  • Do not install an earlier version of this tool without resetting your app data (in settings).
  • Assessments created in MEASUR 0.8.0 or later are not compatible with older versions.
  • Exporting from v.0.8.0 and importing to a lower version will continue to work, though new features will not be available.

What's New?

  • Resolve MEASUR calls to MEASUR-Tools-Suite library creating errors in Steam Header calculator, Chiller Staging calculator and Wastewater assessment

Here are the details of what's new in version 1.8.2:

Calculators

  • Fixed: Steam Header calculator not displaying results
  • Fixed: Chiller Staging calculator not displaying results

Wastewater

  • Fixed: Report SRT Days charts not displaying data

Here are the details of what's new in version 1.8.1:

Application

  • Enhanced: Sponsors list updated
  • Enhanced: Privacy notice updated to clarify observed data

Compressed Air

  • Added: Air Velocity documentation
  • Added: System Capacity documentation

Steam

  • Fixed: SSMT -> Change Fuel Type EEM should be managed by Operational Impacts (settings) visibility

Pumps

  • Enhanced: Upgrade PSAT report building workflow to improve readability and presentation with quicker access to report PDF

Process Cooling

  • Added: Ability to view chiller performance curve after adjustments
  • Added: Allow user to declare unknown pump size
  • Added: Allow user to declare Tower Fan Type Unknown
  • Fixed: Results relating to chiller performance curve
  • Fixed: By default, performance graph shows unadjusted curve
  • Fixed: Use kW/Ton where kW/RT was being used
  • Fixed: issues resulting in stale profile charts for chillers with custom performance

Known Issues:

  • Users are experiencing issues with the desktop auto-update feature on some machines. In some cases this can be resolved by simply closing the application, re-opening, and allowing the auto-update to finish. The development team is actively working on the issue.
  • The Linux release does not support Auto-updating
  • Renaming an export in Windows Download menu can delete the file extension (.json)
  • Assessments made in a previous major release may experience errors
  • Import files made in a previous major release may not be useable due to field additions/removals
  • We have observed cases where if MEASUR is open for a long period of time while many assessments are present, MEASUR performance can become slow. If experienced, close and reopen MEASUR

Consumption - Production and Industry - TypeScript
Published by github-actions[bot] 13 days ago

Macro - v0.2.2

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

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

amr-wind - v4.1.0

Features:

  • OpenFAST 5 enabled
  • Static boundary plane option
  • Can write initial flow to boundary plane and use as inflow BC
  • Boundary planes are now terrain-aware (flow velocity is 0 if next to terrain cell)
  • Boundary planes can be phase-aware (select liquid, gas, or both); enables combining with other BCs
  • ABL Statistics can be calculated and output on finer mesh levels
  • Subvolume output utility: can be output on grids coarser than the mesh itself; different strides in each direction
  • Heterogeneous Forest (canopy model)
  • time.max_wall_time can be specified as simulation-stopping criterion
  • First implementation actuator-based drone representation, featuring an "actuator sector" approach
  • Free surface damping for two-phase cases where underwater flow is important and surface waves are not

Improvements:

  • LES (Kosovic) changes for simulations with terrain
  • More flexibility in setup of ChannelFlow velocity perturbations
  • Mesh information printouts
  • Probe and plane native sampling info output
  • More flexibility and new options for DragForcing, TerrainDrag, ChannelBuilder
  • Kynema-FMB interface

Fixes:

  • OversetRefinement segfault
  • ChannelBuilder restarts

Renewable Energy - Wind Energy - C++
Published by mbkuhn 13 days ago

Model My Watershed - 1.40.1

This minor release was deployed at 11:55 AM EDT on August 5, 2026.

Bug Fixes:

Infrastructure Upgrades:

Natural Resources - Water Supply and Quality - JavaScript
Published by rajadain 13 days ago

Deadtrees.earth - v2026.08.05.3

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.05.2...v2026.08.05.3

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

Deadtrees.earth - v2026.08.05.2

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.05.1...v2026.08.05.2

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

Deadtrees.earth - v2026.08.05.1

What's Changed

Docs

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.05...v2026.08.05.1

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

openfoodfacts-server - v2.99.0

2.99.0 (2026-08-05)

Features

  • add a script to convert product schema (#14137) (bdbac35)
  • add taxonomy entries for language mismatch (#14144) (9640812), closes #14120
  • handle sv:"fruktmängd Xg $fruit per 100g" (#14026) (a64beba)
  • Propagate additive classes to parsed additive ingredients (#14089) (e30c764)
  • recognize origins adjectives in ingredients analysis e.g. Swedish strawberries and creme anglaise (#14047) (e71d5c5)

Bug Fixes

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

GT4Py - GT4Py v1.2.0

Changes since v1.1.12

General

  • Drop support for Python 3.10 and 3.11.
  • Update dace dependency to 2.0.0a5.

Cartesian

  • Add gtscript.lazy_function decorator that delays parsing of annotated gtscript functions until first use, enabling types that are not fully defined at import time.
  • Update the C++ standard to C++20 for generated code.
  • Fix derived math functions in the DaCe backend to respect literal float precision, matching Fortran behavior.
  • Avoid long compilation times in the DaCe backend by skipping a costly simplification pass.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.12...v1.2.0

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 13 days ago

Deadtrees.earth - v2026.08.05

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.5...v2026.08.05

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

TaxonWorks - Version 0.64.0 release

Added

  • Assigning OTU to taxon name task #130
  • ProjectOrganization model, link projects to org/depiction metadata #5027
  • Radial annotator: Add pagination to citations slice #4964
  • In the TaxonName verbatim author/year task, add a Source selector as an option when citing, and add a modal for assigning page numbers to source-only citations that get added to names
  • Add object ID to Radial annotator/object/navigator header #4978
  • TypeMaterials slice to radial collection objects in Filter Collection Objects #4974
  • Taxon Name search now matches on full name + author_year strings, e.g. "Isocapnia crinita (Needham & Claassen, 1925)" #4976
  • Index option in the downloads dropdown in Filter Biological Associations - includes more data than the standard filter results download #5017
  • Biological Associations Index tsv download link from Project data overview and download #5017
  • Add help text on Geographic Area autocompletes explaining that searching for washington un, e.g., returns Washington state, United States (so does WA by the way!)
  • Add sort-column icons to the header row of the labels table in Print Labels

Changed

  • Upgraded postresql client to version 18
  • Names limit in the Match OTUs to Taxon Names task is now 3k, up from 1k
  • Move the list of unifiable types to Ruby (no user-facing changes)
  • View observation matrix task is now Browse observation matrix
  • The Print Labels table wraps the text in its columns more, to fit the whole table on smaller screens
  • Updated Ruby gems

Fixed

  • Filters: Sort buttons do not reset their state when the table content changes
  • Notification sound triggers multiple times when there is more than one notification. #4964
  • Error when changing the type of a label from qrcode/barcode to text
  • DwC occurrences importer not checking existing nomenclature date data correctly when matching on author/year
  • Regexes are applied when the user clicks the 'Match' button in the Match OTUs to Taxon Names task
  • "Is absent" checkbox does not display the value saved in session storage when citation form is loaded
  • Include citations on the OTU itself in addition to associated objects, for the endpoint /api/v1/otus/:id/inventory/citations #4983
  • Collecting Events with Georeferences raise an error when attempting to destroy #4937
  • Unify fixes related to: Georeferences when Collecting Events are unified, matrix columns when descriptors are unified, and dynamix matrix rows/columns when dynamic data are unified #4944
  • Unify now preserves list order of associated data: e.g. if two Collection Objects are unified, the kept object has its original list of Taxon Determinations in the same order, followed by the Taxon Determinations of the destroyed Collection Object in their original order
  • Can't unify two Taxon Names when they have the same relationship type from/to a same third Taxon Name #4971
  • A "successful" unify between two Taxon Names, one of which has a synonym, can leave the synonym in an unusable state #4971
  • Unify of two Asserted Distributions with the "same" Citation can cause loss of annotation data from the citation that gets destroyed #4971
  • Unify blocked by "duplicate" is_original citations now works #4971
  • Monograph facilitator: Determination label is not visible in Safari browser
  • Checklist importer crashing on empty originalNameUsageID in some cases
  • Source and Repository autocompletes sometimes miss results, repository usage counts were sometimes wrong #4990
  • OTU autocomplete sometimes returns unuseful results instead of an exact match, even when an exact match exists #4994
  • Biological Association UUID sent to GBIF was bad data (not a UUID)
  • PDF viewer is not rendering pages #5023
  • Add 'Exclude' option to Tags and Confidences facets in filters (for finding objects NOT satisfying the given conditions) #4157
  • New BA: Forms do not reset if a citation has already been created
  • Unexpected failure from api/v1/otus?extend[]=taxon_name when a returned OTU has no taxon name

Biosphere - Biodiversity Data Access and Management - Ruby
Published by LocoDelAssembly 13 days ago

iNaturalistReactNative - v1.0.27+225

FIXED

  • If one observation failed to upload, it blocked all others in the queue in some cases
  • Duplicative scroll when selecting a language

Biosphere - Biodiversity Citizen Science - Fluent
Published by jtklein 14 days ago

goat - v2.4.56 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.55 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.55...v2.4.56

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

InfrastructureSystems.jl - v3.6.3

InfrastructureSystems v3.6.3

Diff since v3.6.2

Merged pull requests:

  • add instructions about TestEnv.jl to Sienna.md (#586) (@luke-kiernan)

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

Ecoscope - v2.17.7

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.6...v2.17.7

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] 14 days ago

HydroShare - Release 3.17.2

What's Changed

New Contributors

Full Changelog: https://github.com/hydroshare/hydroshare/compare/3.16.3...3.17.2

Hydrosphere - Freshwater and Hydrology - Python
Published by porterhyphenborden 14 days ago

Aurora - v2.0.1

  • Updates Aurora 1.5 model checkpoint paths to the official HuggingFace repository

Atmosphere - Atmospheric Composition and Dynamics - Python
Published by jweyn 14 days ago

Deadtrees.earth - v2026.08.04.5

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.4...v2026.08.04.5

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

DSSAT Cropping System Model - v4.8.6.0

Official release version of dssat-csm-os v4.8.6.0

What's Changed

Full Changelog: https://github.com/DSSAT/dssat-csm-os/compare/v4.8.5.0...v4.8.5.65

Consumption - Agriculture and Nutrition - Fortran
Published by fabiooliveira72 14 days ago

EcoAssist - AddaxAI v7.0.5

  • Big photo libraries save much faster.
  • Videos are analysed much faster.
  • The progress bars update more reliably.
  • The MegaDetector v1000-cedar model works again.
  • AddaxAI now tells you when a new version is out.

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

Deadtrees.earth - v2026.08.04.4

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.3...v2026.08.04.4

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

Ecoscope - v2.17.6

What's Changed

Other Changes

Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.5...v2.17.6

Biosphere - Conservation and Restoration - Python
Published by github-actions[bot] 14 days ago

Deadtrees.earth - v2026.08.04.3

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.2...v2026.08.04.3

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

CodeCarbon - v3.3.0

What’s Changed

  • Release 3.3.0 (#1291) @benoit-cty
  • fix: raise HTTP errors from ApiClient instead of returning None (#1277) @sankalpsthakur and @PSR94
  • Add support for Windows Energy Meter Interface (EMI) (#1263) @benoit-cty
  • fix: delete unused OIDC helpers / clean front (#1289) @SaboniAmine
  • docs: remove mentions to Nextjs in docs (#1240) @inimaz
  • Update README with new links and sponsor section (#1282) @davidberenstein1957
  • docs: clarify tracking_mode affects RAM and CPU (#1163) @hamza-mobeen

⬆️ Dependencies updates

  • build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /webapp in the npm_and_yarn group across 1 directory (#1290) @dependabot[bot]
  • build(deps): bump the pip group across 2 directories with 1 update (#1292) @dependabot[bot]
  • build(deps): bump the uv group across 3 directories with 1 update (#1293) @dependabot[bot]
  • build(deps): bump the uv group across 3 directories with 3 updates (#1279) @dependabot[bot]
  • build(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates (#1278) @dependabot[bot]
  • build(deps): bump the uv group across 3 directories with 4 updates (#1245) @dependabot[bot]
  • build(deps): bump ws from 8.20.1 to 8.21.1 in /webapp in the npm_and_yarn group across 1 directory (#1267) @dependabot[bot]

👥 List of contributors

@Copilot, @SaboniAmine, @benoit-cty, @davidberenstein1957, @dependabot[bot], @hamza-mobeen, @inimaz, @sankalpsthakur, dependabot[bot], benoit-cty and @PSR94

Consumption - Computation and Communication - Python
Published by github-actions[bot] 14 days ago

premise - Updated IAM scenarios and IMAGE battery-electric freight

This release updates premise’s default IAM scenario archive, adds battery-electric freight trucks to IMAGE scenarios, and improves uncertainty handling for Swiss hydropower inventories.

Highlights

  • Updated the IAM scenario download source to [Zenodo record 21790981 (https://zenodo.org/records/21790981).
  • Added IMAGE mappings for:
    • 18 t medium-duty battery-electric trucks.
    • 40 t heavy-duty battery-electric trucks.
    • Their corresponding energy-service and electricity final-energy
      variables.
  • Added transparent support for IMAGE’s underscore-based archive filenames. Existing premise pathway names remain unchanged:
    • SSP2-VLHO continues to be the public pathway name.
    • image_SSP2_VLHO.csv is resolved automatically in the Zenodo
      archive.
  • Local IMAGE scenario files are now recognized with either hyphens or underscores.
  • Corrected Swiss reservoir-hydropower water exchanges so retained lognormal uncertainty distributions are rescaled together with their amounts.
  • Added deterministic handling for corrected hydropower exchanges whose original amount was zero.
  • Added regression coverage for scenario downloading, filename compatibility, IMAGE BEV truck mappings, and hydropower uncertainty handling.

Industrial Ecology - Life Cycle Assessment - Python
Published by romainsacchi 14 days ago

Nos Gestes Climat - Release v4.14.2

Full Changelog: https://github.com/incubateur-ademe/nosgestesclimat/compare/v4.14.1...v4.14.2

Emissions - Carbon Intensity and Accounting - JavaScript
Published by github-actions[bot] 14 days ago

imod - Release 1.1.0

This release features a lot of functionality and fixes a lot of things to work better with iMOD5 databases.

See https://deltares.github.io/imod-python/api/changelog.html

Hydrosphere - Freshwater and Hydrology - Python
Published by deltares-service-account 14 days ago

pyrealm - Version 3.0.0 Release Candidate 3

  • Updated workflow for creating Flora objects
  • Allow zero GPP in calculating allocation and growth.

What's Changed

Full Changelog: https://github.com/ImperialCollegeLondon/pyrealm/compare/v3.0.0-rc.2...v3.0.0-rc.3

Biosphere - Plants and Vegetation - Python
Published by davidorme 14 days ago

Deadtrees.earth - v2026.08.04.2

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.1...v2026.08.04.2

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

Deadtrees.earth - v2026.08.04.1

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04...v2026.08.04.1

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

Deadtrees.earth - v2026.08.04

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.6...v2026.08.04

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

QA4SM - QA4SM v4.1.0

Updates

  1. Update Angular and PrimeNG to 21.0
  2. Update Django to 5.2.16 LTS
  3. Fixed file upload drag and drop

Natural Resources - Soil and Land - Python
Published by shmeleva-awst 14 days ago

CloudnetPy - CloudnetPy 1.94.1

  • Fix interval handling in disdrometer processing

Atmosphere - Atmospheric Chemistry and Aerosol - Python
Published by github-actions[bot] 14 days ago

Volca - v0.9.5

What's Changed

Full Changelog: https://github.com/ccomb/volca/compare/v0.9.4...v0.9.5

Industrial Ecology - Life Cycle Assessment - Haskell
Published by github-actions[bot] 14 days ago

wetterdienst - v0.132.0

What's Changed

Full Changelog: https://github.com/earthobservations/wetterdienst/compare/v0.131.0...v0.132.0

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

Breeze.jl - v0.8.0

Breeze v0.8.0

Diff since v0.7.4

 Breaking changes

- `AtmosphereModels.mean_pressure` was removed in favour of `AtmosphereModels.dynamics_pressure`

Merged pull requests:

  • Unify the compressible reference state and set the perturbation-form PGF as default (#863) (@kaiyuan-cheng)
  • Add DCMIP2016 tropical cyclone validation study (#865) (@ewquon)
  • Collapse mean_pressure into dynamics_pressure (#867) (@kaiyuan-cheng)
  • Cap CloudMicrophysics below 0.37.2 to unbreak CI (#879) (@kaiyuan-cheng)
  • Bump JuliaRegistries/TagBot from 1.25.8 to 1.25.10 (#880) (@dependabot[bot])
  • Bump actions/checkout from 6.0.3 to 7.0.1 (#881) (@dependabot[bot])
  • [test] Cap Reactant and use dev version of Oceananigans (#882) (@giordano)
  • [docs] Use new CodeBlocks plugin (#883) (@giordano)
  • Require new version of Reactant (#884) (@giordano)
  • [examples] Increase compression rate of MP4 videos (#885) (@giordano)
  • [tests] Create setup.jl instead of passing init_code to runtests (#888) (@giordano)
  • Remove dev'd Oceananigans.jl (#889) (@dkytezab)
  • Release 0.8 (#892) (@dkytezab)

Closed issues:

  • Unify the compressible reference state: one grid-polymorphic slot, drop the redundant terrain_reference_* (#862)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 14 days ago

VILLASnode - v1.2.0

1.2.0 (2026-08-03)

Features

  • nodes: Add c37.118 node-type with WITH_NODE_C37_118 build option (b87d6b4)

Bug Fixes

  • ci: Refactor Docker -> Container (bdf670f)
  • ci: Refactor secrets.GITHUB_TOKEN to github.token context (2582ec7)
  • cmake: Remove superfluous CMake variable (0d256a6)
  • container: Update links in container usage labels (e3e09ff)
  • nix: Remove deprecated usage of pkgs.system (6e972d4)
  • Remove GPL-2.0 licensed pcimem tool and related files (b1bcb16)

Energy Systems - Grid Management and Microgrid - C++
Published by github-actions[bot] 14 days ago

GridPath - GridPath v2026.8.0

What's Changed

Full Changelog: https://github.com/sylvan-energy/gridpath/compare/v2026.7.1...v2026.8.0

Energy Systems - Energy System Modeling Frameworks - Python
Published by anamileva 15 days ago

Oceananigans.jl - v0.110.14

Oceananigans v0.110.14

Diff since v0.110.13

Merged pull requests:

  • Documentation: FieldTimeSeries, FieldDataset and basic post-processing (#5789) (@erin-atkinson)
  • Add Unicode integral operators (#5820) (@tomchor)
  • Fix ConservativeRegridding extension (#5827) (@simone-silvestri)
  • Fix Metal kernel launches broken by argument pre-conversion (#5832) (@xkykai)
  • Attempt to fix distributed NCCL for open boundary conditions (#5835) (@tomchor)
  • Try capping Reactant to 0.2.276 (#5839) (@dkytezab)
  • Let Reactant set!(u, v) broadcast reduced fields instead of hopping to the CPU (#5840) (@giordano)
  • Require newer version of Reactant (#5842) (@giordano)

Closed issues:

  • Adding a unicode symbol interface for the integral operator (#5816)
  • test_metal.jl "FFT-based Poisson solver" testset flakes on CI (Metal, Julia 1.12) (#5818)
  • Unpin reactant (#5841)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 15 days ago

eDisGo - v0.3.0

This release adds a declarative pipeline runner that describes a whole eDisGo study as a YAML config, large performance improvements on big grids, a reworked optimal power flow and database access, pandas 2.0 support and a restructured documentation. It also fixes the Julia OPF sources missing from the packaged distributions, which broke pm_optimize() in any non-editable installation. See What's new for more information.

Energy Systems - Grid Analysis and Planning - Python
Published by joda9 15 days ago

Deadtrees.earth - v2026.08.03.6

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.5...v2026.08.03.6

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

EcoAssist - AddaxAI v7.0.4

  • Videos now show the species from the frame you can see, and land in the right folder when sorting results.
  • Deployment folders that were renamed or moved can be reconnected again.
  • Missing files keep warning you until you fix them.
  • Exports now include the species name for each photo and video.
  • The same animal no longer appears under two names in the species list and label filter.

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

GEEST - Release v2.0.4

Energy Systems - Energy Data Accessibility and Integration - Python
Published by github-actions[bot] 15 days ago

CloudnetPy - CloudnetPy 1.94.0

  • Calculate disdrometer variables from raw data
  • Support RD-80 processing in CLI

Atmosphere - Atmospheric Chemistry and Aerosol - Python
Published by github-actions[bot] 15 days ago

acoupi - v0.6.1

What's Changed

Full Changelog: https://github.com/acoupi/acoupi/compare/v0.6.0...v0.6.1

Biosphere - Bioacoustics and Acoustic Data Analysis - Python
Published by mbsantiago 15 days ago

Deadtrees.earth - v2026.08.03.5

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.4...v2026.08.03.5

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

Deadtrees.earth - v2026.08.03.4

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.3...v2026.08.03.4

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

Deadtrees.earth - v2026.08.03.3

What's Changed

Frontend

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.2...v2026.08.03.3

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

Home Assistant Octopus Energy - v19.0.0

19.0.0 (2026-08-03)

Bug Fixes

  • Improvements to invalid token recovery (30 minutes dev time) (b7497b8)

Features

  • Add Intelligent State of Charge to show vehicle battery charge level (Thanks @matt7aylor) (ffd980f)
  • Added new sensors to represent power up and power down events which will supercede saving session and free electricity session sensors - Full reasoning can be found at https://bottlecapdave.github.io/HomeAssistant-OctopusEnergy/architecture_decision_records/0004_rename_saving_sessions_free_electricity_sessions (2 hours dev time) (ae7ce2f)
  • Added optional enforcement of intelligent 6 hour cap (3 hours dev time) (24c796c)
  • Added sensor for capturing dispatch hours during current charge cap (1 hour dev time) (9bb5631)
  • Removed free electricity binary sensor in favour of calendar sensor (30 minutes dev time) (afa4d38)
  • Removed saving session binary sensor in favour of calendar sensor (30 minutes dev time) (9def3d8)
  • Removed greener nights sensors due to service being discontinued (30 minutes dev time) (09a10cd)
  • Updated deprecated isOctoplusEnrolled field to use new enrollmentStatus field (15 minutes dev time) (4ac32b2)
  • Updated intelligent charge target to support values from 0 to 100 (5 minutes dev time) (b6cfe42)
  • Updated intelligent target time to allow setting 30 minute intervals throughout entire 24 hour block (5 minutes dev time) (9c552da)
  • Updated rate and standing charge sensors to be reported as measurement to support min/max/average statistics. This is to align with other HA integrations for this type of sensor (30 minutes dev time) (8ced498)

BREAKING CHANGES

Minimum HA Version: 2025.11.0


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

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

Deadtrees.earth - v2026.08.03.2

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.1...v2026.08.03.2

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

Deadtrees.earth - v2026.08.03.1

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03...v2026.08.03.1

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

Deadtrees.earth - v2026.08.03

What's Changed

Maintenance

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.31...v2026.08.03

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

PowerDynamics.jl - v5.0.0

PowerDynamics v5.0.0

Diff since v4.4.1

Version 5.0.0 Changelog

Two themes: the ecosystem move that comes down from
NetworkDynamics v1.0/v1.1
(ModelingToolkit v11, the reworked initialization pipeline, SciML v3), and a per-unit
overhaul that turns base values from per-device constructor arguments into a property of
the bus and line.

The library saw a broad naming and unit cleanup in the process. Renamed parameters fail
loudly at construction, so the practical upgrade path is to build your models and follow
the errors — check the docstrings for anything that no longer takes the argument you
pass it
. The parts that change numbers rather than names are called out explicitly
below.

Breaking: ecosystem

  • All NetworkDynamics v1.0 breaking changes apply unchanged. PowerDynamics
    @reexports NetworkDynamics, so its API is part of the PowerDynamics API — most
    notably set_mtk_defaults! → non-mutating set_mtk_defaults, symbolic expressions as a
    guess now error in favour of initf/guessf, find_fixpoint takes an NWState, and
    MTK models are no longer simplified by mtkcompile. See the
    NetworkDynamics release notes
    for the details and the rewrites. NetworkDynamics ≥ 1.1.0 is required.
  • ModelingToolkitModelingToolkitBase + SciCompDSL
    (#261). MTK v11 split into
    ModelingToolkitBase (MIT) and ModelingToolkit (AGPL); PowerDynamics depends only on
    the MIT half, and @mtkmodel moved out into SciCompDSL. Along with it: Symbolics ≥7,
    SciMLBase ≥3 and the OrdinaryDiffEq* subpackages ≥2.
  • The Bus(...)/Line(...) deprecations are removed; use compile_bus/compile_line.

Breaking: per-unit system

Base values are now part of the model structure rather than something you pass to each
device. There is a new documentation chapter, "Per-Unit Systems", that explains the
whole scheme; the short version:

  • Global bases with accessors: a system power base (100 MVA), frequency base (2π·50
    rad/s) and fallback voltage base, set through the new exported set_Sbase!,
    set_ωbase!/set_fbase! and set_Vbase! (plus get_* counterparts). They are read at
    model construction, so set them before building anything.
  • New SystemBase component carries the global quantities (Sbase, ωbase, ωframe).
    Exactly one instance named systembase sits at the top level of every bus and line;
    MTKBus/MTKLine/compile_bus/compile_line place it for you.
  • BusBar and LineEnd carry Vbase, the one genuinely local base, along with derived
    Ibase/Zbase/Ybase and SI observables (u_kV, P_MW, Q_MVAr, i_kA). Sbase is a
    three-phase power and Vbase line-to-line, hence Ibase = Sbase/(√3·Vbase) — the exported
    helper Ibase(S, V) changed accordingly.
  • Devices inherit their bases and no longer take S_b/V_b/ω_b. Drop those arguments
    at the call site: set the power/frequency base globally and the per-bus voltage base with
    the new MTKBus(…; Vbase=…) / compile_bus(…; Vbase=…) keyword. Vbase propagates
    outward from there — a line end inherits from the bus it connects to (a transformer is
    just a line whose two ends resolve differently, ratio included), and a satellite/injector
    bus inherits from its hub. An explicitly set value always wins.
  • Sn/Vn are now optional, weakly defaulting to the bus base, so a machine running on
    the system base needs no rating at all.
  • LineEnd requires a side keyword (:src/:dst) — it selects which bus the end
    inherits from. MTKLine passes it automatically; hand-rolled line models must be updated.
  • New check_base_consistency(s::NWState), run automatically by initialize_from_pf[!]
    (check=:error by default, :warn/:none to downgrade), verifying that the global bases
    agree everywhere and that every line end and satellite bus matches the bus it hangs off.

Breaking: naming and units in the library

  • Setpoints are spelled …set (Pset, Qset, Vset, ωset, …); n/nom is reserved
    for genuine nameplate ratings (Sn, Vn). Models ported from elsewhere keep their
    source's names so they can still be checked against the original — the AVRs' vref and
    the governors' ω_ref/p_ref are unchanged.

  • EMT components name parameters for what they hold: reactance X and susceptance B
    instead of L and C, which stored reactance/susceptance values all along. The topology
    is in the model name, so there is no ambiguity.

  • Frequency vocabulary is split three ways. One symbol used to do three unrelated jobs:

    symbol kind unit meaning
    ωbase unit rad/s converts SI time ↔ pu; the frequency at which X = ωbase·L, B = ωbase·C were evaluated
    ωframe gauge pu speed of the global dq frame; pinned to 1
    ωset setpoint pu frequency a droop/damping law is commanded to hold

    Consequences throughout the library: an ω0 = 2π*50 keyword on the dynamic shunts,
    branches and ComposableInverter models is gone (they take ωbase from the bus instead),
    every place where the reference frame was an invisible literal 1 now writes ωframe,
    and the dq cross-coupling terms of the EMT components gained the ωframe factor they were
    missing. Since ωframe == 1 these are all algebraically identical to before — the OpenIPSL
    comparison tests pass unchanged.

  • Three models genuinely change behaviour and their parameter sets do not carry over:

    • Swing and IdealDroopInverter had no ωbase at all, so with ω in pu the
      angle advanced ~314× too slowly. Both now use Dt(θ) ~ ωbase*(ω - ωframe). Swing's
      M is the inertia M = 2H in seconds (default 6.0, i.e. H = 3 s) and D a damping
      power coefficient in pu/pu (default 2.0); IdealDroopInverter's Kp is a pu droop
      (default 0.05). Retune existing parameter sets against these units. A physically sized
      machine is lightly damped, so call sites that want a quickly settling transient now pass
      a D well above the default.
    • DroopOuter/DroopInverter: ω is now pu rather than rad/s, making Kp a
      dimensionless droop (default 0.05). Convert an existing value with
      Kp_new = Kp_old/ωbase — with that substitution the rewrite is an exact identity, and
      the linearization is unchanged.

    IdealDroopInverter and DroopInverter now also share the same droop defaults
    Kp = Kq = 0.05; they previously disagreed on Kq, so swapping one model for the other
    silently changed the voltage stiffness.

  • Smaller renames in the same spirit — VoltageDependentLoad's VnVset,
    PSSE_GENCLS's output port ωoutSPEED_out, and unified state/output names on the
    two PLLs. Consult the docstrings.

Initialization

  • Backward initialization through nested components. NetworkDynamics' new
    initf/guessf metadata lets each model carry its own init recipe; composed together
    they chain into a DAG that can fix every free variable from the powerflow alone, with no
    nonlinear solve at all. The new tutorial "Backward Initialization of Nested Models" builds
    a full generator bus that initializes to "No free variables!", and a new "Advanced
    Initialization"
    documentation chapter covers the mechanics.
  • @pfinitconstraint/@pfinitformula hygiene fixed: both macros mishandled escaping, so
    a constraint could not close over local runtime variables. They now capture locals
    correctly and show prints the macro form you wrote.
  • initialize_from_pf no longer ignores pfs0 — the supplied start state was
    overwritten with the powerflow network, so a hand-tuned guess had no effect. tol/nwtol
    are now forwarded to the residual check.

Library

  • Optional stator dynamics in SauerPaiMachine via SauerPaiMachine(; stator_dynamics=true).
  • compile_bus/compile_line accept a bare injector/branch, wrapping it in
    MTKBus/MTKLine automatically instead of erroring.
  • New mtkcompile keyword on compile_bus/compile_line, forwarded to
    VertexModel/EdgeModel.
  • Bug fixes: ClassicalMachine's Park transform applied the current base ratio upside down
    (wrong currents whenever Sn ≠ Sbase); a disconnected ComposableInverter kept driving
    its LCL filter and wound up to ≈70 pu internally; limited-integrator callbacks now resolve
    the integrator state through the observed-alias chain instead of assuming a name survives
    compilation (visible in PSSE_HYGOV); TurbineGovTypeI could not be constructed at all
    (it is constructible now, but remains untested — there is no reference trajectory for it).
  • Saturation functions (QUAD_SE, EXP_SE, PSSE_ESST4B's FEX_function) are AD-safe and
    use NaNMath, so a slightly out-of-range argument no longer throws a DomainError
    mid-initialization.

Documentation

  • New chapters: "Per-Unit Systems" and "Advanced Initialization" (see above).
  • New "Getting Started with Julia" section
    (#276): the setup page was
    rewritten and joined by "Environment Management" and an opinionated "How to Structure
    Research Projects" guide, aimed at users who arrive at PowerDynamics before they arrive at
    Julia.
  • New tutorial "Backward Initialization of Nested Models"; the EMT toymodel example was
    overhauled, and the initialization and modeling-concepts chapters were reworked for v5.

Merged pull requests:

  • Bump actions/upload-artifact from 6 to 7 (#257) (@dependabot[bot])
  • Bump julia-actions/cache from 2 to 3 (#258) (@dependabot[bot])
  • MTK@v11 Compat (#261) (@hexaeder)
  • Bump julia-actions/cache to v3, remove cache-save workaround (#264) (@hexaeder)
  • Bump julia-actions/setup-julia from 2 to 3 (#269) (@dependabot[bot])
  • Add opinionated guide on how to structure julia research projects to docs (#276) (@hexaeder)
  • Change initial guess for rotor frequency to 1 (#277) (@Sciemon)
  • Bump codecov/codecov-action from 5 to 7 (#279) (@dependabot[bot])
  • Bump actions/checkout from 6 to 7 (#282) (@dependabot[bot])
  • Bump SciMLBase 2->3 ecosystem (#284) (@hexaeder)
  • Adjust PD for init overhaul in NetworkDynamics (#288) (@hexaeder)

Closed issues:

  • Vector state definition not working in @mtkmodel (#240)
  • Need dynamic branch and load (Series RL) model (#241)
  • Find fix point from dynamic equation (#245)
  • Failed to pre-compile PowerDynamics package (#263)
  • unspecific error message for power flow initialization (#266)

Energy Systems - Grid Analysis and Planning - Julia
Published by github-actions[bot] 15 days ago

DispersiveShallowWater.jl - v0.10.3

DispersiveShallowWater v0.10.3

Diff since v0.10.2

Merged pull requests:

  • Bump crate-ci/typos from 1.46.0 to 1.47.0 in the all-github-actions group (#306) (@dependabot[bot])
  • Bump the all-github-actions group with 3 updates (#307) (@dependabot[bot])
  • Fix coverallsapp GitHub action on macOS (#308) (@JoshuaLampert)
  • Use file instead of deprecated path-to-lcov in coveralls action (#309) (@JoshuaLampert)
  • Update TimerOutputs requirement from 0.5.25 to 0.5.25, 1.0 in the all-julia-dependencies group across 1 directory (#310) (@dependabot[bot])
  • Revert workaround related to Coveralls on MacOS (#311) (@JoshuaLampert)

Hydrosphere - Waves and Currents - Julia
Published by github-actions[bot] 15 days ago

pySTEPS - pysteps v1.21.3

What's Changed

Full Changelog: https://github.com/pySTEPS/pysteps/compare/v1.21.2...v1.21.3

Natural Resources - Water Supply and Quality - Python
Published by mats-knmi 15 days ago

Tropical Cyclone Risk Model - TCRM 3.2.1

  1. Solve the wind spike problem when a very weak/remnant storm moving fast, plus the Kepert model’s forward-speed correction becoming unphysical when vFm > Vm.

  2. Solve the problem of synthetic TC intensified over land because the landfall decay coefficient became negative.

Climate Change - Natural Hazard and Storms - Python
Published by LiangHuLiu 15 days ago

cellpy - v2.1.1.post6

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.1.1.post5...v2.1.1.post6

Energy Storage - Battery - Python
Published by jepegit 16 days ago

wetterdienst - Frontend v0.12.1

What's changed in frontend 0.12.1

Security

  • [Build] Resolve all 15 pnpm audit advisories (1 critical, 10 high, 3 moderate, 1 low) in the
    frontend dependency tree. Refreshed transitive dependencies within their existing ranges via
    pnpm update, and added two scoped pnpm overrides for advisories that intermediate packages
    pinned below the fix: brace-expansion (ReDoS) to ^5.0.8 and esbuild (dev-server file read,
    GHSA-g7r4-m6w7-qqqr) to ^0.28.1. pnpm audit now reports no known vulnerabilities.

Atmosphere - Meteorological Observation and Forecast - Python
Published by gutzbenj 16 days ago

wetterdienst - v0.131.0

What's changed in 0.131.0

Added

  • Add a DWD SWSMOS network (dwd/swsmos) exposing the road weather forecast (Straßenwetter-MOS)
    for DWD's ~1800 road weather stations. Each model run provides an hourly forecast out to +167 hours
    (selectable via issue, default: the latest run): air, dew-point and road surface temperature,
    liquid precipitation, precipitation probabilities and the road surface condition. This is the
    forecast counterpart to the DWD road observation network
  • Add the DWD 10_minutes urban climate (Stadtklima) datasets to the dwd/observation network,
    served from DWD's climate_urban/ path (recent period only): urban_precipitation,
    urban_pressure, urban_solar, urban_temperature_air (incl. the new
    temperature_radiant_mean_2m parameter), urban_temperature_extreme, urban_temperature_soil,
    urban_wind and urban_wind_extreme. These complement the existing hourly urban datasets. The
    urban station-description lists are parsed by content because they frequently leave the optional
    date and Bundesland fields blank
  • Add an IPMA (Portugal) observation provider (ipma/observation) backed by the key-less
    api.ipma.pt open-data JSON feeds. Provides near-real-time hourly observations (temperature,
    humidity, sea-level pressure, wind speed/direction, precipitation, global radiation) from ~222
    stations. Recent-only (a rolling ~1-day window), so a date range within the last day is required.
    The -99.0 missing sentinel becomes null and the 8-point wind-direction code is converted to
    degrees
  • Add an LHMT (Lithuania) observation provider (lhmt/observation) backed by the key-less
    api.meteo.lt JSON REST API. Provides hourly observations (temperature, humidity, wind
    speed/gust/direction, cloud cover, sea-level pressure, precipitation, snow depth) from ~52
    stations, with historical data back to roughly 2016 fetched per station and day. Settled past days
    are cached indefinitely while the current day uses a short cache
  • Add a Met Office (UK) observation provider (metoffice/observation) backed by the MIDAS Open
    archive on CEDA (UK Open Government Licence). Covers eight datasets across daily and hourly
    resolution (rain, temperature, weather, wind, radiation, soil temperature). Requires a free CEDA
    account (WD_AUTH__CEDA=<username>:<password>); the bearer token is minted from those credentials
    and cached in-process until shortly before it expires. Multiple report types per day are collapsed
    to one value per calendar day, multi-day rain accumulations are dropped, and native units are
    normalised (e.g. visibility from decametres to metres)

Changed

  • Sharpen the interpolate/summarize endpoint descriptions (which become the MCP tool
    descriptions) and the MCP instructions so agents stop routing plain weather questions to them.
    stations -> values is now stated as the default for weather at a named place even when a
    specific past date is given, and interpolate/summarize are called out as opt-in estimates -- used
    only on explicit request or when no station with data is near the point -- because they add
    inaccuracy

Fixed

  • Type the interpolate/summarize response-model items to match what the endpoints serialise, so
    their MCP output schemas stop rejecting valid results. _InterpolatedValuesItemDict and
    _SummarizedValuesItemDict now include the resolution/dataset keys (always present in the
    rows) and type value/distance_mean/distance/taken_station_id as nullable: interpolating or
    summarizing a point with no station in reach serialises null for those fields, which the previous
    non-null schema rejected (the same schema drift fixed for values in 0.130.0)

Atmosphere - Meteorological Observation and Forecast - Python
Published by gutzbenj 16 days ago

cellpy - v2.1.1.post5

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.1.1.post4...v2.1.1.post5

Energy Storage - Battery - Python
Published by jepegit 16 days ago

tsam - v4.0.0

4.0.0 (2026-08-02)

tsam v4 is a rewrite of the internals: aggregation is now a chain of stateless functions in src/tsam/pipeline/, the class-based TimeSeriesAggregation API has been removed — tsam.aggregate() is the single entry point — and every internal identifier moved from camelCase to snake_case. For the overwhelming majority of configurations the results are bit-identical to 3.4.2; the exceptions are listed below and in the migration guide, which says for each change whether — and what — you need to do.

The v4 line was squash-merged as a single commit (#234); the entries below are reconstructed from the pull requests it contains.

⚠ BREAKING CHANGES

  • the legacy TimeSeriesAggregation API and the v3 compatibility shims have been removed — use tsam.aggregate() instead (#337, #338)
  • package structure reorganized (utils/algorithms/, new pipeline/, public serializers) (#338)
  • new pipeline architecture, weight decoupling, and snake_case API (#176)
  • per-column weights are now a top-level argument of aggregate(); ClusterConfig(weights=...) raises TypeError (#176)
  • cluster and segment representations are resolved independently — v3 silently discarded the cluster setting when both were set (#436)
  • the duration representation preserves the integral and the min/max envelope (#376)
  • cluster_representatives, reconstructed, and original return columns in input order instead of alphabetically sorted (#234)
  • MinMaxMean naming a column that is not in the data — or the same column in both min_columns and max_columns — now raises ValueError instead of being silently ignored (#234)
  • review follow-ups on the v4 pipeline (#434)

Features

  • new pipeline architecture (#234) (5d99d59)
  • concurrency-preserving distribution ordering (#377, #400)
  • type annotations for all functions in src/tsam (#339, #402)
  • plot: compare() gained time_slice and a color dimension (#338)
  • plot: new cluster-representative plot (#412)

Bug Fixes

  • result: ClusteringResult.apply() is now faithful to the run it replays (#438)
  • algorithms: representative selection breaks ties deterministically (#439)
  • pipeline: restore v3 parity for period sums (#436)
  • representations: correct maxoid variable name and document its scope (#366, #419)
  • docs: disable navigation.instant so notebook plots render (#388)

Deprecations

  • result.plot.cluster_weights() is renamed to result.plot.cluster_counts(); the old name still works and emits a FutureWarning
  • Distribution(scope="cluster") is renamed to Distribution(scope="local"); "cluster" is normalized and emits a FutureWarning (#378, #382, #383)

Documentation

  • documentation restructured along Diátaxis (Tutorials / How-to / Explanation / Reference) (#412)
  • v4 API reference and architecture docs (#331)
  • docstrings normalized to Google style (#339, #379, #384, #416)
  • terminology in docs and notebooks aligned with the glossary (#422)
  • branding and logos unified across README and the RTD landing page (#433)
  • tuning-notebook animation starts at full resolution (#421)

Already shipped in 3.x (v4 ports — not new when upgrading from 3.4.2)

  • DatetimeIndex preserved through the aggregate/disaggregate round-trip (#314 — released in 3.4.0)
  • column weights in the accuracy metrics (#263 — released in 3.3.0)

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

PowerCalc - v1.24.0 🌈

Changes

  • #4431 Add documentation about cost sensor tariffs @bramstroker
  • #4441 Reduce test suite duplication with shared helpers @bramstroker
  • #4446 Enable renovate automerge for non-major updates @bramstroker

💡 Power profiles

  • #4410 add Zigbee Switch 1 Gang No Neutral @Maxik933
  • #4412 add Dreame D10 plus model.json @Maxik933
  • #4413 Add linkind Smart RGBTW Bulb (1011) von Leedarson power profile @Maxik933
  • #4436 Add option for discovery by config entry @bramstroker

🚀 Features

  • #4421 Add Danish translations @bramstroker
  • #4423 Add finnish translations @bramstroker
  • #4424 Add hungarian translations @bramstroker
  • #4425 Add Norwegian Bokmål translations @bramstroker
  • #4426 Add Chinese Simplified translations @bramstroker
  • #4442 Add individual standby energy sensor @bramstroker
  • #4443 Implement test matrix for all supported HA versions @bramstroker

🐛 Bug Fixes

  • #4427 Fix energy price sensor GUI selector @bramstroker

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

HarvestStat - v1.2 (official)

HarvestStat Africa v1.2

Harmonized subnational crop statistics for 33 Sub-Saharan African countries.
This is the current recommended version.

Archived version of record (citable):
https://doi.org/10.5061/dryad.vq83bk42w

The assets attached to this release are byte-identical to the Dryad v1.2 deposit.
The same files are tracked in
public/,
which holds only the latest stable release; earlier versions are available via
tags and
releases.

On v1.1 — v1.1 (2026-01-09) was an internal consistency release and was never
published to GitHub Releases or Dryad. Its changes are folded into v1.2 and
documented in the
CHANGELOG.


Summary of changes since v1.0

  • Rows: 203,125 → 217,487 | net +14,362
    (36,800 added · 22,438 removed · 2,939 revised by >5%)
  • Admin units: 1,109 → 1,128 | net +19
  • Countries affected (13): Angola, Benin, Burkina Faso, Ethiopia, Kenya,
    Lesotho, Malawi, Mozambique, Somalia, South Africa, South Sudan, Sudan, Zambia

Breaking changes — read before updating

Ethiopia FNIDs re-keyed. The 2014 delineation (ET2014A…) is replaced by the
2021 delineation (ET2021R…): 77 units removed, 96 added. The regions are the same
but subdivided more finely — Sidama is split out from SNNPR, several Oromia and
SNNPR zones are disaggregated, and zone names are updated throughout
(e.g. Bench MajiBench Sheko, Gamo GofaGamo / Gofa, Argoba
Argoba Special Woreda). Both the crop statistics and boundary files use the 2021
keys in v1.2. Code joining on Ethiopia FNIDs from v1.0 will silently drop rows.

Country names standardized to ISO 3166-1 short names.
DRCCongo, The Democratic Republic of the;
TanzaniaTanzania, United Republic of. FNIDs and admin names are unchanged.

Somalia fully re-ingested. Prior rows are replaced across all affected crops.
Pepper is superseded by Chili Pepper, and the harvest-year encoding is corrected.
Coverage now extends to 2026 (Deyr planted October 2024, harvested March 2026);
treat years beyond 2024 as potentially incomplete seasons.

Series removed without replacement.
Ethiopia: Avocado, Lemon, Mango, Orange, Papaya, Pineapple.
Mozambique: Ginger, Jute, Macadamia, Tea, plus scattered years lost across
2002–2022 — Mozambique has removals only, with no additions.


Notable additions

  • Kenya 2006–2011 subnational annual record recovered (+1,275 rows, no removals).
    The gap arose from data tied to the KE2007A2 / KE2009A2 delineations, now
    linked and harmonized onto the 47-unit KE2013A1 structure, consistent with the
    source data (#94,
    #96).
  • Zambia backfilled to 1990 for most crops; Maize extends to 1980, the earliest
    coverage in the dataset. New series include Bambara groundnut, Pineapple,
    Sugarcane, and Velvet Bean.
  • Ethiopia rebuilt across 1993–2022 under a revised production-system
    classification, spanning cereals, pulses, oilseeds, cash crops, and vegetables.
  • South Africa extended to 2023–2025, plus a new Oats series (2013–2025).
    Shared rows show systematic yield corrections of 6–25% for Maize, Soybean, and
    Wheat.
  • Benin extended to 2023, with new Chili Pepper, Cotton, and Tobacco series and
    new Cashew and Coffee crops.
  • Angola adds horticultural crops (2015–2017) and staples (2007–2017).
  • Burkina Faso extended back to 1984 for all major crops.
  • Lesotho (2023–2024), Malawi (Maize 2024), and South Sudan (Cereal
    Crops aggregate, 2013–2022) receive smaller updates.
  • Shapefile distribution of the boundary file is included for the first time
    (introduced in the unpublished v1.1).

Changes that are not corrections

Burkina Faso's very large percentage changes for 1984–2000 are artifacts of a
production-system reclassification, not revisions to the underlying statistics.
Sudan's ~5% changes for 1975–2010 are within rounding tolerance and are not
material corrections.

Country-by-country detail:
CHANGELOG.md


Contents

File Description
hvstat_africa_data_v1.2.csv Harmonized subnational crop statistics
hvstat_africa_boundary_v1.2.gpkg FEWS NET-aligned administrative boundaries, joined via fnid
hvstat_africa_boundary_v1.2_shp.zip Same boundaries as ESRI Shapefile (.shp, .shx, .dbf, .prj, .cpg)
fdw_raw_data_v1.2.zip Raw FEWS NET Data Warehouse (FDW) extracts for 33 countries
Readme.md Dataset documentation and column definitions

Crop statistics — column definitions

Column Description
fnid FEWS NET unique geographic unit identifier
country Country name (ISO 3166-1 short name)
country_code ISO 3166-1 alpha-2 country code
admin_1 First-level administrative unit name
admin_2 Second-level administrative unit name (if applicable)
product Crop product name
season_name Growing season name
planting_year / planting_month Start of planting
harvest_year / harvest_month End of harvest
crop_production_system Production system (e.g. irrigated, rainfed)
qc_flag Quality control flag (0 = none, 1 = outlier, 2 = low variance)
area Cropped area (ha)
production Production volume (mt)
yield Yield (mt/ha)

The boundary files carry fnid, country, country_code, admin_1, admin_2,
and geometry. The Shapefile distribution truncates country_code to
country_co under the 10-character DBF field-name limit; the GeoPackage uses the
full name.

Raw FDW files are named by ISO 3166-1 alpha-2 code (adm_crop_data_raw_{CC}.csv);
SDSS covers Sudan and South Sudan jointly.


Source data note

HarvestStat Africa is a derived, harmonized product built from multiple original
source documents and data products. It is not a direct redistribution of the
original source files or database records. Original sources are listed in Table S1
of the paper's Supplementary Information.


Citation

Lee, D., Anderson, W., Chen, X., Davenport, F., Shukla, S., Sahajpal, R., Budde, M.,
Rowland, J., Verdin, J., You, L., Ahouangbenon, M., Davis, K. F., Kebede, E.,
Ehrmann, S., Justice, C., & Meyer, C. (2025).
HarvestStat Africa – Harmonized Subnational Crop Statistics for Sub-Saharan Africa.
Scientific Data. https://doi.org/10.1038/s41597-025-05001-z

Dataset: https://doi.org/10.5061/dryad.vq83bk42w

Consumption - Agriculture and Nutrition - Jupyter Notebook
Published by gnodnooh 16 days ago

leafmap - v0.63.1

What's Changed

New Contributors

Full Changelog: https://github.com/opengeos/leafmap/compare/v0.63.0...v0.63.1

Sustainable Development - Data Catalogs and Interfaces - Python
Published by giswqs 16 days ago

PowerIO - v0.7.3

Security fixes for parsing untrusted case files. The parsers are written to reject malformed input with an error, never to crash, exhaust memory, or read or write files outside the ones named on the command line; this release closes several gaps in that model.

  • A PowerWorld .aux legacy DATA header whose field list closes before it opens (] before [) no longer panics on an inverted slice. It returns a read error, matching the guard the parenthesized form already carried.
  • OpenDSS Redirect/Compile/Buscoords no longer read arbitrary local files. Parsing from a string (parse_dss_str, and the C ABI and Python string entry points) disables filesystem includes entirely, so untrusted .dss text cannot pull in a file such as /etc/passwd and echo its contents back through bus names. Parsing from a file (parse_dss_file) still follows includes, now confined to the case directory: an include that resolves outside that directory is refused with a warning, whether it climbs out with .. or is an absolute path outside the directory.
  • OpenDSS phases, windings, and wdg counts are capped. A single small property could otherwise size a dense n by n conductor matrix or a per-winding vector into the gigabytes; an oversized value clamps to the supported maximum with a warning.
  • A PMD ENGINEERING impedance or admittance matrix dimension is capped the same way, so an array of thousands of empty rows no longer demands an n by n allocation.
  • The matrix pipeline and the CLI sensitivities command sanitize the case name before it forms an output filename. A name like ../../x or an absolute path can no longer steer a write outside the chosen output directory.
  • The PowerWorld .pwd reader groups drawing records by tag in logarithmic time and bounds its substation identity search with a probe budget, so a crafted file cannot force quadratic work.
  • The OpenDSS include confinement holds for a case file parsed by bare filename: an empty case directory no longer passes every path as a prefix match, so Redirect /etc/passwd in parse_dss_file("master.dss") is refused. A case directory that itself starts with .. now confines rather than refusing everything under it.
  • OpenDSS includes are also checked after symlink resolution: a lexically contained include that is really a symlink out of the case directory is refused. parse_raw_file now confines includes exactly like parse_dss_file instead of following them anywhere on disk.
  • sanitize_stem follows Windows filename rules (trailing dots trimmed, reserved device names like con prefixed, length capped) and appends a short hash of the original name whenever sanitization changed it, so two distinct case names that sanitize alike (a/b and a_b) cannot silently overwrite each other's files in a multi case export. The gridfm dataset writer routes its output directory through the same sanitizer.
  • A DistNetwork arriving without reader caps (the model JSON C entry point deserializes one unchecked) can no longer force quadratic allocation out of linear-size input: the BMOPF writer caps the dense zero fill for an absent linecode/shunt matrix and the transformer x_sc pair expansion at 64 conductors/windings, with a warning.
  • A Network JSON bus id near usize::MAX is rejected when 3-winding transformers are present, closing an integer overflow in the synthetic star bus allocation that could alias an existing bus. An oversized piecewise cost ncost clamps instead of overflowing during normalization and Surge export.
  • The Python mcp extra pins the SDK below 2.0, which removed the mcp.server.fastmcp module the server imports.
  • OpenDSS like= splicing is capped per object. A self-referencing or mutually-referencing chain (Edit Load.a like=a repeated) otherwise doubled an object's property count each edit, so a few hundred bytes could exhaust memory; the splice is now refused with a warning past the cap.
  • The PMD writer no longer panics on a transformer with no windings, reachable from a PMD or BMOPF document with the winding array absent. The emergency rating default derives from the first winding only when one exists.
  • A PSS/E transformer COD field of an extreme magnitude (which saturates to i64::MIN) no longer overflows when the control mode is decoded; it reads as a fixed ratio.
  • The PowerWorld .aux reader routes a bus's own BusNum/Number through the same validation as every bus reference, so a fractional or out-of-range value is a read error instead of a silently truncated or saturated id.
  • A GOC3 bus uid of bus_<usize::MAX> no longer overflows when its suffix is mapped to a bus id; it falls back to the 1-based document position.
  • The MCP server's allowed-roots write check follows a symbolic link in the output filename before deciding containment. A dangling link named as the output file, sitting inside an allowed root but pointing outside it, could otherwise pass the check while the write escaped the sandbox.
  • Lifting a GOC3 time series into a package operating-point series binds the declared time_periods to the interval_duration array length (the same equality the SCOPF loader enforces). An oversized time_periods that does not match the data no longer drives an unbounded per-period allocation; the series is refused with a diagnostic and the package stays static.
  • The PMD writer caps the conductor count it expands into square matrices. A switch or voltage source terminal map is a linear model array, and a 35 KB case file naming thousands of terminals drove a 360 MB document and 1.5 GB of resident memory; the matrices now emit at 64 conductors with a warning while the terminal list itself stays faithful. Reachable from any distribution case file, not only the unchecked C entry point.
  • The dist graph builder caps the transformer winding count feeding its pair expansion, so a DistNetwork deserialized without reader caps cannot turn a linear winding array into a quadratic edge list.
  • A degenerate model matrix (rows shorter than the row count) reads as zero in the PMD writer instead of panicking on an out of range index, matching the DSS writer.
  • sanitize_stem hashes a name that already carries the disambiguating suffix shape, so the suffixed and unsuffixed name spaces stay disjoint: a case cannot be named to impersonate another case's disambiguated stem, which took no search to construct because the suffix derives from a published hash. The suffix widens to 64 bits, and the DC OPF bundle writer routes its output directory through the same sanitizer instead of a weaker local copy.
  • The CLI refuses a conversion sidecar whose path is absolute or climbs out of the output directory, closing the join before a writer can reach it.
  • Fuzz harnesses cover the distribution family (dss, pmd_json). Both parse and then write the network back, since a reader cap that does not hold shows up in the consumer that sizes an allocation from it.

What's Changed

Full Changelog: https://github.com/eigenergy/powerio/compare/v0.7.2...v0.7.3

Energy Systems - Energy Data Accessibility and Integration - Rust
Published by github-actions[bot] 17 days ago

Volca - v0.9.4

What's Changed

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

Industrial Ecology - Life Cycle Assessment - Haskell
Published by github-actions[bot] 17 days ago

climpact - Climpact v3.4.2

EHF heatwaves have been replaced by the implementation of EHF heatwaves documented by Nairn and Fawcett (2015) and Nairn et al. (2018). Eight annual heatwave aspects are now calculated for EHF heatwaves:
- heatwave number (HWN): number of heatwaves.
- heatwave frequency (HWF): number of days contributing to heatwaves.
- heatwave duration (HWD): length of the longest heatwave.
- heatwave mean duration (HWMD): mean length of all heatwaves.
- heatwave peak severity (HWPS): highest heatwave severity measured across all heatwaves.
- heatwave peak intensity (HWPI): highest heatwave intensity measured across all heatwaves.
- heatwave load severity (HWLS): sum of heatwave severities across all heatwaves.
- heatwave load intensity (HWLI): sum of heatwave intensities across all heatwaves.
Note that severity, intensity and load are concepts taken from Nairn et al. (2018). The above heatwave aspects are documented in Appendix D of the user guide. Note that Tx90 and Tn90 heatwaves remain unchanged.

Nairn, J., B. Ostendorf, and P. Bi, 2018: Performance of excess heat factor severity as a global heatwave health impact index. Int J Environ Res Public Health, 15, 2494.
Nairn, J. R., and R. J. B. Fawcett, 2015: The excess heat factor: a metric for heatwave intensity and its use in classifying heatwave severity. Int J Environ Res Public Health, 12, 227–253.

Climate Change - Climate Data Processing and Analysis - R
Published by heroldn 17 days ago

OpenEMS - 2026.8.0

Release Highlights

  • New implementations:
    • Bitcoin Miners with Braiins OS
    • Fix-Reactive-Power App
    • App for German EEG 2025 (avoid feed-in during negative spot prices)
  • Improved implementations:
    • ENTSO-E
    • Fix-Active-Power Controller and UI
    • Askoma Electric Heater
    • my-PV Electric Heater
    • Mennekes Wallbox
    • Hardy Barth Wallbox
    • FENECON Home, Commercial 50, Commercial 100, Commercial 92, Hybrid 10, 9-10, GW & Mini
    • Siemens Meter
    • ESS Grid-Optimized-Charge Controller
    • SG Ready Heat-Pump
    • Victron
    • Simulator for EVSE ChargePoint
    • REFU Battery Inverter
    • KACO Battery Inverter
    • Clever PV
    • SOCOMEC Modbus/TCP Meter
  • UI improvements:
    • Set ENGLISH as fallback language
    • New-UI improvements
  • Core improvements:
    • Modbus Bridge
    • Power Distribution for ESS Cluster
    • Energy Scheduler v2
    • Apply prettier formatting for UI
    • Update to Angular 22
    • Improve IntelliJ compatibility
    • Integrate AI review & vibe coding skills

Details

OpenEMS Edge

  • FEMS Backports 2026-07-06 in https://github.com/OpenEMS/openems/pull/3814
    • [Edge] Modbus-Bridge: add optional delay between unit id changes Commit
    • [Edge] Document the Power Distribution Commit
    • [Edge] Fix Reactive Power App Commit
    • [Edge] ENTSO-E: only use position 1 for Germany+Austria Commit
    • [Edge] FixActivePower: extend Controller capabilities Commit
    • [Edge] Askoma Heat: integration with Energy Schedule Commit
    • [Edge] Implement Braiins OS meter Commit
    • [Edge] E-Mobility: Mennekes Phase-Switch Commit
    • [Edge] New Grid Optimized Charge Commit
    • [Edge] my-PV writable Commit
    • [Edge] Reset UpdateHandlerTests.java Commit
    • [Edge] FENECON Commercial 92 App: Set Ramp Ess Protection Commit
    • [Edge] OpenemsComponent: add nullable method to get channel Commit
    • [Edge] ReferenceTarget: take default value if property isnt provided in config Commit
    • [Edge] Mennekes improvements Commit
    • [Edge] ManagedSymmetricEss Modbus-Table: expose AvailableChargeEnergy and AvailableDischargeEnergy Commit
    • [Edge] Fix-Active-Power-Controller: add Energy Scheduler v2 support for ONCE-Modes Commit
    • [Edge] BraiinsOS: add JUnit tests Commit
    • [Edge] FENECON Hybrid 10, 9-10, GW & Mini: add missing App properties Commit
    • [Edge] App Center: Siemens Meter app Commit
    • [Edge] GridOptimizedCharge: avoid warnings in combination with Time-of-Use-Ctrl Commit
    • [Edge] Energy Scheduler v2 Integration: Braiins BTC Miner Commit
    • [Edge] Masterbox: mplement GPIO with State Led Commit
    • [Edge] Power Distribution v2: improve reactive power Commit
    • [Edge] MasterBox: implement Modbus Slave Table Commit
    • [Edge] Mennekes App Release Commit
    • [Edge] App-Center: EnergyScheduler Version Task Commit
    • [Edge] Energy getSchedule-Request improvements Commit
    • [Edge] Fix reset of accumulated channels after system restart Commit
    • [Edge] Battery.Fenecon.Home: Fix serial number prefix Commit
    • [Edge] App.FENECON.Commercial.100: VDE4110 GridCode Commit
    • [Edge] App.TimeOfUseTariff: compatibility with FENECON Commercial 100 + EWS Schönau Commit
    • [Edge] App.Tariff.Manual.EEG2025.GridSell: App for German EEG 2025 Commit
    • [Edge] App Center EVCS/EVSE: Required App Version Commit
    • [Edge] Energy getSchedule-Request: add _sum/EssSoc Commit
    • [Edge] Add AppSafetyCountry mapping and Lithuania EN50549 support Commit
    • [Edge] Refactor ESS protection with selectable ramp/voltage modes Commit
    • [Edge] Add MasterBox2v0 and CM4S Gen3 hardware app integration Commit
    • [Edge] Energy Scheduler v2: Add custom constraints to Fitness Commit
    • [Edge] Energy Scheduler v2: Add evaluation step to simulation Commit
    • [Edge] Energy Scheduler v2: Add new hyperparameters Commit
    • [Edge] Energy GetSchedule: round from down to quarter Commit
    • [UI/Edge] Controller.Io.HeatPump.SgReady: add optional meter Commit
    • [Edge/UI] STS-Box: Adjustments to GenSet properties Commit
    • [Edge|Backend] App.Tariff.Manual.EEG2025.GridSell: installable as free App Commit
  • [Edge] Update readme.adoc: added link to referenced source code files by @sjjh in https://github.com/OpenEMS/openems/pull/3817
  • [Edge] io.openems.edge.victron: keep configured capacity when BMS reports 0 by @jankaifer in https://github.com/OpenEMS/openems/pull/3808
  • [Edge] ElectricityMeter: avoid divide-by-zero by @tsicking in https://github.com/OpenEMS/openems/pull/3777
  • [Edge] io.openems.edge.victron: drop all write tasks in Read-Only-Mode by @jankaifer in https://github.com/OpenEMS/openems/pull/3807
  • [Edge] ENTSO-E: add mathematical expression by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3699
  • [Edge] Update readme.adoc: list formating by @sjjh in https://github.com/OpenEMS/openems/pull/3845
  • FEMS Backports 2026-07-15 in https://github.com/OpenEMS/openems/pull/3825
    • [Edge] AbstractWorker: performance fixes Commit
    • [Edge] DependencyUtil: fix potential memory leak Commit
    • [Edge] Energy Scheduler v2: improve Optimizer threads Commit
    • [Edge] AppValidateWorker: fix NPE Commit
    • [Edge] App Core Meta: fix translation Commit
    • [Edge] Tariff.Manual.EEG2025.GridSell: fix unit of fixedGridSellPrice Commit
    • [Edge] Simulator.Evse.ChargePoint: added simulator for EVSE ChargePoint Commit
    • [Edge] FENECON Home: fix wrong configuration of the RS485 interface port Commit
    • [Edge] myPV and Askoma: add links to Modbus documentation Commit
    • [Edge] REFU Battery Inverter: implement using SunSpec protocol Commit
    • [Edge] Commercial 100: add compatibility with peak shaving Commit
    • [Edge] my-PV manual schedule Commit
  • FEMS Backports 2026-07-21 in https://github.com/OpenEMS/openems/pull/3837
    • [Edge] GoodWe support multiple batteries Commit
    • [Edge] FENECON Commercial 50 & 100 Apps: update default values for VDE4110 Commit
    • [Edge] BraiinsOS: allow configuration of three-phase Commit
    • [Edge] Add language to edge user Commit
    • [Edge] SocomecMeter App TCP/RTU support Commit
  • FEMS Backports 2026-07-30 in https://github.com/OpenEMS/openems/pull/3853
    • [Edge] FENECON Commercial: Implement Grid Codex Priority with register 45254 Commit
    • [Edge] Home MasterBox: fix relay validation and internal meter Commit
    • [Edge] Commerical 100: add missing components for 2 Batteries Commit
    • [Edge] Clever PV and Enerix Apps: URL validation Commit
    • [Edge] FENECON Home Masterbox: fix App reference for modbus0 Commit
    • [Edge] Hardy Barth: fix long request Commit
    • [Edge] KACO Battery Inverter: remove CURRENT_STATE_FAULT channel Commit
    • [Edge] Fix: logger is not active Commit

OpenEMS UI

  • FEMS Backports 2026-07-06 in https://github.com/OpenEMS/openems/pull/3814
    • [UI] Energy Scheduler v2 Integration: Braiins BTC Miner Commit
    • [UI] Show EEG 2025 section in Time-of-Use-Tariff-View Commit
    • [UI] Cockpit & prettier Commit
    • [UI] Energy Schedule charts (-4/+20 hours) & more Commit
    • [UI] Enable phase switching for mennekes Commit
    • [UI] fix modbus protocol download Commit
    • [UI] Account creation: improve user feedback Commit
    • [UI] Heat Askoma cleanup Commit
    • [UI] Formly Field improvements Commit
    • [UI] add loading screen for navigation-views Commit
    • [UI] Fix display value handling in AbstractModalLine Commit
    • [UI] Fixes for Tooltips and EVSE + Stats Commit
    • [UI] Synced Tooltip, Colors, Permissions, FENA Commit
    • [UI] Tasks vs. Events, translations, variable instead of getter Commit
    • [UI] ESS-Mode: apply pattern for prediction Commit
    • [UI] ESS Mode-Chart: use full colors Commit
    • [UI] ESS Mode-Chart Commit
    • [UI] Askoma & Keba UI Commit
    • [UI] Fix New Grid Optimized Charge Modes Tooltip units Commit
    • [UI] Improve ESS & Grid charts (incl. sell-to-grid-price) Commit
    • [UI] set min 5 for emergency capacity reserve Commit
    • [UI] fix display of weekdays for weekly Commit
    • [UI] EES Mode-Chart improvements; fix NUI EVCS consumption Commit
    • [UI] Fix sidemenu not closing on logout Commit
    • [UI] Unify page links for BraiinsOS Controller Commit
    • [UI] NUI Chip-Navi: do not show "All Systems" twice Commit
    • [UI] NUI improve Storage, History, Cockpit and Schedule-Charts Commit
    • [UI] NUI: enerixControl Commit
    • [UI] General Improvements Commit
    • [UI] NUI: New Manual Charge/Discharge via Fix-Active-Power-Controller Commit
    • [UI] fix app settings grid layout Commit
    • [UI] Askoma & MyPV Consumption UI errors Commit
    • [UI] Refactor Edge Live navigation and add Braiins pages Commit
    • [UI] NUI: Refactor Modbus TCP Api Commit
    • [UI] NUI: Peak-Shaving Symmetric Time Slot Commit
    • [UI] NUI: temporary fix for failing QueryHistoricTimeseriesEnergy in storage Commit
    • [UI] Remove forecast from heatpump navi Commit
    • [UI] Fixed duplicate formly element tags Commit
    • [UI] NUI: Add navigation to Overview on Mobile chips navi Commit
    • [UI] NUI: semi-transparent prediction, i18n-ally-next, etc. Commit
    • [UI] Changes "Sie" to "Du" form in all german translations Commit
    • [UI] App Center & Energy Journey: fix Commit
    • [UI] LUOX OAuth authentication fix Commit
    • [UI] NUI: Peak-Shaving Symmetric / Asymmetric Commit
    • [UI] NUI Improvements Header, Energy-Monitor, Breadcumbs, Sidemenu Commit
    • [UI] Refresh beta navigation, cockpit layout, and branding assets Commit
    • [UI] my-PV writable Commit
    • [UI] fix wrong values in storage detail view Commit
    • [UI] Fix emergency energy toggle Commit
    • [UI] NUI: Weather Commit
    • [UI] Downgrade ngx-spinner Commit
    • [UI/Edge] Controller.Io.HeatPump.SgReady: add optional meter Commit
    • [Edge/UI] STS-Box: Adjustments to GenSet properties Commit
    • [UI] Schedule-Chart: add marker for current hover position Commit
    • [UI] Grid Price Chart: fix tooltip factor Commit
  • FEMS Backports 2026-07-15 in https://github.com/OpenEMS/openems/pull/3825
    • [UI] Controller.Io.ChannelSingleThreshold: fix history widget was not shown Commit
    • [UI] add group for channel single threshold Commit
    • [UI] NUI: adjust button size of action sheet modal chips Commit
    • [UI] Fix Reactive Power: add Widget Commit
    • [UI] AppCenter: fix rerouting with queryParams Commit
    • [UI] Heating element: new icon Commit
    • [UI] NUI: io channel single threshold Commit
    • [UI] NUI: readd history excel export Commit
    • [UI] ToU: enable show or hide for chart datasets Commit
    • [UI] Set ENGLISH as fallback language Commit
  • FEMS Backports 2026-07-21 in https://github.com/OpenEMS/openems/pull/3837
    • [UI] fix history excel export Commit
    • [UI] General improvements Commit
    • [UI] Migration to angular 22 Commit
    • [UI] fixes for channel single threshold Commit
    • [UI] fix help links Commit
    • [UI] adjust button icon size Commit
    • [UI] Fix conversion of boolean value Commit
    • [UI] fix submit button positioning Commit
    • [UI] EVSE: fix app center vehicles Commit
    • [UI] NUI: Askoma & my-PV Commit
    • [UI] fix routing in for app install via keypopup Commit
  • FEMS Backports 2026-07-30 in https://github.com/OpenEMS/openems/pull/3853
    • [UI] CI: Improve OEM iOS release pipeline Commit
    • [UI] NUI: fix wrong consumption channel Commit
    • [UI] Remove outdated isVersionAtLeast checks before 2025.2 Commit
    • [UI] fix x axis align Commit
    • [UI] Generic Group component Commit
    • [UI] Formly and StringUtils improvements Commit
    • [UI] Angular 22 migration fixes Commit

OpenEMS Backend

Common/General

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2026.7.0...2026.8.0

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

EVCC - 0.313.1

Changelog

Other Changes ☀️

  • e4ca549ea65f6e6c696fec36db00bd18e21f286e 0.313 backport: chore: pin clock in device colors test (#32325) (#32387)
  • 58c4b446d6056154c0b7158546d39599be17310b Cardata: delete obsolete streaming containers (#32376)

Bug Fixes 🐞

  • 0990bd97843952ae993004d5d2a32c71f8cdb9dc 0.313 backport: Sessions UI: fix grouped chart layout and legend styling (#32383)
  • fff64791152366541b299e6649c765211b98b9f2 0.313 backport: chore: fix request cache warning (#32382)

Consumption - Mobility and Transportation - Go
Published by andig 17 days ago

Open Sustainable Technology - OpenSustain.tech-2026-08

Automated monthly release of projects and organizations listed at OpenSustain.tech and enriched by metadata released by ecosyste.ms

Included files:

  • opensustain-tech-projects-OpenSustain.tech-monthly-release-2026-08.csv
  • opensustain-tech-organizations-OpenSustain.tech-monthly-release-2026-08.csv

Sustainable Development - Knowledge Platforms
Published by github-actions[bot] 17 days ago

Farmbot - v15.30.1

v15.30.1

Consumption - Agriculture and Nutrition - TypeScript
Published by gabrielburnworth 17 days ago

ClimaLand.jl - v1.11.0

ClimaLand v1.11.0

Diff since v1.10.3

📢 API Changes:

🚀 Features

📑 Documentation

🐛 Fixes

  • Snow surface temperature parameterization results in huge slow down (#1727)

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

ClimaAtmos.jl - v0.42.3

ClimaAtmos v0.42.3

Diff since v0.42.2

📢 API Changes:

🚀 Features

📑 Documentation

🐛 Fixes

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 18 days ago

REVUB - REVUB v1.2.1 08/2026

Clearer folder structure, improved user warnings, and including flexibility of pre-setting already known optimal simulation parameters

Energy Systems - Renewable Energy Integration - Python
Published by sebastiansterl 18 days ago