Skip to content

Commit 45a339d

Browse files
authored
Merge branch 'master' into feat/extend-tyndp-archive
2 parents aae1196 + 10dd2ff commit 45a339d

26 files changed

Lines changed: 8040 additions & 3308 deletions

.github/workflows/codeql.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
5656
steps:
5757
- name: Checkout repository
58-
uses: actions/checkout@v6
58+
uses: actions/checkout@v7
5959

6060
# Initializes the CodeQL tools for scanning.
6161
- name: Initialize CodeQL

.github/workflows/push-images.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
name: dev-env
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/checkout@v6
17+
- uses: actions/checkout@v7
1818
with:
1919
fetch-depth: 0
2020

.github/workflows/release.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
outputs:
1717
prepared: ${{ steps.validate.outputs.prepared }}
1818
steps:
19-
- uses: actions/checkout@v6
19+
- uses: actions/checkout@v7
2020

2121
- name: Validate commit message
2222
id: validate
@@ -46,7 +46,7 @@ jobs:
4646
app-id: ${{ vars.PYPSA_BOT_ID }}
4747
private-key: ${{ secrets.PYPSA_BOT_PRIVATE_KEY }}
4848

49-
- uses: actions/checkout@v6
49+
- uses: actions/checkout@v7
5050
with:
5151
fetch-depth: 0
5252

@@ -56,14 +56,14 @@ jobs:
5656
echo "Branch found: $branch"
5757
echo "BRANCH_NAME=$branch" >> $GITHUB_ENV
5858
59-
- uses: actions/checkout@v6
59+
- uses: actions/checkout@v7
6060
with:
6161
fetch-depth: 0
6262
ref: ${{ env.BRANCH_NAME }}
6363
token: ${{ steps.generate-token.outputs.token }}
6464

6565
- name: Setup Pixi
66-
uses: prefix-dev/setup-pixi@v0.9.6
66+
uses: prefix-dev/setup-pixi@v0.10.0
6767
with:
6868
pixi-version: v0.68.1
6969
cache: true

.github/workflows/test.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ jobs:
2020
name: Validate Zenodo metadata
2121
runs-on: ubuntu-latest
2222
steps:
23-
- uses: actions/checkout@v6
23+
- uses: actions/checkout@v7
2424

2525
- name: Cache Zenodo JSON schema
2626
id: cache-schema
27-
uses: actions/cache@v5
27+
uses: actions/cache@v6
2828
with:
2929
path: /tmp/zenodo_schema.json
3030
key: zenodo-schema-${{ hashFiles('.pre-commit-config.yaml') }}
@@ -48,10 +48,10 @@ jobs:
4848
shell: bash -l {0}
4949

5050
steps:
51-
- uses: actions/checkout@v6
51+
- uses: actions/checkout@v7
5252

5353
- name: Setup Pixi
54-
uses: prefix-dev/setup-pixi@v0.9.6
54+
uses: prefix-dev/setup-pixi@v0.10.0
5555
with:
5656
pixi-version: v0.68.1
5757
cache: true
@@ -75,7 +75,7 @@ jobs:
7575
shell: bash -l {0}
7676

7777
steps:
78-
- uses: actions/checkout@v6
78+
- uses: actions/checkout@v7
7979

8080
- uses: dorny/paths-filter@v4
8181
id: filter
@@ -108,7 +108,7 @@ jobs:
108108

109109
- name: Setup Pixi
110110
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
111-
uses: prefix-dev/setup-pixi@v0.9.6
111+
uses: prefix-dev/setup-pixi@v0.10.0
112112
with:
113113
pixi-version: v0.68.1
114114
cache: true
@@ -122,13 +122,13 @@ jobs:
122122
echo "MONTH=$(date +'%Y%m')" >> $GITHUB_ENV # cutouts
123123
echo "VERSIONS_HASH=${{ hashFiles('data/versions.csv') }}" >> $GITHUB_ENV
124124
125-
- uses: actions/cache@v5
125+
- uses: actions/cache@v6
126126
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
127127
with:
128128
path: data
129129
key: data-${{ env.WEEK }}-${{ env.VERSIONS_HASH }}
130130

131-
- uses: actions/cache@v5
131+
- uses: actions/cache@v6
132132
if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
133133
with:
134134
path: cutouts

.github/workflows/update-lockfile.yaml

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,38 @@ on:
99
workflow_dispatch:
1010

1111
jobs:
12+
check-diff:
13+
runs-on: ubuntu-latest
14+
outputs:
15+
has_diff: ${{ steps.check_diff.outputs.has_diff }}
16+
steps:
17+
- uses: actions/checkout@v7
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Check pixi files diff
22+
id: check_diff
23+
run: |
24+
if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
25+
echo "has_diff=true" >> $GITHUB_OUTPUT
26+
echo "Running on master branch - will proceed with update of lockfiles."
27+
exit 0
28+
fi
29+
30+
git fetch origin master
31+
if git diff origin/master...HEAD -- pixi.toml pixi.lock | grep -q .; then
32+
echo "has_diff=true" >> $GITHUB_OUTPUT
33+
echo "Differences found compared to master - will proceed with update of lockfiles."
34+
else
35+
echo "has_diff=false" >> $GITHUB_OUTPUT
36+
echo "No differences found compared to master - will skip update of lockfiles."
37+
fi
1238
update-lockfiles:
39+
needs: check-diff
1340
if: |
14-
(github.event_name == 'schedule' && github.ref == 'refs/heads/master') ||
15-
(github.event_name != 'schedule' && github.ref != 'refs/heads/master')
41+
needs.check-diff.outputs.has_diff == 'true' &&
42+
((github.event_name == 'schedule' && github.ref == 'refs/heads/master') ||
43+
(github.event_name != 'schedule' && github.ref != 'refs/heads/master'))
1644
name: Update lockfiles
1745
runs-on: ubuntu-latest
1846
permissions:
@@ -22,10 +50,10 @@ jobs:
2250
run:
2351
shell: bash -l {0}
2452
steps:
25-
- uses: actions/checkout@v6
53+
- uses: actions/checkout@v7
2654

2755
- name: Setup Pixi
28-
uses: prefix-dev/setup-pixi@v0.9.6
56+
uses: prefix-dev/setup-pixi@v0.10.0
2957
with:
3058
pixi-version: v0.68.1
3159

.github/workflows/windows-installer.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
env:
2929
TAG: ${{ github.event.release.tag_name || inputs.release_tag }}
3030
steps:
31-
- uses: actions/checkout@v6
31+
- uses: actions/checkout@v7
3232
with:
3333
ref: ${{ env.TAG || github.event.issue.pull_request && format('refs/pull/{0}/head', github.event.issue.number) }}
3434
fetch-depth: 0
@@ -46,7 +46,7 @@ jobs:
4646
git checkout master
4747
4848
- name: Setup Pixi
49-
uses: prefix-dev/setup-pixi@v0.9.6
49+
uses: prefix-dev/setup-pixi@v0.10.0
5050
with:
5151
pixi-version: v0.59.0
5252
cache: true

doc/benchmarking.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ and Cost-Benefit Analysis (CBA) phases.
1212
* **Cost-Benefit Analysis** indicators are benchmarked for all calculated indicators and
1313
all projects against the official [TYNDP 2024 CBA results](https://tyndp2024.entsoe.eu/projects-map/transmission).
1414

15-
Benchmarking results are published with every release on [Zenodo](https://doi.org/10.5281/zenodo.18608105) (currently only Scenario Building results).
15+
Benchmarking results continue to be published with every release on [Zenodo](https://doi.org/10.5281/zenodo.18608105) (currently only Scenario Building results). View the [project website](https://open-tyndp.openenergytransition.org) for a detailed explanation of the results.
1616

1717
!!! warning
1818
Open-TYNDP is under active development and is not yet feature-complete. The current

doc/index.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@
1717
[![Discord](https://img.shields.io/discord/911692131440148490?logo=discord)](https://discord.gg/AnuJBk23FU)
1818
[![REUSE](https://api.reuse.software/badge/github.com/open-energy-transition/open-tyndp)](https://api.reuse.software/info/github.com/open-energy-transition/open-tyndp)
1919

20-
|
2120

2221
!!! warning
23-
Open-TYNDP is under active development and is not yet feature-complete. The current [development status](#development-status) and the general [Limitations](limitations.md) are important to understand before using the model.
22+
Open-TYNDP is under active development and is not yet feature-complete. As of v0.7, Open TYNDP was successfully benchmarked against TYNDP 2024 (see [results](https://open-tyndp.openenergytransition.org)). The current [development status](#development-status) and the general [Limitations](limitations.md) are important to understand before using the model.
2423

2524

2625
This repository introduces the open-source model of the Open-TYNDP research and innovation project, which is a collaboration between [Open Energy Transition (OET)](https://openenergytransition.org/) and the European Network of Transmission System Operators for Electricity (ENTSO-E).
@@ -67,12 +66,11 @@ Within this ecosystem, independent organisations can develop their own private r
6766

6867
Each organisation in this open-source ecosystem remains fully independent of the shared foundation, maintaining its own governance structure and decision-making processes regarding its codebase. Organisations are also free to keep parts of their code and sensitive data completely private.
6968

70-
|
7169

7270
## Development status {#development-status}
7371

7472
!!! warning
75-
Open-TYNDP is under active development and is not yet feature-complete. The current development status and general [limitations](limitations.md) are important to understand before using the model. The model includes partial data from the TYNDP 2024 cycle, and its benchmarking is ongoing. The github repository [issues](https://github.com/open-energy-transition/open-tyndp/issues) collects known topics we are working on (please feel free to help or make suggestions). The fact that this project relies on a soft-fork strategy implies that [upstream issues](https://github.com/PyPSA/PyPSA-Eur/issues) need to be addressed in the PyPSA-Eur repository. This [documentation](https://open-tyndp.readthedocs.io/) also remains work in progress.
73+
Open-TYNDP is under active development and is not yet feature-complete. The current development status and general [limitations](limitations.md) are important to understand before using the model. Benchmarking against the TYNDP 2024 cycle is complete and the results can be viewed [online](https://open-tydnp.openenergytransition.org). The github repository [issues](https://github.com/open-energy-transition/open-tyndp/issues) collects known topics we are working on (please feel free to help or make suggestions). The fact that this project relies on a soft-fork strategy implies that [upstream issues](https://github.com/PyPSA/PyPSA-Eur/issues) need to be addressed in the PyPSA-Eur repository. This [documentation](https://open-tyndp.readthedocs.io/) also remains work in progress.
7674

7775
### Already implemented features
7876

@@ -108,7 +106,6 @@ The back-casting of the 2024 TYNDP cycle involves developing new features based
108106
</tbody>
109107
</table>
110108

111-
|
112109

113110
### Features in development
114111

@@ -153,23 +150,20 @@ While multiple TYNDP features are already introduced to the Open-TYNDP model, th
153150
!!! note "See also"
154151
See also the [GitHub repository issues](https://github.com/open-energy-transition/open-tyndp/issues) for a comprehensive list of currently open issues.
155152

156-
|
157153

158154
## Citing Open-TYNDP
159155

160156
If you want to cite a specific Open-TYNDP version, since v0.6, each release is archived on Zenodo with a release-specific DOI:
161157

162158
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.19372053.svg)](https://doi.org/10.5281/zenodo.19372053)
163159

164-
|
165160

166161
Versions v0.5 and v0.5.1 are archived at [10.5281/zenodo.18494362](https://doi.org/10.5281/zenodo.18494362).
167162

168163
If you use Open-TYNDP in your research, please cite it as shown on Zenodo or using the "Cite this repository" button in the sidebar of [Open-TYNDP](https://github.com/open-energy-transition/open-tyndp).
169164

170165
This work builds upon [PyPSA-Eur](https://github.com/pypsa/pypsa-eur) and follows the methodology described in [ENTSO-E's and entsog's TYNDP 2024 Scenarios Methodology Report](https://2024.entsos-tyndp-scenarios.eu/scenarios-methodology-report/).
171166

172-
|
173167

174168
## Background on PyPSA-Eur
175169

@@ -325,4 +319,3 @@ If you want to cite a specific PyPSA-Eur version, each release of PyPSA-Eur is s
325319

326320
The PyPSA-Eur workflow is continuously tested for Linux, macOS and Windows (WSL only).
327321

328-
|

doc/release_notes.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,32 @@
3131

3232
**Bugfixes and Compatibility**
3333

34+
* Rename bus for `t339` project (Tyrrhenian) from ITSI to ITVI ([#751](https://github.com/open-energy-transition/open-tyndp/pull/751)).
35+
36+
* Fix CBA workflow to (a) release solver license after each successful rolling horizon optimization or after computing infeasibilities and (b) raise an error if rolling horizon fails when using HiGHS ([#756](https://github.com/open-energy-transition/open-tyndp/pull/756)).
37+
3438
* Extend `tyndp-archive` support to integrate three new datasets (`desnz_electricity_consumption`, `jrc_energy_atlas`, `ons_lad`) and two new versions (`nitrogen_statistics`, `synthetic_electricity_demand`) ([#758](https://github.com/open-energy-transition/open-tyndp/pull/758)).
3539

40+
3641
**Documentation**
3742

3843
* Update benchmarking documentation tables and figures for v0.7.1 ([#711](https://github.com/open-energy-transition/open-tyndp/pull/711)).
3944

40-
* Migrate the Sphinx/RST-based documentation to MkDocs/Markdown, as a follow-up to the [upstream migration](https://github.com/PyPSA/pypsa-eur/pull/2162) ([754](https://github.com/open-energy-transition/open-tyndp/pull/754)).
45+
* Migrate the Sphinx/RST-based documentation to MkDocs/Markdown, as a follow-up to the [upstream migration](https://github.com/PyPSA/pypsa-eur/pull/2162) ([#754](https://github.com/open-energy-transition/open-tyndp/pull/754)).
4146

4247
**Developers Note**
4348

4449
* Change GitHub issue templates to comply with ISO security checks ([#714](https://github.com/open-energy-transition/open-tyndp/pull/714), [#730](https://github.com/open-energy-transition/open-tyndp/pull/730)).
4550

46-
* Introduce SBOM/Grype vulnerability scanning workflow, as a follow-up to the [upstream addition](https://github.com/PyPSA/pypsa-eur/pull/2164) ([754](https://github.com/open-energy-transition/open-tyndp/pull/754)).
51+
* Introduce SBOM/Grype vulnerability scanning workflow, as a follow-up to the [upstream addition](https://github.com/PyPSA/pypsa-eur/pull/2164) ([#754](https://github.com/open-energy-transition/open-tyndp/pull/754)).
52+
53+
* Ensure `inflow_t` is always defined in `attach_hydro`, resolving a pylint use-before-assignment issue ([#777](https://github.com/open-energy-transition/open-tyndp/pull/777)).
54+
55+
* Add missing regex anchors with `re.fullmatch` to `create_zenodo_deposition_cli` utils script ([#778](https://github.com/open-energy-transition/open-tyndp/pull/778)).
56+
57+
* Add validation of Zenodo deposition ID in `create_zenodo_deposition_cli` to close URL-manipulation finding ([#780](https://github.com/open-energy-transition/open-tyndp/pull/780)).
58+
59+
* Prevent `create_zenodo_deposition_cli` from leaking secrets in logs under `--debug` by scoping debug logging to the local logger instead of the root logger ([#781](https://github.com/open-energy-transition/open-tyndp/pull/781)).
4760

4861

4962
## Upcoming PyPSA-Eur Release
@@ -1011,7 +1024,7 @@
10111024
full year(s) and then sliced to the subannual periods. This is to align
10121025
better with the normalization process that uses annual EIA statistics.
10131026

1014-
- In [time_aggregation][], the resampling will now be applied separately
1027+
- In [build_snapshot_weightings][], the resampling will now be applied separately
10151028
for each year covered in the snapshots. This prevents snapshots that
10161029
overflow into the next year, which simplifies running non-contiguous
10171030
periods.
@@ -1239,12 +1252,12 @@
12391252
* Fail on solving status 'warning' because results are likely not valid.
12401253
([#1591](https://github.com/PyPSA/pypsa-eur/pull/1591))
12411254

1242-
* Bugfix in [time_aggregation][]. The resampling produces a contiguous date
1255+
* Bugfix in [build_snapshot_weightings][]. The resampling produces a contiguous date
12431256
range. In case the original index was not contiguous, all rows with zero
12441257
weight must be dropped (corresponding to time steps not included in the
12451258
original snapshots). ([#1613](https://github.com/PyPSA/pypsa-eur/pull/1613))
12461259

1247-
* Bugfix in [time_aggregation][]. Avoid that aggregated snapshot indices land
1260+
* Bugfix in [build_snapshot_weightings][]. Avoid that aggregated snapshot indices land
12481261
on February 29th in leap years when `enable: drop_leap_day: true`.
12491262
([#1613](https://github.com/PyPSA/pypsa-eur/pull/1613))
12501263

@@ -1508,7 +1521,7 @@
15081521
[prepare_sector_network][] to correctly offset the corresponding oil
15091522
emissions. ([#1410](https://github.com/PyPSA/pypsa-eur/pull/1410))
15101523

1511-
* Add `{sector_opts}` wildcard to [time_aggregation][].
1524+
* Add `{sector_opts}` wildcard to [build_snapshot_weightings][].
15121525
([#1307](https://github.com/PyPSA/pypsa-eur/pull/1307))
15131526

15141527
* Resolved a problem where excluding certain countries from `countries`
@@ -2032,7 +2045,7 @@
20322045
([#1064](https://github.com/PyPSA/pypsa-eur/pull/1064))
20332046

20342047
* Time aggregation for sector-coupled networks is now its own rule
2035-
[time_aggregation][]. Time aggregation is constant over planning horizons
2048+
[build_snapshot_weightings][]. Time aggregation is constant over planning horizons
20362049
of the same network when using time step segmentation.
20372050
([#1065](https://github.com/PyPSA/pypsa-eur/pull/1065),
20382051
[#1075](https://github.com/PyPSA/pypsa-eur/pull/1075))

doc/retrieve.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ The rules download data into subfolders in the `data/` directory, following the
1414
Which specific data version is retrieved can be controlled in the [data configuration](configuration.md#data_cf).
1515

1616
For Open-TYNDP runs, most datasets can also be retrieved from a dedicated Google Cloud Storage
17-
bucket instead of their original sources. See [tyndp_archive](solving.md#tyndp_archive) in the SB documentation.
17+
bucket instead of their original sources. See [tyndp_archive](sb.md#tyndp_archive) in the SB documentation.
1818

1919
Below some specific `retrieve_<dataset>` rules are documented.
2020
For more information on the datasets retrieved, see the [data sources](data_sources.md) and *Data inventory* section there in the documentation.

0 commit comments

Comments
 (0)