Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
111ccb8
feat: add windows installer
coroa Dec 17, 2025
cca7a79
fix: use python unbuffered on windows
coroa Dec 17, 2025
1521ce0
fix: install git into windows environment
coroa Dec 17, 2025
3a57786
fix: windows installer needs to locate binaries first
coroa Dec 18, 2025
6370764
feat: add shell script for building windows installer
coroa Dec 18, 2025
8e12d4b
fix: Speed up uninstalling by batch removing directories first
coroa Dec 18, 2025
a32d411
fix: gitignore installer build artifacts
coroa Dec 18, 2025
e247c8d
fix: small fixes to windows installer
coroa Dec 18, 2025
23aad3d
fix(installer): clean up wording slightly
coroa Dec 18, 2025
65cdc18
feat: bundle repository into windows installer
coroa Dec 18, 2025
c1b01aa
fix: make sure no spaces are in repository directory
coroa Dec 18, 2025
e2f573d
feat: add gh workflow to build and attach the windows installer to re…
coroa Dec 18, 2025
3134006
Add documentation and release notes
coroa Dec 18, 2025
70b7287
Update pixi.lock
coroa Dec 18, 2025
413c192
Updates README.md
coroa Dec 18, 2025
5476bb9
fix: remove pixi from installer name
coroa Dec 18, 2025
4a7a7ea
fix: add INSTDIR to PATH
coroa Dec 19, 2025
7f4b99d
fix: install snakemake from open-tyndp channel
coroa Jan 2, 2026
7fc3c91
feat: make pixi environment install optional
coroa Jan 2, 2026
6edcc1b
fix: add version constraints
coroa Jan 3, 2026
13a809e
fix: update snakemake-minimal to 9.14.5+opentyndp.1
coroa Jan 5, 2026
312360e
fix: compatibility of build_gas_* rules with pyogrio >=0.12.0
coroa Jan 5, 2026
4acaff0
fix: apply suggestions from thomas
coroa Jan 7, 2026
4359f3a
Apply suggestion from Thomas on windows-installer Readme
coroa Jan 7, 2026
f5b23a7
fix(docs): fix installation heading levels
coroa Jan 7, 2026
c3746d7
fix typo
coroa Jan 7, 2026
af27714
Update pixi.toml
coroa Jan 7, 2026
73b9de1
doc: add installer in the documentation
tgilon Jan 8, 2026
3adcb15
Merge branch 'master' into feat/add-windows-installer
tgilon Jan 8, 2026
8305723
Merge branch 'master' into feat/add-windows-installer
tgilon Jan 8, 2026
d121000
chore: solve merge conflicts
tgilon Jan 8, 2026
d76983c
Merge branch 'master' into feat/add-windows-installer
tgilon Jan 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/release-installer.yaml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is difficult to review. Have you tested it?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this is still untested. it would need to be run on an existing release. i think i could run it on 0.4.1.

@coroa coroa Jan 7, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd propose to merge this and #357 now and try to create a 0.4.2a1 release, ie. an alpha release.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good for me to release an alpha. Following the SemVer convention, I would suggest v0.4.2-alpha and mark it as a pre-release.

@coroa coroa Jan 8, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As always everyone has their own ideas about how stuff ideally looks like: Python packaging user guide, but python is flexible and will be fine with your suggestion too, ie check the section on normalization.

Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# SPDX-FileCopyrightText: Contributors to Open-TYNDP <https://github.com/open-energy-transition/open-tyndp>
#
# SPDX-License-Identifier: MIT

name: Build and Attach Installer to Release

on:
release:
types: [published]
workflow_dispatch:
inputs:
release_tag:
description: 'Release tag to attach installer to'
required: true
type: string

jobs:
build-and-attach-installer:
name: Build Windows Installer and Attach to Release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event.release.tag_name || inputs.release_tag }}

- name: Setup Pixi
uses: prefix-dev/setup-pixi@v0.9.3
with:
pixi-version: v0.59.0
cache: true
cache-write: false

- name: Get version from release tag
id: get_version
run: |
TAG="${{ github.event.release.tag_name || inputs.release_tag }}"
VERSION=${TAG#v}
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag=$TAG" >> $GITHUB_OUTPUT

- name: Build Windows installer
env:
VERSION: ${{ steps.get_version.outputs.version }}
run: |
utils/windows-installer/build_installer.sh

- name: Upload installer to release
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release upload ${{ steps.get_version.outputs.tag }} utils/windows-installer/open-tyndp-*.exe --clobber
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,6 @@ CLAUDE.local.md

linopy-problem-*
linopy-solve-*

# Installer build artifacts
*.exe
Comment thread
tgilon marked this conversation as resolved.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ The back-casting of the 2024 TYNDP cycle involves developing new features based
- Added the TOOT reference and project network preparation for CBA (see PRs [#199](https://github.com/open-energy-transition/open-tyndp/pull/199), [#211](https://github.com/open-energy-transition/open-tyndp/pull/211)).
- Added weekly rolling horizon optimization for CBA networks (see PR [#217](https://github.com/open-energy-transition/open-tyndp/pull/217)).
- Introduced calculation of B1 indicator in the CBA based on changes in total system costs (see PR [#186](https://github.com/open-energy-transition/open-tyndp/pull/186)).
- Added automated Windows installer for easy setup on Windows systems (see PR [#333](https://github.com/open-energy-transition/open-tyndp/pull/333)).



Expand Down Expand Up @@ -122,6 +123,12 @@ While multiple TYNDP features are already introduced to the Open-TYNDP model, th

## 1. Installation

### Option A: Windows Installer (Recommended for Windows)

For Windows users, download the latest installer (e.g., `open-tyndp-0.4.0-pixi-Windows-x86_64.exe`) from the [releases page](https://github.com/open-energy-transition/open-tyndp/releases) and run it. The installer automatically sets up everything you need, including pixi, the repository, and the conda environment. See `utils/windows-installer/README.md` for details.

### Option B: Manual Installation (All Platforms)

Clone the repository:

```sh
Expand Down
7 changes: 7 additions & 0 deletions REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,10 @@ path = [
]
SPDX-FileCopyrightText = "Open Energy Transition gGmbH"
SPDX-License-Identifier = "MIT"

[[annotations]]
path = [
"utils/windows-installer/oet_logo.*",
]
SPDX-FileCopyrightText = "Open Energy Transition gGmbH"
SPDX-License-Identifier = "CC-BY-4.0"
Comment thread
tgilon marked this conversation as resolved.
1 change: 1 addition & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ The back-casting of the 2024 TYNDP cycle involves developing new features based
- Added the TOOT reference and project network preparation for CBA (see PRs `#199 <https://github.com/open-energy-transition/open-tyndp/pull/199>`__, `#211 <https://github.com/open-energy-transition/open-tyndp/pull/211>`__).
- Added weekly rolling horizon optimization for CBA networks (see PR `#217 <https://github.com/open-energy-transition/open-tyndp/pull/217>`__).
- Introduced calculation of B1 indicator in the CBA based on changes in total system costs (see PR `#186 <https://github.com/open-energy-transition/open-tyndp/pull/186>`__).
- Added automated Windows installer for easy setup on Windows systems (see PR `#333 <https://github.com/open-energy-transition/open-tyndp/pull/333>`__).



Expand Down
38 changes: 33 additions & 5 deletions doc/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,38 @@ The subsequently described installation steps are demonstrated as shell commands
directory in which the commands following the ``%`` should be entered.


.. _windows_installer:

Option A: Windows Installer (Recommended for Windows)
=====================================================

For Windows users, the easiest way to install Open-TYNDP is using the automated installer. Download the latest installer executable (e.g., ``open-tyndp-0.4.0-pixi-Windows-x86_64.exe``) from the `GitHub releases page <https://github.com/open-energy-transition/open-tyndp/releases>`__ and run it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about releasing a v0.4.2 to get the installer attached to the latest release?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that would be ideal i think.


The installer will:

1. Install pixi package manager to ``%LOCALAPPDATA%\open-tyndp``
2. Extract the repository files to your chosen installation directory
3. Set up the conda environment automatically via ``pixi install``
4. Create Start Menu shortcuts for easy access:

- **Open-TYNDP PowerShell** - Launch PowerShell with environment activated
- **Open-TYNDP Command Prompt** - Launch Command Prompt with environment activated

For more details about the installer, see ``utils/windows-installer/README.md`` in the repository.

.. note::
If you prefer manual installation or need more control over the setup process, follow the instructions below for cloning the repository and installing dependencies manually.


.. _manual_installation

Option B: Manual installation (All Platforms)
=============================================

.. _clone_repo:

Clone the Repository
====================
--------------------

First of all, clone the `Open-TYNDP repository <https://github.com/open-energy-transition/open-tyndp>`__ using the version control system ``git`` in the command line.

Expand All @@ -28,10 +56,10 @@ First of all, clone the `Open-TYNDP repository <https://github.com/open-energy-t
.. _deps:

Install Python Dependencies
===============================
---------------------------

Preferred method: ``pixi``
--------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~

PyPSA-Eur, and consequently Open-TYNDP, relies on a set of other Python packages to function.
We manage these using `pixi <https://pixi.sh/latest/>`_.
Expand All @@ -49,7 +77,7 @@ Once pixi is installed, you can activate the project environment for your operat
We don't currently support linux operating systems using ARM processors since certain packages, such as ``PySCIPOpt``, require being built from source.

Legacy method: ``conda``
------------------------
~~~~~~~~~~~~~~~~~~~~~~~~

If you cannot access ``pixi`` on your machine, you can also install using `conda <https://docs.conda.io/projects/conda/en/stable/user-guide/install/index.html>`_ (or ``mamba``/``micromamba``).
To do so, we highly recommend you install from one of our platform-specific environment files:
Expand Down Expand Up @@ -87,7 +115,7 @@ If you are having difficulties with the above files, you can also install direct


Install a Solver
================
----------------

PyPSA passes the PyPSA-Eur network model to an external solver for performing the optimisation.
PyPSA is known to work with the free software
Expand Down
2 changes: 2 additions & 0 deletions doc/release_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Release Notes
Upcoming Open-TYNDP Release
================

* Added automated Windows installer for easy setup on Windows systems (https://github.com/open-energy-transition/open-tyndp/pull/333). The installer bundles pixi, the repository, and sets up the conda environment automatically. Installer executables are automatically built and attached to GitHub releases. See ``utils/windows-installer/`` for details.

* Docs: Add innovation roadmap comparison, mapping existing or new developments in PyPSA-Eur and Open TYNDP to desired features for TYNDP 2026 (https://github.com/open-energy-transition/open-tyndp/pull/341)

* Fix Windows compatibility issues and make other minor improvements (https://github.com/open-energy-transition/open-tyndp/pull/357).
Expand Down
Loading
Loading