Recent Releases of Open Sustainable Technology Projects

PyPSA-SPICE - v2.1.0

v2.1.0 (2026-07-31)

Fixed

Changed

  • Add streamlit-extra pacakge and enhance addtional features in PyPSA-SPICE-Vis. (:material-source-pull:105 by @RichChang963)
  • Consolidate all pip package installations into the environment.yaml file and removing the previous requirements.txt file to simplifies dependency management for new users (:material-source-pull:117 by @nhlong2701)
  • Change website link display. (:material-source-pull:110 by @RichChang963)
  • Remove polyfill package to enhance website security. (:material-source-pull:113 by @RichChang963)

Notes

  • New Streamlit-extras package: We have added a streamlit-extra v1.5.0 and encourage users to upgrade their environments (using conda env update -f envs/environment.yaml --prune) to ensure full compatibility with the latest features and improvements.

Full Changelog: https://github.com/agoenergy/pypsa-spice/compare/v2.0.0...v2.1.0

Energy Systems - Energy System Modeling Frameworks - Python
Published by nhlong2701 4 days ago

ToOp - v0.10.1

Fixes

Full Changelog: https://github.com/eliagroup/ToOp/compare/v0.10.0...v0.10.1

Energy Systems - Grid Analysis and Planning - Python
Published by spetznick-elia 6 days ago

Planscape - 2026.07.29-5411c982d4

  • Public Funding Opportunit Report page (Share Funding Report).
  • Ownership details on Treatable Area layer exported on GeoPackage

Biosphere - Wildfire - Python
Published by roquebetioljr 6 days ago

GridPath - GridPath v2026.7.1

What's Changed

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

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

cellpy - cellpy 2.0.0

cellpy 2.0.0

Stable cellpy 2.0: native headers, v9 zip-of-parquet cellpy files (v8 HDF5 still readable), cellpycore==0.2.4.

Soak: v2.0.0rc1, v2.0.0rc2.

Support

  • Python ≥3.13
  • The v1.x line is bugfix-only for 12 months from this release date (decision #438-6)

Known limitation

  • OpenSSH Host aliases in scp:// / sftp:// URIs may fail DNS (#687). Workaround: real hostname + CELLPY_KEY_FILENAME — see docs/getting_started/remote_paths.md.

See HISTORY.md and docs/getting_started/migration_v1_to_v2.md.

Closes the Stage 3.17 release checklist track (#574) once feedstock is bumped.

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

MARIO - v1.1.0

MARIO v1.1.0

This release centers on scenario-based composition updates — rewriting the
electricity supply and trade mixes of a table while preserving its column
totals — together with a reworked sector disaggregation workflow, RAS
balancing, and richer shock authoring.

Electricity supply & trade mixes

  • Database.update_supply_mix — rewrite one region's generation mix in
    place, preserving every buyer's total: across z/Y on IOT and u/Yc
    (commodity) or the supply block s (activity market shares) on SUT. The
    "electricity" mode derives the mix from EMBER generation for a chosen
    year (aggregating to the compatible fuel groups and redistributing back).
    Database.get_mix reads a production mix back. update_supply_mix_iot /
    update_mix_iot remain as IOT-only aliases.
  • Database.pool_trade — pool a commodity's trade behind a
    "- supply"/"- need" pass-through layer, so its technology mix and trade
    mix live in two independent market-share columns.
  • Database.update_trade_mix — the dual of the supply mix: redistribute one
    item across its origin regions per destination market. The "electricity"
    mode reads the ENTSO-E import mix.
  • Live data fetch — the "electricity" modes can fetch EMBER / ENTSO-E
    directly with an API key (mario.set_api_keys(...), a <PROVIDER>_API_KEY
    env var, or mario/settings/api_keys.yaml); packaged snapshots keep both
    methods working offline with no key.
  • New "Updating the electricity supply and trade mix" user-guide workflow
    and API reference.

Sector disaggregation & balancing

  • Database.add_sectors — new VA_fix (augment missing factor-of-production
    rows from parent sectors) and accept_non_unitary_sum options;
    read_add_sectors_excel reads grouped inventories from multiple sheets and
    accepts split=; corrected total-output/flow computations after inserting a
    sector.
  • Sector split (split=True) — reworked routine: exclusions and
    factor-of-production clusters, a residue threshold, a faster and better
    disaggregation formulation, and no accidental output-folder overwrite. A
    complete end-to-end example lives in
    MRIO-disaggregation-model.
  • Database.ras — balance the Z block of an IOT scenario to target row
    and column margins with the biproportional RAS algorithm.

Shocks

  • shock_calc(base_scenario=...) — build a shock on top of any existing
    scenario, so shocks can be chained.
  • New Supply mix N and Trade mix N shock types in the shock
    workbook (IOT z/Y; SUT u/s/Yc), with template picklists — the mix
    updates authored without code.

GHG & plotting

  • calc_ghg names the aggregated satellite account after its GWP basis when
    label is omitted (e.g. "GHG AR6 GWP-100").
  • Plot helpers always write the figure HTML to disk and no longer fail when the
    inline Jupyter backend is unavailable.

Settings & dependencies

  • Default compute.compute_method changed from auto to inverse.
  • Adds entsoe-py (live ENTSO-E fetch, raw XML client only — pandas-3 safe) and
    nbformat as dependencies.

Full changelog: https://github.com/it-is-me-mario/MARIO/compare/v1.0.3...v1.1.0

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

cellpy - v2.0.0rc2

What's Changed

New Contributors

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.0.0rc1...v2.0.0rc2

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

cellpy - cellpy 2.0.0rc1

cellpy 2.0.0rc1

First release candidate for cellpy 2.0 after the native-headers / polars flip (alphas through v2.0.0a5+).

Gates (#574)

  • CI essential (linux / uv) and full (linux / uv) green on the release tip
  • Docs (zensical) green
  • Benchmarks vs GHA v1.x baseline: fail-band (+100%) clear; intermittent load/summary warn-band (+20%) accepted for rc soak as single-round GHA noise
  • cellpycore==0.2.3; migration guide + DEPRECATIONS.md present
  • Stage-3 sub-issues closed except tracking; #655 (fixture gaps) deferred

Install

pip install --pre cellpy==2.0.0rc1

Not in this release

  • Stable v2.0.0 (after soak)
  • conda-forge feedstock bump (follows stable)
  • Start of the 12-month v1.x bugfix-only window (starts at stable)

Refs https://github.com/jepegit/cellpy/issues/574

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

cellpy - v1.1.0.post3

1.1.0.post3

  • Fix: batch b.plot unnamed cycle index and nested list cycle_mode crashing make_summary. (#668)

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

cellpy - v1.1.0.post2

1.1.0.post2

  • Fix: lazy config load pushes .env_cellpy into os.environ so OtherPath SSH auth works again after #453. (#662)
  • Docs: warn that cellpy 1.x is maintained until July 2027 (#513).
  • Release: allow v1.* tags from the v1.x maintenance branch (as well as master).

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

ToOp - v0.10.0

Features

Fixes

Full Changelog: https://github.com/eliagroup/ToOp/compare/v0.9.1...v0.10.0

Energy Systems - Grid Analysis and Planning - Python
Published by spetznick-elia 12 days ago

MAAP - v5.1.2a6

Biosphere - Biomass - Python
Published by github-actions[bot] 12 days ago

CloudDrift - v0.48.1

Patch version to fix the conda package.

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

PowerIO - v0.7.2

  • CLI case discovery is recursive and covers every supported format (#260):
    powerio batch and the TUI walk the input directory for .m, .raw,
    .aux, .epc, .pwb, .json, and .dss files, matched case
    insensitively, pruning hidden directories and the output directory. A file
    that fails to load during a scan is skipped with a warning instead of
    aborting the run, and the no-cases error names the supported extensions.
    Distribution cases (.dss, BMOPF/PMD JSON) parse to the multiconductor
    model and go through the explicit lower_multiconductor_to_balanced pass,
    whose approximations and dropped fields surface as warnings.
  • A leading UTF-8 byte order mark no longer defeats the JSON classifier or
    any text reader. classify_json_text, the transmission read funnel, the
    distribution parsers (including .dss and redirected files), the PMD/BMOPF
    JSON split, Network::from_json, and Package::from_json all strip it,
    and the parse warnings itemize the removal (a same-format echo returns the
    text without the mark).
  • parse_str_with_name: parse_str plus the name hint role the file stem
    plays in parse_file. The CLI now reads and classifies a .json case
    once and hands the text straight to the typed parser; a batch scan
    previously read each .json twice and DOM-parsed it three times.
  • A nameless distribution case loaded by the CLI takes its file stem as the
    network name, so batch exports no longer collide on the lowering's
    lowered-multiconductor fallback.
  • JSON reader hardening from a review pass over the family:
    • PowerModels: a status field written as a JSON boolean ("br_status": false) reads out of service instead of in service; baseMVA must be
      finite and positive; gencost rows padded to the MATPOWER matrix width are
      trimmed to the declared ncost before the per-unit unscale; an
      out-of-range cost model number passes through unscaled instead of
      wrapping into the piecewise/polynomial rescale.
    • pandapower: a trafo sn_mva of zero or below falls back to the system
      base instead of dividing the impedance by zero; string cells can no
      longer smuggle "inf"/"nan" into numeric columns.
    • egret: a polynomial cost exponent key is bounded, so a few bytes of JSON
      can no longer demand an arbitrarily large allocation or index out of
      bounds.
    • GOC3: a duplicate simple_dispatchable_device uid is rejected instead of
      silently taking another device's time series bounds and cost.
    • Surge: a float bus reference too large for an index is rejected like the
      equivalent integer instead of saturating to usize::MAX.
    • BMOPF: matrix key indices and winding counts are bounded (a crafted
      document could previously demand gigabytes or quadratic work), a missing
      line length warns instead of propagating NaN silently, and the meta
      block is kept in extras instead of dropped.
    • PMD: a data_model other than ENGINEERING (the index based MATHEMATICAL
      model) is rejected instead of being misread as ENGINEERING.
    • .pio.json: a semver build tag containing a hyphen (1.0.0+build-x) no
      longer fails the schema version check.

What's Changed

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

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

iNaturalistReactNative - v1.0.26+222

FIXED

  • An issue with getting to edit your own observation

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

MAAP - v5.1.2a5

Biosphere - Biomass - Python
Published by github-actions[bot] 13 days ago

fluxopt - v0.1.0

0.1.0 (2026-07-21)

⚠ BREAKING CHANGES

  • fail-fast FlowSystem validation, elements on BaseModel (#229)
  • effects: objective_effects no longer accepts a list; penalty is minimized by default (was: tracked but ignored).
  • unify field naming to quantity_min/max grammar (#204)

refac

  • unify field naming to quantity_min/max grammar (#204) (3459c6c)

Features

  • effects: allow per-period values for periodic bounds (#205) (d8dfc4d)
  • effects: weighted objective with penalty auto-inclusion (#210) (20cef8f)
  • element round-trip (to_dict/from_dict) + ProfileRef (#227) (16a229a)
  • fail-fast FlowSystem validation, elements on BaseModel (#229) (2673131)
  • flow: add flow_hours and load_factor bounds (#206) (3dd45a7)
  • flow: add ramp rate limits (#207) (785875b)
  • FlowSystem declarative front door (YAML + data) (#228) (916fb6c)
  • pydantic element layer (validation + JSON Schema) (#226) (a3b2f50)
  • stats: add StatsAccessor.summary() headline KPI table (#188) (c3540f9)
  • storage: add final level bounds and prevent_simultaneous (#208) (643fede)

Bug Fixes

  • clarify netcdf read error for non-ASCII paths on Windows (#195) (c1c2ffe)
  • keep release-please below 1.0 with bump-minor-pre-major (#232) (fe539d3)
  • pass pd.Index coords for linopy 0.8 compatibility (#194) (9179a36)
  • reject unknown flow short_ids in conversion_factors (#212) (de7ff7a)
  • weight flow-hour aggregates by timestep duration (#211) (4320efe)

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

xgcm - v0.10.1

v0.10.1 (2026/07/20)

New Features

  • Add an experimental bipolar north-fold boundary condition for tripolar ocean grids
    (MOM6, NEMO, MOM5,
    Oceananigans), requested as a per-axis padding value on the fold axis, e.g.
    padding={"X": "periodic", "Y": {"fold": "corner"}}. The northern edge of the logical grid
    folds onto itself along the bipolar seam joining the two northern poles: the zonal axis is
    mirrored about the pole and vector components reverse sign, so interp/diff/derivative
    work across the Arctic seam. The pivot (center/T, corner/F, U, V) names the
    staggered position the pole sits on. Only the north edge folds; the south edge of a fold
    axis honours a per-call padding override when given, otherwise a configurable south
    mode (default fill). This feature is experimental: its API and numerical behavior may
    change, and constructing a Grid with a fold emits a UserWarning
    (#194,
    #711).
    By Henri Drake.

Breaking Changes

Internal Changes

Documentation

Bugfixes

Climate Change - Climate Data Processing and Analysis - Python
Published by hdrake 14 days ago

MAAP - v5.1.2a4

Biosphere - Biomass - Python
Published by github-actions[bot] 14 days ago

echoSMs -

  • Support for Python 3.10 has been removed. The minimum supported Python version is now 3.11.
  • Update docs to mention that we'll soon follow SPEC 0
  • Move project status to beta
  • Setup for manual pre-commit checks

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

MAAP - v5.1.2a3

Biosphere - Biomass - Python
Published by github-actions[bot] 14 days ago

GridPath - GridPath v2026.7.0

What's Changed

Full Changelog: https://github.com/sylvan-energy/gridpath/compare/v2026.6.0...v2026.7.0

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

giverny - v3.6.1

  • add new windfarm variables

Atmosphere - Atmospheric Composition and Dynamics - Python
Published by mschnau 15 days ago

ClimaCore - v0.14.55

ClimaCore v0.14.55

Diff since v0.14.54

📢 API Changes:

🚀 Features

📑 Documentation

  • No docs for AxisTensors (#2509)

🐛 Fixes

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

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

Antares Simulator - v10.2.0-rc3

Run tests: false

Energy Systems - Energy System Modeling Frameworks - C++
Published by github-actions[bot] 15 days ago

icclim - v7.1.2

  • [fix] Fix inflated seasonal totals in icclim.sum(...) when converting filtered daily rate data such as precipitation in mm/day to amounts. Seasonal selections like MAM no longer integrate across inter-season gaps, so reproduced cases such as 4228.6 now correctly return 310.4.
  • [enh] Add a faster daily-source conversion path for seasonal rate-to-amount handling, preserving the bug fix without paying the full cost of rebuilding sparse seasonal timelines.
  • [enh] Add generalized reference-verification scripts and regression tests covering seasonal precipitation and non-precipitation cases, plus a developer protocol for broader Climpact/manual comparisons.
  • [fix] Tighten reference-verification summaries so mismatched period coordinates raise an error instead of being compared positionally.

Climate Change - Climate Data Processing and Analysis - Python
Published by pagecp 15 days ago

cellpy - cellpy 2.0.0a5 — native-headers flip

Fifth cellpy 2 alpha. This release lands the native-headers flip: cellpy 2's runtime now speaks native cellpycore column names end to end — no legacy rename sandwich.

Highlights

  • Default runtime is native (CellpyCell(native_schema=True)): from_raw/loadmake_step_tablemake_summarysave all run on native column names via the polars engine.
  • Legacy compatibility preserved:
    • Legacy header attribute access (headers_normal.voltage_txt, …) is carried by a deprecation-warned shim.
    • native_schema=False keeps the full legacy bridge for v8 byte round-trips.
    • Legacy v8 files still load, and save(format="v8") still writes them, via to_legacy/to_native.
  • Native merge() (campaign + continuation) works on the default path.
  • Value-parity oracle: the native and legacy pipelines are asserted equal on 125 mapped columns (raw/steps/summary, incl. IR and CE) on the canonical dataset.

Breaking changes (alpha)

  • data.raw / data.steps / data.summary now carry native column names by default (e.g. potential, cycle_num, datapoint_num, step_type). Access via the header objects (shim-carried) or migrate literals to native names. Set native_schema=False for the legacy names.
  • get_cap curve frames use native CurveCols (potential/capacity/cycle_num/direction).
  • cellpy.utils.easyplot removed (deprecated since 1.1).

Known gaps (tracked, xfailed)

  • Native summary does not yet compute shifted_* capacity, RIC, or cumulated_coulombic_efficiency (#552).
  • Native step_specifications application + exclude_step_types value parity to verify (#554).

Pinned to cellpycore==0.2.2.

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

cellpy - v2.0.0a4

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.0.0a3...v2.0.0a4

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

cellpy - v2.0.0a3

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.0.0a2...v2.0.0a3

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

ClimaLand.jl - v1.10.3

ClimaLand v1.10.3

Diff since v1.10.2

📢 API Changes:

🚀 Features

📑 Documentation

🐛 Fixes

  • Typo in default parameters (#1790)

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

cellpy - v2.0.0a2

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v2.0.0a1...v2.0.0a2

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

cellpy - v2.0.0a1

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v1.1.0.post1...v2.0.0a1

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

reV - Bespoke Noise MVP

What’s Changed

Features

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

Bug Fixes

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

Energy Systems - Renewable Energy Integration - Python
Published by github-actions[bot] 19 days ago

Planscape - 2026.07.16-ef7c2f14fa

Rx Lev old title backfill

Biosphere - Wildfire - Python
Published by Foxbyte0101 19 days ago

Planscape - 2026.07.16-8f18093056, Staging

Rx Lev backfill and many other changes

Biosphere - Wildfire - Python
Published by Foxbyte0101 19 days ago

EcoAssist - AddaxAI v6.37

Increase JSON GH fetch timeouts

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

Volca - v0.9.3

What's Changed

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

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

MAAP - v5.1.2a2

Biosphere - Biomass - Python
Published by github-actions[bot] 19 days ago

cellpy - v1.1.0.post1

Summary

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

Install

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

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

cellpy - v1.1.0

What's Changed

New Contributors

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

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

MUSICA - Version 0.16.1

What's Changed

New Contributors

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

Atmosphere - Atmospheric Chemistry and Aerosol - Jupyter Notebook
Published by K20shores 20 days ago

Antares Simulator - v10.2.0-rc2

Run tests: false

Energy Systems - Energy System Modeling Frameworks - C++
Published by github-actions[bot] 20 days ago

CloudnetPy - CloudnetPy 1.93.5

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

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

echoSMs -

Added

  • Add a changelog to the repository

Changed

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

Fixed

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

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

Anker Solix Integration for Home Assistant - 3.7.0

Release 3.7.0

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

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

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

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

Enhancements: 📢

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

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

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

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

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

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

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

  • MQTT Enhancements for a couple of devices

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

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

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

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

Breaking changes: 💥

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

Fixes 🔨 and other changes: 🔧

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

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

General notes: 📋

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

Contribution: 🙌

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

Appreciation: ✨

If you like this integration and you want to show your appreciation for the countless hours spent to enhance and maintain it, I would be happy for a 🍵coffee ☕ or if you become a sponsor 💖.
"Buy Me A Coffee"

Renewable Energy - Photovoltaics and Solar Energy - Python
Published by thomluther 20 days ago

iNaturalistReactNative - v1.0.26+221

FIXED

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

UPDATED

  • Mobile CV model to 2.30

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

openfoodnetwork - v5.7.3 Chicken Pulao

What's Changed

User-facing changes 👀

API changes ⚠️

Experimental features for testing 🚧

Technical changes 🛠️

Dependencies 📦

New Contributors

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

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

Volca - v0.9.2

What's Changed

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

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

PowerIO - v0.7.1

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

What's Changed

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

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

pywatershed - pywatershed 3.0.0

Overview

In pywatershed version 3.0.0, the primary new capabilities introduced are stream temperature simulation following the PRMS methodology and the simulation of irrigated agriculture based on GSFLOW. See the v3.0.0 extended release notes for a fuller narrative.

Stream Temperature

The new PRMSStreamTemp and PRMSStreamTempHumidityCBH classes simulate stream temperature using the PRMS stream temperature methodology, computing water temperatures based on energy balance in stream segments, with optional tracking and budgeting of 11 energy flux components. The stream temperature classes take a stream shade class on initialization, either PRMSStreamShadeConstant or PRMSStreamShadeDynamic, and require one of PRMSHydraulicGeometryFull or PRMSHydraulicGeometryWidthOnly as an upstream process. These capabilities are demonstrated as part of the NHM configuration in notebooks 01_multi-process_models.ipynb and 02_prms_legacy_models.ipynb. In the course of this work, several bugs were found and corrected in the stream temperature code of PRMS 5.2.1.1; the PRMS source contained in the pywatershed repository was corrected and pywatershed matches the corrected code.

Agricultural Water Use

New agricultural water use classes enable simulation of irrigated agriculture based on GSFLOW. PRMSRunoffAg extends PRMSRunoff to calculate infiltration separately for pervious and agricultural areas. PRMSSoilzoneAgObsET provides dual-area soil moisture accounting with iterative adjustment of irrigation to match observed actual evapotranspiration, and PRMSSoilzoneAg is a simplified version for when ET observations are not available. These capabilities are demonstrated in a new example notebook, 10_ag_irrigation_use.ipynb.

Energy Budgets

The ConservativeProcess class now supports both mass and energy budgets. The new mass_budget and energy_budget properties provide explicit access to each budget type. The legacy budget property is deprecated; use mass_budget instead.

Transpiration and Frost

PRMSAtmosphereTranspFrost implements the transp_frost module of PRMS. PRMSAtmosphereTranspFrostDynamic extends it to accept dynamic (time-varying) fall and spring frost dates from PRMS dynamic parameter files.

Output Collection and Statistics

The new Output class provides flexible output collection and statistical analysis for models, supporting HRUs of interest, segments/nodes of interest, and monthly accumulations, with Zarr chunked output for efficient large-scale data writing. See the new example notebook 09_model_output.ipynb.

Model Restart

The Process class and its subclasses have a new restart capability, allowing runs to be split and continued. See the new example notebook 08_restart_streamflow.ipynb.

Additional FlowGraph and Model Functionality

A new SourceSinkFlowNode class adds or removes flow above some minimum flow parameter as specified by an input data file, and StarfitSourceSinkFlowNode allows sources and sinks to interact with storage of a Starfit reservoir.
The FlowGraph class has a new method plot to show an abstract plot of the FlowGraph.
The new staticmethod Model.solve_inputs determines where each process input comes from — another process or a file — from a process list or model dictionary, without instantiating a Model.
The Model class can read all inputs from a single NetCDF file as an alternative to a directory of NetCDF files, and PrmsParameters.load supports multiple parameter files treated as addenda to the first.

Breaking Changes

The budget_type parameter has been renamed to imbalance_behavior in ConservativeProcess and all its subclasses, in FlowGraph, and in control options. Budget NetCDF output filenames now include the quantity type: mass budgets are named ProcessName_mass_budget.nc instead of ProcessName_budget.nc, and energy budgets use ProcessName_energy_budget.nc.

Detailed Change Log

For additional details, see the What's New Documentation:

New Features

Stream temperature simulation: PRMSStreamTemp and PRMSStreamTempHumidityCBH, with stream shade classes PRMSStreamShadeConstant and PRMSStreamShadeDynamic and hydraulic geometry classes PRMSHydraulicGeometryFull and PRMSHydraulicGeometryWidthOnly; optional energy flux tracking and budgeting of 11 flux components.
Agricultural water use based on GSFLOW: PRMSRunoffAg, PRMSSoilzoneAgObsET, and PRMSSoilzoneAg, demonstrated in notebook 10_ag_irrigation_use.ipynb.
ConservativeProcess supports both mass and energy budgets with new mass_budget and energy_budget properties; the budget property is deprecated.
PRMSAtmosphereTranspFrost implements the PRMS transp_frost module; PRMSAtmosphereTranspFrostDynamic adds dynamic frost dates from PRMS dynamic parameter files.
The Output class for flexible output collection and statistics, including Zarr chunked output; notebook 09_model_output.ipynb.
Restart capability for processes; notebook 08_restart_streamflow.ipynb.
SourceSinkFlowNode and StarfitSourceSinkFlowNode for adding/removing flows in a FlowGraph; FlowGraph.plot.
Model.solve_inputs staticmethod to determine input sources without instantiating a Model.
Model can read all inputs from a single NetCDF file; PrmsParameters.load accepts multiple parameter files as addenda; Control.set_init_start_times manages changing initial/start times.
Corrections to PRMS 5.2.1.1 stream temperature (humidity CBH handling and seg_humid accumulation); pywatershed matches the corrected PRMS source in this repository.
A pre-commit security review hook and a weekly dependency security scan in CI.

Breaking Changes

budget_type renamed to imbalance_behavior in ConservativeProcess and subclasses, FlowGraph, and control options.
Budget NetCDF output filenames include the quantity type (ProcessName_mass_budget.nc, ProcessName_energy_budget.nc).

Bug fixes

utils.PrmsDynamicParameter now forward-fills from the most recent dynamic parameter date at or before the run start; previously runs starting between dynamic parameter dates saw fill values.
The PRMSRunoffAg mass budget did not balance on canopy-changeover days: the changeover budget input term was never set and depression storage inflow was missing changeover water. The budget now closes to machine precision.
PRMS 5.2.1.1 stream temperature repeated division by HRU area; corrected in the PRMS source contained in this repository.

Internal changes

Release procedures revamped: step-by-step release guide, guarded release automation (checks, package build/publish, frozen conda environment exports per platform), and a shared local/CI preflight script.
CI provides gfortran from the conda environment; flopy is temporarily installed from its develop branch pending the next flopy release.
The autotests require an explicit --domain option (the silent default was removed).

Hydrosphere - Freshwater and Hydrology - Fortran
Published by github-actions[bot] 21 days ago

Rewiring America - v0.148.0

What's Changed

Full Changelog: https://github.com/rewiringamerica/api.rewiringamerica.org/compare/v0.147.0...v0.148.0

Energy Systems - Energy Data Accessibility and Integration - TypeScript
Published by 2WheelCoder 22 days ago

LFRic - vn3.2

LFRic Apps vn3.2 release notes

Linked Changes

This release is part of the 2026.07.1 Simulation Systems Release.. All
codebases required by LFRic Apps have been tagged 2026.07.1.

What's Changed

New Contributors

Full Changelog: https://github.com/MetOffice/lfric_apps/compare/vn3.1.1...vn3.2

Atmosphere - Atmospheric Composition and Dynamics - Fortran
Published by james-bruten-mo 22 days ago

xgcm - v0.10.0

What's Changed

New Contributors

Full Changelog: https://github.com/xgcm/xgcm/compare/v0.9.0...v0.10.0

Climate Change - Climate Data Processing and Analysis - Python
Published by hdrake 22 days ago

PowerIO - v0.7.0

  • Add powerio-prob for complete numerical problem instances (#238). Its
    default build is matrix free; the matrix feature adds sparse projections,
    DC OPF bundle output.
  • Move DC OPF instance types and bundle output out of powerio-matrix.
  • Keep solver formulations and KKT operators outside powerio-prob.
  • Demote powerio-json from the public case format surface (#229). It leaves
    the CLI format help and the generated format tables; pio_parse_str(..., "powerio-json", ...) and pio_to_format(..., "powerio-json", ...) keep
    working as ABI v4 compatibility aliases, and pio_to_json / pio_from_json
    are the documented balanced model JSON API.
  • NetworkPackage::from_balanced is format neutral. Source adapters, such as
    GOC3 operating point extraction, run only for parsed reader input through
    from_parsed_balanced.
  • Building a SCOPF instance from text requires an explicit source format.
  • Add AC OPF problem instances (#248): powerio-prob gains AcOpfInstance
    and build_ac_opf_instance, carrying pi model branch data with separate tap
    and shift, per terminal charging, bus shunts, active and reactive demand,
    voltage bands, generator PQ bounds, and quadratic cost including the
    constant term (GenCost::quadratic_with_constant). Relaxations such as SOC
    forms consume the same instance. Matrix free; C ABI and Python exposure is
    #249.
  • powerio-prob first publish review fixes: reserve membership sets now
    assign zone indices from the same document order as the reserve rows
    (sorted order previously crossed n_p/n_q between the two tables and
    diverged from src/goc3.jl past nine zones); a GOC3 branch with
    r = x = 0 is rejected by name instead of writing NaN into the wire
    rows; a missing device_type defaults to producer, the balanced
    reader's rule; the AC instance folds self-loop branch admittance into
    the bus shunt vectors, matching build_ybus; both instance builders
    reject a non-positive base MVA before scaling; the DC OPF bundle
    directory name stays confined to the output directory, and the bundle
    manifest reports the powerio core version (powerio::VERSION, new).
    SCOPF row structs and DcOpfOutputs are #[non_exhaustive].
  • DSS reader: linecode= now sets a line's conductor count the way the
    engine's FetchLineCode does, the later of phases=/linecode= winning.
    A 4-wire line without an explicit phases= keeps its neutral instead of
    truncating the terminal map to 3 against a 4x4 linecode
    (frederikgeth/BMOPFTools.jl#332); thanks @frederikgeth

What's Changed

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

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

HyperGas - Version 1.0 (2026/07/11)

Major improvements

Minor improvements

Emissions - Emission Observation and Modeling - Python
Published by zxdawn 23 days ago

Volca - v0.9.1

What's Changed

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

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

ClimaLand.jl - v1.10.2

ClimaLand v1.10.2

Diff since v1.10.1

📢 API Changes:

🚀 Features

📑 Documentation

🐛 Fixes

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

Itzï - Itzï 26.6

Itzï 26.6 marks the tenth anniversary of Itzï's first publication on PyPI,
on 30 June 2016.
This anniversary edition introduces hotstart checkpointing and resume support,
improves the robustness of timed inputs and flow routing, and expands
programmatic workflows with new xarray, NumPy, Icechunk and CSV-based
providers.
It also strengthens validation and testing, while simplifying the internal
configuration and simulation setup code.

Improvements

  • Add hotstart checkpoints and resume support,
    with a new --resume-from CLI option.
  • Continuity error is now checked regularly during the simulation,
    even when output intervals are long.
  • Flow routing is now more robust in steep-slope and shallow-flow cases.
  • Add new programmatic input and output providers based on xarray,
    NumPy, Icechunk and CSV.

Changes in the configuration file

  • Add an optional [hotstart] section with wallclock_step and
    save_file to configure checkpoint writing.

Corrected bugs

  • Force a time-step break when an input map changes,
    preventing incorrect mass balance accounting.
  • Statistics output now works correctly with raster masks.
  • Prevent division by zero in the Froude computation.
  • Detect empty input rasters when loaded.
  • Check the temporal type of existing STRDS at initialization,
    failing early on mismatches.
  • Relative swmm_inp paths are now resolved relative to the
    configuration file directory, if not found in the current working directory.

Internals

  • Refactor ConfigReader to build validated configuration models.
  • Introduce SimulationBuilder and decouple SimulationRunner from
    configuration parsing.
  • Replace several internal dataclasses with Pydantic BaseModel and
    improve type hints and validation.
  • Move messaging to Python's logging framework.
  • Improve GRASS session cleanup on exit.
  • Add an optional cloud dependency extra for xarray and icechunk support.
  • Update supported Python versions to 3.12 and 3.13.
  • Expand the automated test suite, especially for hotstart, timed inputs,
    statistics, cloud-style providers, and non-square cells.

Climate Change - Natural Hazard and Storms - Python
Published by lrntct 24 days ago

GridPath - GridPath v2026.6.0

What's Changed

Full Changelog: https://github.com/sylvan-energy/gridpath/compare/v2026.5.0...v2026.6.0

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

PlantCV - PlantCV v4.11.3

What's Changed

New Contributors

Full Changelog: https://github.com/danforthcenter/plantcv/compare/v4.11.2...v4.11.3

Biosphere - Plants and Vegetation - Python
Published by nfahlgren 24 days ago

cellpy - v1.0.4a4

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v1.0.4a3...v1.0.4a4

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

EODAG - v4.5.0

What's Changed

Features

Bug Fixes

Documentation

Continuous Integration

Testing

New Contributors

Full Changelog: https://github.com/CS-SI/eodag/compare/v4.4.0...v4.5.0

Sustainable Development - Data Catalogs and Interfaces - Python
Published by sbrunato 25 days ago

SlideRule Earth - v5.4.4

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

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

PowerSystems.jl - v5.12.0

PowerSystems v5.12.0

Diff since v5.11.1

Breaking changes

  • Updates to the VSC and FACTS structs
  • several parser fixes

Merged pull requests:

  • Fix docs build: add check_parallel_branch_type_consistency to public API reference (#1693) (@mcllerena)
  • consolidate claude settings (#1700) (@jd-lara)
  • fix: use actual R value when switch/breaker symbol is present in v35 BRANCH entry (#1702) (@mcllerena)
  • add controls to VSC (#1704) (@jd-lara)
  • parse the missing fields in PSSe and add them to the structs (#1705) (@jd-lara)
  • PSS/E parser: apply base_conversion to ramp_limits (#1707) (@PabloBotin)
  • Normalize VSC converter DCSET setpoints to per-unit in PSS/E parser (#1709) (@luke-kiernan)
  • Change HydroReservoir.head_to_volume_factor from ValueCurve to FunctionData (#1710) (@luke-kiernan)
  • parser fix for switch ids (#1713) (@m-bossart)
  • make susceptance calculation consistent for three winding transformers. (#1718) (@m-bossart)

Closed issues:

  • Re-evaluate HybridSystem struct (#1157)
  • Serialize/De-serialize refactor (pypowersystems) (#1240)
  • Load system from Sienna GridDB (#1241)
  • add two vs three terminal AC transmission types (#1522)
  • Supplemental constructor: make_transformer_3w (#1530)
  • Differentiate flows for 'from' and 'to' sides of branches (#1531)
  • Review non-cost function application of ValueCurve (#1556)
  • Reduce precompilation cost (#1593)
  • Change TwoTerminalVSCLine mode control to use enums rather than true/false (#1667)
  • Missing fields tap transformer (#1684)
  • PSS(e) parser: breakers in BRANCH section with nonzero r (#1701)
  • PSS/E parser: base_conversion not applied to (specifically) ramp_limits (#1706)

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

MAAP - v5.1.2a1

Biosphere - Biomass - Python
Published by github-actions[bot] 25 days ago

Arena - v2.5.6

What's Changed

Full Changelog: https://github.com/openforis/arena/compare/v2.5.5...v2.5.6

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

CoralNet-Toolbox - v1.0.3

Full Changelog: https://github.com/Jordan-Pierce/CoralNet-Toolbox/compare/v1.0.2...v1.0.3

Biosphere - Marine Life and Fishery - Python
Published by Jordan-Pierce 25 days ago

CairnOpen - Cairn 6.0.0

Non exhaustive list of modifications:

[Core]

  • Refactoring of EnergyVector: split into ElectricalCarrier and MaterialCarrier (with type Mass or Energy). A script update_v5.4_v6.0.py is included to migrate existing studies and ensure compatibility.
  • EnergyVector: improve management of atomic composition for MaterialCarrier, with support for user-defined inputs.
  • EnergyVector: add support for time-varying parameters (e.g., LHV/PCI, atomic composition, etc.).
  • Renaming Parameters and Indicators: renaming of certain parameters (Grey… -> Embodied…, …Constant -> …Offset) and indicators for clarity and consistency. Use the script update_v5.4_v6.0.py to migrate existing studies and ensure compatibility.
  • Profiling tool: new class allowing automatic measurement of execution time and memory usage, with data export for each run.
  • Sizing of converters: improve sizing based on Weight and consistency checks; removal of unused Pmin variables when minPower = 0.
  • Minimum capacity logic: extended to Compressor and Pipeline models.
  • Compressor: add an option to manually specify electrical consumption.
  • MultiConverter: users can now define upper limits on inputs/outputs via a CSV file.
  • VariableOpex at the port level: users can now define VariableOpex at the port level.
  • TecEcoAnalysis: removal of the Range parameter.
  • Multi-threading: add support for multi-thread execution of Parametric Study.
  • Logging: clean and improve log display.
  • Developer tools: add a model template for developers creating new components.
  • Code quality: general code cleanup, refactoring, and minor fixes.

[API]

  • Add a function to perform a Parametric Study.
  • Add an Import Group function: import_group(json: string)
  • Support for timeseries in dataframe format via the API: add_df_timeseries(problem: OptimProblem, timeSeries: pd.DataFrame)
  • Support for user comments via the API.
  • Add an attribute to know the energy vector associated with a bus: bus.carrier

[GUI]

  • The GUI now retrieves all necessary data (variables, indicators, ports, units, etc.) directly from the API, removing the dependency on Model.json.
  • Improve and centralized font sizes in the interface.
  • Add units in the results windows.
  • Fix display issues related to Parametric Study (progress bar, etc.).
  • Add support for exporting a single component or a selection of components (in addition to the existing group export).

Energy Systems - Energy System Modeling Frameworks - HTML
Published by stephanie-crevon 26 days ago

Deadtrees.earth - v2026.07.09.7

What's Changed

Other Changes

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

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

Deadtrees.earth - v2026.07.09.6

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.09.5...v2026.07.09.6

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

Deadtrees.earth - v2026.07.09.5

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.09.4...v2026.07.09.5

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

Deadtrees.earth - v2026.07.09.4

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.09.3...v2026.07.09.4

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

Deadtrees.earth - v2026.07.09.3

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.09.2...v2026.07.09.3

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

Deadtrees.earth - v2026.07.09.2

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.09.1...v2026.07.09.2

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

Deadtrees.earth - v2026.07.09.1

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.09...v2026.07.09.1

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

Deadtrees.earth - v2026.07.09

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.08...v2026.07.09

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

echoSMs -

  • update documentation
  • update descriptions in datastore schema
  • add geometric shape to datastore schema (unions of spheroids and bent cylinders)
  • add a license property to the datastore schema
  • prototype datastore server address is now available as echosms.DATASTORE_URI
  • adjust some datastore schema property values to match relevant ICES vocabularies
  • miscellaneous bug fixes

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

icechunk - v2.1.1

What's Changed

Full Changelog: https://github.com/earth-mover/icechunk/compare/v2.1.0...v2.1.1

Climate Change - Climate Data Standards - Rust
Published by paraseba 26 days ago

rdtools - Version 3.2.1

What's Changed

Full Changelog: https://github.com/NatLabRockies/rdtools/compare/3.2.0...3.2.1

Renewable Energy - Photovoltaics and Solar Energy - Python
Published by martin-springer 27 days ago

Deadtrees.earth - v2026.07.08

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.07.1...v2026.07.08

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

Antares Simulator - v10.2.0-rc1

Run tests: false

Energy Systems - Energy System Modeling Frameworks - C++
Published by github-actions[bot] 27 days ago

CoralNet-Toolbox - v1.0.2

Full Changelog: https://github.com/Jordan-Pierce/CoralNet-Toolbox/compare/v1.0.1...v1.0.2

Biosphere - Marine Life and Fishery - Python
Published by Jordan-Pierce 27 days ago

Deadtrees.earth - v2026.07.07.1

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.07...v2026.07.07.1

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

iNaturalistReactNative - v1.0.25+220

FIXED

  • Adding comments to Agreeing IDs
  • A crash when deleting photo
  • Location chooser spinning indefinitely

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

cellpy - v1.0.4a3

What's Changed

Full Changelog: https://github.com/jepegit/cellpy/compare/v1.0.4a2...v1.0.4a3

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

Deadtrees.earth - v2026.07.07

What's Changed

Other Changes

Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.03...v2026.07.07

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

CoralNet-Toolbox - v1.0.1

Full Changelog: https://github.com/Jordan-Pierce/CoralNet-Toolbox/compare/v1.0.0...v1.0.1

Biosphere - Marine Life and Fishery - Python
Published by Jordan-Pierce 28 days ago

EcoLogits - 0.11.1

What's Changed

Full Changelog: https://github.com/mlco2/ecologits/compare/0.11.0...0.11.1

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

MAAP - v5.1.2a0

Biosphere - Biomass - Python
Published by github-actions[bot] 28 days ago

openfoodnetwork - v5.7.2 Gratin Dauphinois

What's Changed

API changes ⚠️

Experimental features for testing 🚧

Technical changes 🛠️

Dependencies 📦

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

Gratin dauphinois is a French gratin of sliced raw potatoes baked in cream, from the Dauphiné region in south-eastern France.

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

hydrobricks - v0.9.0

Breaking changes

  • The default land cover is now open instead of ground. ground (and generic/generic_land_cover) are kept as accepted aliases for backward compatibility, but default-run output labels change from ground:* to open:*.
  • The discharge observations class Observations is renamed DischargeObservations, and the calibration argument obs (in SpotpySetup) is renamed discharge.
  • The observation/reference classes moved to a new hydrobricks.evaluation subpackage (DischargeObservations, AuxiliaryObservation, GlacierMassBalanceObservations, evaluate). They remain importable from the top level (hb.DischargeObservations, …); hydrobricks.observations is gone.

Added

  • Adding a file-based (yaml) project definition.
  • Adding the GR4J model structure and its processes along with the CemaNeige snow model.
  • Adding the GR6J model structure and its processes.
  • Adding the HBV-96 model structure and its processes.
  • Adding custom model structures (based on yaml files).
  • Enabling per-hydro-unit model structure variants.
  • Automate hydro unit structure assignment from land covers.
  • Adding model structure inspection and visualization (a textual model.summary() / model.print_structure(), and a Graphviz model.plot_structure()).
  • Introducing parameter transforms for model calibration.
  • Adding a Periods class to handle calibration and validation periods.
  • Adding dynamic forcing override mechanism (ability to dynamically override forcing values within a simulation timestep).
  • Adding a temperature threshold-based snow-rain splitter based on a single temperature threshold (SplitterSnowRainThreshold).
  • Adding separate snow/rain correction factors.
  • Adding rain routing to snowpack liquid water storage (parameter rain_to_snowpack).
  • Adding open water evaporation process (et:open_water). This process evaporates at the full potential rate (PET).
  • Adding forest canopy interception with dedicated storage and processes.
  • Adding linear, power-law, and exponential actual evapotranspiration.
  • Adding Frey & Holzmann (2015) lateral snow redistribution.
  • Adding snow sublimation processes.
  • Enable calibration with auxiliary observations (e.g., snow coverage or glacier mass balance).
  • Enable parallel model calibration with SPOTPY.
  • Adding land cover extraction from raster (ESA WorldCover, CORINE) and vector datasets to set hydro unit land-cover fractions.
  • Adding catchment discretization by sub-catchments.
  • Adding different example scripts.
  • Initialize glacier cover from extracted ice thickness rasters.
  • Restoring dynamic land cover and glacier state on model reset.
  • Adding per-unit total SWE extraction in results.
  • Adding in-memory accessors for recorded per–hydro-unit series (no file dump): model.get_recorded_hydro_unit_values(label), get_recorded_hydro_unit_fractions, get_recorded_labels, get_recorded_hydro_unit_ids/_areas and get_recorded_time.

Changed

  • Generalizing outflow rest process for direct and solver bricks (ProcessOutflowRest now correctly determines the remaining water for both direct-computation and solver-driven bricks).
  • Refactoring plotting as a class.
  • Changing PET method to Oudin in examples.
  • Making the parameter aliases case-insensitive.
  • Refactoring land covers allowing pre-defined classes (e.g. forest, lake, glacier) and user-defined classes (e.g. urban, wetland).
  • Introduce pluggable glacier modules.
  • Standardize open as default generic land cover (instead of ground). ground (and generic/generic_land_cover) are kept as accepted aliases.
  • Optimize process rate calculations with reusable buffers.
  • Reducing logging verbosity for skipped runs during calibration when parameters are out of range or violate constraints.
  • Refactor observation handling for multi-objective calibration.
  • When a parameter set is rejected due to constraints, for example, a very bad value is given to the objective function rather than NaNs.

Fixed

  • Water balance is now conserved when a land cover area fraction changes (land-cover change and glacier-evolution actions). The water, snow and canopy content stored on the land that changes hands is transferred between the changed cover and the generic cover that absorbs the area difference, instead of leaving the depth (mm) unchanged over a different area, which silently created or destroyed water.
  • Snap near-zero water container content to zero (addresses floating-point precision issues).
  • Adding the missing glacier area in examples.

Hydrosphere - Freshwater and Hydrology - Python
Published by pascalhorton 28 days ago

MAAP - v5.0.0rc45

Biosphere - Biomass - Python
Published by github-actions[bot] 28 days ago

PowerIO - v0.6.3

  • Arrow matrix axes (#234): the C ABI Arrow export gains a table catalog and
    dense matrix axis maps. pio_to_arrow exposes matrix_bus and
    matrix_branch axis tables alongside the ybus, incidence, bprime, and
    bdoubleprime COO tables, which carry powerio.row_axis / powerio.col_axis
    schema metadata so a consumer maps dense matrix rows and incidence columns
    back to source bus and branch rows. Matrix rows are labeled with the
    matrix_bus axis, which stays correct when 3-winding transformer star-point
    lowering expands the bus set past the handle bus order.
  • FDPF matrices (#234): bprime / bdoubleprime follow MATPOWER makeB
    semantics, with self-loop handling and asymmetric Matrix Market writes pinned
    by Rust, C ABI, and Python coverage.
  • Summary JSON (#234): the C ABI exposes balanced (pio_summary_json) and
    distribution summary JSON, so a binding can render network summaries without
    materializing the full model payload.
  • Matrix Arrow export (#234): the numeric matrix export path fills Julia-owned
    buffers directly for the copy-free fast path.

What's Changed

Full Changelog: https://github.com/eigenergy/powerio/compare/v0.6.2...v0.6.3

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

cfdm - 1.13.2.1

2026-07-06

What's Changed

Full Changelog: https://github.com/NCAS-CMS/cfdm/compare/v1.13.2.0...v1.13.2.1

Climate Change - Climate Data Standards - Python
Published by sadielbartholomew 29 days ago

Volca - v0.9.0

What's Changed

Full Changelog: https://github.com/ccomb/volca/compare/v0.8.1...v0.9.0

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

MITgcm - Mid 2026 release

Last release that supports OpenAD interface.

Hydrosphere - Ocean Models - Fortran
Published by jm-c 29 days ago

ToOp - v0.9.1

This patch addresses two bugs when activating busbar outages in preprocesssing for N-1 analysis.

Fixes

Full Changelog: https://github.com/eliagroup/ToOp/compare/v0.9.0...v0.9.1

Energy Systems - Grid Analysis and Planning - Python
Published by spetznick-elia 29 days ago

goat - v2.4.45 Bugfix Release

This release is a maintenance update addressing various issues identified since the 2.4.44 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.44...v2.4.45

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

PowerIO - v0.6.2

  • Normalization (#210): angle bound clamping now keeps every repaired branch
    interval ordered. One sided intervals wholly outside the supported window are
    widened to the configured pad instead of producing angmin > angmax; Rust,
    C ABI, and Python normalize option coverage pin the behavior.
  • Binding coverage (#185): the already shipped study block and distribution
    graph projection now have C ABI and Python accessors. The remaining geo
    binding symbols stay in the v0.6.3 follow through.
  • BMOPF diagnostics (#219): distribution conversions now carry structured
    diagnostics alongside warning strings, and transformer export losses expose
    stable EMIT.BMOPF.* codes for downstream tests and capability checks.
  • BMOPF transformer fidelity (#214, #215, #216, #217): OpenDSS fixed
    transformer taps, center tap convention fields, delta_wye leakage referral,
    and n_winding delta_roll now export directly in BMOPF form with regression
    coverage against schema valid output and unaffected fixture byte identity.
  • BMOPF source fidelity (#218): per phase OpenDSS voltage sources on the same
    bus merge into one BMOPF voltage_source when their phase angles are
    coherent; ambiguous, bounded, priced, or conflicting source banks stay split
    with warnings.
  • Distribution capabilities (#213): the C ABI dist feature exposes
    pio_dist_capabilities_json, reporting the six BMOPF fidelity flags that
    PowerIO.jl and downstream tools can probe at runtime.
  • Geographic fields (#180): balanced and distribution models now share typed
    GeoMeta / Location JSON shapes. Network.geo, Bus.location,
    DistNetwork.geo, and DistBus.location are optional and omitted when
    absent. OpenDSS Buscoords and BMOPF longitude/latitude sideloads promote into
    typed bus locations; OpenDSS writes a Buscoords sidecar when locations are
    present, while BMOPF longitude/latitude output remains opt in and only emits
    declared geographic coordinates.
  • .pio.json model JSON: the balanced and multiconductor payload schema
    versions move from 1.0.0 to 1.1.0 for the additive geographic fields.
    The package metadata schema, C ABI version, and Python package surface stay
    in the 0.6 compatibility band.
  • JSON strategy: .pio.json docs now state that it is PowerIO's compiled
    artifact, not a case format; payload schemas are for validating model JSON
    inside .pio.json documents; powerio-json remains supported, is deprecated
    for CLI file handoffs, and is no longer shown in the PR conversion matrix.

What's Changed

Full Changelog: https://github.com/eigenergy/powerio/compare/v0.6.1...v0.6.2

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