Skip to content

Scenarios 2026 - #174

Draft
lindnemi wants to merge 219 commits into
mainfrom
scenarios-2026
Draft

Scenarios 2026#174
lindnemi wants to merge 219 commits into
mainfrom
scenarios-2026

Conversation

@lindnemi

Copy link
Copy Markdown
Collaborator

Before asking for a review for this PR make sure to complete the following checklist:

  • Workflow with target rule ariadne_all completes without errors
  • The logic of export_ariadne_variables has been adapted to the changes
  • One or several figures that validate the changes in the PR have been posted as a comment
  • A brief description of the changes has been added to Changelog.md
  • The latest main has been merged into the PR
  • The config has a new prefix of the format YYYYMMDDdescriptive_title

brynpickering and others added 30 commits February 20, 2026 14:46
…087)

* Allow overwriting docs URL; select correct default config in test

* Minor fixes

* Generalise pre-commit config file exclusion
* Link release badge to documentation

I already caught myself several times clicking the release badge and expecting to get to the docs of that version. Now it should work

* Link to stable instead of specific relewase

* update release badge link; move docs badge
* fix: lower the lower bound for power grouping years

* doc: add release note
* refactor: use scripts path provider

* doc: add release note

---------

Co-authored-by: Lukas Trippe <lkstrp@pm.me>
* feat: set up pypsa-bot

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* trigger env change

* another one

* now authorized

* [pypsa-bot] update sync-locks

- `pixi run sync-locks`

* trigger

* [pypsa-bot] update sync-locks

- `pixi run sync-locks`

* test config schema trigger

* [pypsa-bot] update sync-locks & generate-config

- `pixi run sync-locks`
- `pixi run generate-config`

* test full new deps solve

* [pypsa-bot] update sync-locks & generate-config

- `pixi run sync-locks`
- `pixi run generate-config`

* Revert "test config schema trigger"

This reverts commit 7e6eb23fae742ac818f3671e8f9f044ffd3b7694.

* Revert "test full new deps solve"

This reverts commit 11d16bc9b7f7ed60a0a4e79f83974aa8c2ef706e.

* [pypsa-bot] update sync-locks

- `pixi run sync-locks`

* empty trigger after fix

* [pypsa-bot] run `sync-locks` & `generate-config`

- `pixi run sync-locks`
- `pixi run generate-config`

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pypsa[bot] <994572+pypsa[bot]@users.noreply.github.com>
Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
* switch to latest version of nitrogen statistics

* update industry reference year

* add release note

* add to archive

* [pypsa-bot] run `generate-config`

- `pixi run generate-config`

* increment index years

---------

Co-authored-by: lkstrp <lkstrp@pm.me>
Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
* Update locked environment files for all platforms

* [pypsa-bot] run `sync-locks`

- `pixi run sync-locks`

---------

Co-authored-by: lkstrp <62255395+lkstrp@users.noreply.github.com>
Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
… (#2106)

Bumps the github-actions group with 1 update: [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `actions/upload-artifact` from 6 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…114)

Bumps the github-actions group with 1 update: [docker/login-action](https://github.com/docker/login-action).


Updates `docker/login-action` from 3 to 4
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The current line is trying to install a package with the filename.  So, we need to use --file, not -f parameter.
Bumps the github-actions group with 1 update: [dorny/paths-filter](https://github.com/dorny/paths-filter).


Updates `dorny/paths-filter` from 3 to 4
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](dorny/paths-filter@v3...v4)

---
updated-dependencies:
- dependency-name: dorny/paths-filter
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* doc: update the PR template

* Apply suggestions from code review

Co-authored-by: Lukas Trippe <lkstrp@pm.me>

* Update .github/pull_request_template.md

Co-authored-by: Lukas Trippe <lkstrp@pm.me>

---------

Co-authored-by: Lukas Trippe <lkstrp@pm.me>
Bugfixing the post discretization.
"enable": True leads to error in `n.optimize.optimize_transmission_expansion_iteratively`

Co-authored-by: Lukas Trippe <lkstrp@pm.me>
* Update locked environment files for all platforms

* [pypsa-bot] run `sync-locks`

- `pixi run sync-locks`

---------

Co-authored-by: lkstrp <62255395+lkstrp@users.noreply.github.com>
Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
Bumps the github-actions group with 1 update: [actions/create-github-app-token](https://github.com/actions/create-github-app-token).


Updates `actions/create-github-app-token` from 2 to 3
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](actions/create-github-app-token@v2...v3)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…nks (#2105)

* feat: add carrier specific load shedding and costs

* feat: add option for load sinks analogue to load shedding

* doc: add release note

* refactor: rename to all_carriers and default_cost options

* fix: fix reference to cost instead of price
* ci: validation runs via pypsa-app

* trigger

* chore: add smkmt logger (optional)

* [pypsa-bot] run `sync-locks`

- `pixi run sync-locks`

* trigger

* trigger

* trigger

---------

Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
…ibility (#2115)

* fix: clamp s/p_nom_max in brownfield to prevent floating-point infeasibility

When brownfield carries forward s_nom_opt from a previous horizon as
s_nom_min, solver floating-point tolerance can make s_nom_min exceed
s_nom_max by a tiny amount (e.g., 0.00013 MW on a 33,585 MW line).
This creates an infeasible constraint that crashes the solver.

Extends the fix from PRs #840 and #952 (which handle global transmission
constraints) to also cover per-line s_nom_max and DC link p_nom_max.

* fix: clip H2/gas retrofit remaining capacity to non-negative

When barrier solutions without crossover produce slightly imprecise
p_nom_opt values, the already-retrofitted H2 pipeline capacity can
marginally exceed the original pipe capacity. This makes
remaining_capacity negative, setting p_nom_max < p_nom_min = 0,
which causes infeasibility at the next planning horizon.

Observed on 115-cluster myopic runs with BarConvTol=1e-4:
  H2 pipeline retrofitted ES2 7 -> FR2 1: p_nom_max = -0.000649 MW
  H2 pipeline retrofitted GB1 3 -> GB1 7: p_nom_max = -0.000169 MW

Apply the same clip(lower=0) pattern used for AC lines and DC links.

---------

Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
Co-authored-by: Lukas Trippe <lkstrp@pm.me>
…2130)

* ci: exclude packages newer than 7 days in lockfile update workflow

* add comment

* docs: add release note
The explicit client.shutdown() call can fail with a TimeoutError when
Dask worker processes don't exit within the nanny timeout on shared
filesystems (e.g. BeeGFS), converting a completed run into a false
Snakemake failure. Both output files are written before the shutdown
call, so the failure only affects cleanup.

The other Dask-using scripts in the repo (build_hac_features,
build_line_rating, build_daily_heat_demand) rely on process exit for
cleanup and do not call client.shutdown().
…#2132)

Bumps the github-actions group with 1 update: [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi).


Updates `prefix-dev/setup-pixi` from 0.9.4 to 0.9.5
- [Release notes](https://github.com/prefix-dev/setup-pixi/releases)
- [Commits](prefix-dev/setup-pixi@v0.9.4...v0.9.5)

---
updated-dependencies:
- dependency-name: prefix-dev/setup-pixi
  dependency-version: 0.9.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* perf: use auto chunks and a single dask thread

* Update config.default.yaml

* [pypsa-bot] run `generate-config`

- `pixi run generate-config`

* Update release_notes.rst

---------

Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.10 → v0.15.9](astral-sh/ruff-pre-commit@v0.14.10...v0.15.9)
- [github.com/codespell-project/codespell: v2.4.1 → v2.4.2](codespell-project/codespell@v2.4.1...v2.4.2)
- [github.com/macisamuele/language-formatters-pre-commit-hooks: v2.15.0 → v2.16.0](macisamuele/language-formatters-pre-commit-hooks@v2.15.0...v2.16.0)
- [github.com/snakemake/snakefmt: v0.11.2 → v1.0.0](snakemake/snakefmt@v0.11.2...v1.0.0)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix: pre-commit

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: lkstrp <lkstrp@pm.me>
lindnemi and others added 30 commits August 12, 2026 13:00
* ci: fix false positives in PR security gate

* trigger

* Revert "trigger"

This reverts commit 6242481321340ba56a2a81d34eed6b4cb71d5bdc.

* add comment

* use yaml anchor
* add information on temporal clustering fields

* re generate-config

* apply suggested changes

---------

Co-authored-by: apigott <ash.pigott@gmail.com>
Co-authored-by: euronion <42553970+euronion@users.noreply.github.com>
* remove 'conservative estimate Mt from config to avoid double counting and make sure optimistic assumptions are >= neutral assumptions

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* change schema defaults

* reverting changes

* document co2 storage potential categories

* [pypsa-bot] run `generate-config`

- `pixi run generate-config`

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
* fix operational reserve constraints

* revert accidental changes, better noqa handling

* re-add release notes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: fneum <29101152+fneum@users.noreply.github.com>
* split build_energy_totals rule into energy and co2

* re-add documentation changes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: fneum <29101152+fneum@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…2169)

* split build_shapes rule into offshore, nuts3, country/europe rules

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* restore original functions

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
When corine is set to false for offshore technologies, convert it to an empty dict so downstream 'key in corine' checks are skipped.

Fixes #2111

Co-authored-by: Marco Anarmo <marcoanarmo@gmail.com>
* improving carbon manangement modeling

* include co2_network_liquefaction in default config

* documentation

* [pypsa-bot] run `generate-config`

- `pixi run generate-config`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* bug fixing

* adjusting capital costs for post combustion capture depending on flue gas concentration of carbon dioxide

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix unit

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* bug fix

* bug fix

* cleaning up and minor fixes

* Updated plot_balance_map* scripts to include co2 dense carrier in co2 stored maps.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* change technology data name in line with technology-data PR

* making technology-data pr prequisite for this pr

* addressing change requests of documentation, bugfixing and spatially resolving gas and biomass for industry

* pre-commit fixes

* update data/versions.csv

* remove latest tag from older costs in versions.csv

---------

Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Bobby Xiong <bobbyxng@gmail.com>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
* Set temporal resolution to segments in test

* fix[tsam<3.0]: import error

After `import tsam` the expression `tsam.timeseriesaggregation`did't resolve properly.

* bumb: tsam>=3.0

* fix[tsam>=3.0]: unexpected keyword

TypeError: aggregate() got an unexpected keyword argument 'solver'

* fix[tsam>=3.0]: attribute error

AttributeError: 'AggregationResult' object has no attribute 'createTypicalPeriods'

* Revert "bumb: tsam>=3.0"

This reverts commit 56831fa476dbaed1548b851de32dd56bcccea39a.

* Revert "Set temporal resolution to segments in test"

This reverts commit f00214bafad359f1e75ffc4bb9d6d923003ce1d3.
* Initial draft architecture for FAQ/Troubleshooting.

* first collection of questions

* Updated and reformattted docs to use admonition.

* Added more questions/answers.

* Added fork FAQ.

* Bug fix.

* Added contribution FAQ.

* Updated copyright an authors to 'Contributors to PyPSA-Eur'

* Added release notes.

* Fix FAQ markdown and offline docs hook

Co-authored-by: fneum <29101152+fneum@users.noreply.github.com>

* Harden docs hook and workflow permissions

Co-authored-by: fneum <29101152+fneum@users.noreply.github.com>

* expand questions on demand

* Revert "Harden docs hook and workflow permissions"

This reverts commit 9cff9690615b759950ca41c72dbbe173e196aa55.

---------

Co-authored-by: toniseibold <tseibold.tub@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: fneum <29101152+fneum@users.noreply.github.com>
Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de>
* Update locked environment files for all platforms

* [pypsa-bot] run `sync-locks`

- `pixi run sync-locks`

---------

Co-authored-by: lkstrp <62255395+lkstrp@users.noreply.github.com>
Co-authored-by: pypsa[bot] <181215446+pypsa[bot]@users.noreply.github.com>
Bumps [prefix-dev/pixi](https://github.com/prefix-dev/pixi-docker) from 0.76.1 to 0.76.2.
- [Release notes](https://github.com/prefix-dev/pixi-docker/releases)
- [Commits](prefix-dev/pixi-docker@0.76.1...0.76.2)

---
updated-dependencies:
- dependency-name: prefix-dev/pixi
  dependency-version: 0.76.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the github-actions group with 1 update: [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact).


Updates `dawidd6/action-download-artifact` from 21 to 23
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](dawidd6/action-download-artifact@v21...v23)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-version: '23'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bump version to v2026.08.0, sort the accumulated release notes into
Features / Changes / Bugfixes and Compatibility, and add PR references
that were missing from individual entries.

Also fix `[rule_name][]` cross-references, which have been broken across
the whole documentation since #2216 disabled the root ToC entry that
carries the anchor, and document build_offshore_shapes and
build_nuts3_shapes, which #2169 added without a docs section.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.