Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
2464e8e
feature(STEF-2297): Start 4.0.0 branch.
egordm Aug 12, 2025
980e392
feature(STEF-2297): Setup OpenSTEF 4.0 branch (#638)
egordm Aug 12, 2025
f95d82e
feature(STEF-2298): [OpenSTEF 4.0] Setup project dev tools (#639)
egordm Aug 12, 2025
f570ea7
feature(STEF-2299): [OpenSTEF 4.0] Setup CI/CD (#640)
egordm Aug 12, 2025
38fbdec
feature(STEF-2300): Added contributing guide and docs (#641)
egordm Aug 14, 2025
f050633
docs: Added improved logo for both dark and light mode.
egordm Aug 19, 2025
6700630
feature(629): Added project skeleton, added default pydantic models, …
egordm Aug 20, 2025
b0f1f46
feature(#628): Added openstef core package for datasets and other sha…
egordm Aug 21, 2025
1a2af2c
feature(#628): Minor adjustments in reference doc generation. (#646)
egordm Aug 21, 2025
dd6ae53
feature(#628): Addition of STEF BEAM (#647)
egordm Aug 27, 2025
8922904
feature(#626): Refactored VersionedTimeSeriesDataset to consist of ve…
egordm Aug 29, 2025
344038f
feature(#626): Add feature engineering (#650)
lschilders Sep 1, 2025
3c517a5
feature(626): Completeness check (#655)
MvLieshout Sep 1, 2025
2c20b69
feature(626): Flatliner check transform (#651)
MvLieshout Sep 1, 2025
dbb47eb
feature(#626): Moved transforms to the openstef-models package. (#659)
egordm Sep 1, 2025
051b58f
feature(#628): Updated package deps. (#660)
egordm Sep 1, 2025
b5290ba
feature(#626): Added feature pipeline and horizon splitting (#664)
egordm Sep 3, 2025
de4a307
feature(#628): Added lag transform. Fixed bug where timeseries datase…
egordm Sep 3, 2025
5389821
feature(#626): Air-related Features Transform (#663)
MvLieshout Sep 4, 2025
43045c8
feature(626): Energy domain features (#666)
MvLieshout Sep 5, 2025
95c6196
Fixed #656 by updating style guide typing guidelines. And fixed #661 …
egordm Sep 8, 2025
08510f6
feature(#627): Implemented model interfaces (#669)
egordm Sep 12, 2025
ff72f7d
feature(#633): Added model pipeline, interfaces for postprocessing, s…
egordm Sep 17, 2025
25a6e89
add rIQD and relative pinball loss metrics (#675)
MentReeze Sep 19, 2025
4eb5444
Add option to plot timeseries without interpolated lines where gaps i…
MentReeze Sep 22, 2025
9c4e67a
feature(#633): Refactored transform, predictor and stateful bases. Ad…
egordm Sep 23, 2025
a516b0e
feature(#687): Implemented xgboost model (#694)
egordm Sep 25, 2025
3fd0ecd
feature(#687): Implemented gblinear model (#695)
lschilders Sep 25, 2025
ec765eb
add quantile calibration boxplot (#682)
MentReeze Sep 25, 2025
f62a000
feature(#688): add FlatlinerForecaster (#696)
lschilders Sep 25, 2025
33ead93
feat(#679): added dimensionality reduction transform (#699)
fleur-petit Sep 26, 2025
1ad2f9a
feature: Added n_estimators to GBLinear to control how many iteration…
egordm Sep 29, 2025
f3ad2b1
add windowed metrics averaged over locations (#701)
MentReeze Sep 29, 2025
be4b8dc
feature(#689): Add basecase forecaster (#702)
lschilders Sep 30, 2025
5afe895
fix: various forecasting fixes (#703)
egordm Oct 1, 2025
41c15f9
feature: Added license check / summary. (#704)
egordm Oct 1, 2025
8652b5f
feature(#678): Created a new explicit multihorizon type. Added input …
egordm Oct 7, 2025
c928d74
feature(#691): State serialization fixes. Added validation to MultiHo…
egordm Oct 8, 2025
8f75c14
feature(#691): Implemented train-test splitting in model. MLFlow stor…
egordm Oct 14, 2025
a70b269
feature: Added restricted versioned timeseries access. (#710)
egordm Oct 15, 2025
892e6d5
feature(#632): Added quantile sorter, confidence interval applicator,…
egordm Oct 16, 2025
fb23f9a
fix: Fixed various warnings during tests. (#711)
egordm Oct 16, 2025
db72762
feature(#681): rename transforms and workflows (#712)
egordm Oct 16, 2025
53eb038
feature(#681): Added standardized column selection for transforms. Fi…
egordm Oct 17, 2025
c074288
feature(#697): added benchmark for public liander2024 dataset to open…
bartpleiter Oct 17, 2025
04436cf
Feature/697 liander2024 benchmark forecaster and example (#720)
bartpleiter Oct 22, 2025
9687bee
feature(#681): Added workflow preset with some out of the box configu…
egordm Oct 23, 2025
cd6baad
feature(#681): OSTEF3 style lags. (#725)
egordm Oct 23, 2025
87ba025
feature(#681): Added sample weighting. Updated forecasting workflow. …
egordm Oct 23, 2025
abd62e8
feature(#690) added feature importance (#727)
egordm Oct 23, 2025
fbb9dab
feature: improve preset data split, added more validation (#730)
egordm Oct 24, 2025
fe4bd73
feature(#718): Removed lambdas from liander 2024 target provider. #72…
egordm Oct 28, 2025
4af2595
Add sample weighted rCRPS (#734)
MvLieshout Oct 29, 2025
b6c13fa
feature(#728): state save refactor (#733)
egordm Oct 29, 2025
29b1875
fix: Retraining data bug Liander 2024 benchmark (#740)
MvLieshout Nov 10, 2025
dea41c8
added iterative imputer (#737)
fleur-petit Nov 12, 2025
6b1da44
feature: forecaster hyperparams and eval metrics (#746)
egordm Nov 13, 2025
493126e
fix(STEF-2475) fix and refactor backtesting iction in context of back…
egordm Nov 13, 2025
4f0c664
feature: Disabled data cutoff by default to be consistent with openst…
egordm Nov 13, 2025
a85a3f7
fix(STEF-2475): Fixed rolling aggregate adder by adding forward filli…
egordm Nov 14, 2025
37089b8
fix(#728): Fixed parallelism stability issues, and gblinear feature p…
egordm Nov 17, 2025
03df6a5
fix(STEF-2475): Fixed benchmarking issue concering concatting sorted …
egordm Nov 18, 2025
0b35e2e
Feature/685 energy split (#754)
bartpleiter Nov 19, 2025
fbf02f6
change(#635): release changes to docs (#757)
egordm Nov 19, 2025
6864ca2
change(#635): Updated release action.
egordm Nov 19, 2025
7deb69e
chore: replaced alliander emails with lfenergy email. (#767)
bartpleiter Nov 21, 2025
ee41442
fix: Improved mlflow to use run names and load proper models for reus…
egordm Nov 26, 2025
45ca37f
fix: fixes in EvaluationPipeline and TimeSeriesPlotter (#769)
lschilders Nov 26, 2025
71ac428
feature: added use_median option to flatliner forecaster so it predic…
bartpleiter Dec 3, 2025
4f70d00
chore: change radiation unit to Wm-2 (#776)
lschilders Dec 5, 2025
61e1699
feature: add standard devation column to ForecastDataset and add it i…
lschilders Dec 5, 2025
eca628e
feature: nonzero flatliner preset (#777)
lschilders Dec 5, 2025
3eb7e69
feat(mlflow): suppress MLflow emoji URL logs (#780)
egordm Dec 8, 2025
c37ac92
fix: clip values of wind and solar components to below 0 (#779)
lschilders Dec 9, 2025
1891009
feature: check for model config change and skip model selection (#781)
lschilders Dec 9, 2025
43987fc
fix(STEF-2549): Added none check for model end date from mlflow. Adde…
egordm Dec 10, 2025
8a4097c
fix: exclude stdev column from quantile column checking. (#783)
bartpleiter Dec 10, 2025
d3977b1
feature: added tutorials for basic functionality. Added convenience m…
egordm Dec 15, 2025
32a42bb
feature: Selector transform (#786)
lschilders Dec 16, 2025
6d140bc
feature: add regex pattern matching in FeatureSelection and fix combi…
lschilders Dec 17, 2025
0c1e196
fix: Updated examples to mention uv commands and improvements in temp…
egordm Dec 18, 2025
445c365
fix: handling no valid data in flatliner check (#798)
lschilders Jan 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
72 changes: 72 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<!--
SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>

SPDX-License-Identifier: MPL-2.0
-->

# Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of
experience, education, socio-economic status, nationality, personal appearance,
race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, or to ban temporarily or permanently any
contributor for other behaviors that they deem inappropriate, threatening,
offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.


## Conflict Resolution

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at openstef@lfenergy.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.

## Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
available at
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
39 changes: 39 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!--
SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>

SPDX-License-Identifier: MPL-2.0
-->

# Contributing to OpenSTEF

Thank you for your interest in contributing to OpenSTEF! 🚀

## Quick Start

1. **Read our contributing guide**: [openstef.github.io/openstef/v4/contribute](https://openstef.github.io/openstef/v4/contribute/index.html)
2. **Install dependencies**: `uv sync --group dev`
3. **Make your changes** and ensure all checks pass: `uv run poe all --check`
4. **Submit a pull request**

## Documentation

For information about:

- 🛠️ **Development setup** - Environment setup with uv and modern Python tools
- 🔄 **Development workflow** - Branch naming, commit messages, and PR process
- 📝 **Documentation guidelines** - Writing docs and examples
- 🧪 **Testing standards** - Writing and running tests
- 📋 **Style guide** - Code formatting and quality standards

**Visit our full contributing guide: [openstef.github.io/openstef/v4/contribute](https://openstef.github.io/openstef/v4/contribute/index.html)**

## Getting Help

- 💬 **Slack**: [LF Energy workspace](https://slack.lfenergy.org/) (#openstef channel)
- 🐛 **Issues**: [GitHub Issues](https://github.com/OpenSTEF/openstef/issues)
- 📧 **Email**: openstef@lfenergy.org
- 📖 **Support**: [Support page](https://openstef.github.io/openstef/v4/project/support.html)

## Good First Issues

New contributors should look for [`good first issue`](https://github.com/OpenSTEF/openstef/labels/good%20first%20issue) labels!
23 changes: 0 additions & 23 deletions .github/bump_version.py

This file was deleted.

2 changes: 1 addition & 1 deletion .github/pr-labeler.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2017-2023 Contributors to the OpenSTEF project <korte.termijn.prognoses@alliander.com> # noqa E501
# SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
#
# SPDX-License-Identifier: MPL-2.0
# config of action in ./workflows/...
Expand Down
65 changes: 65 additions & 0 deletions .github/workflows/_job_quality_check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
#
# SPDX-License-Identifier: MPL-2.0

name: Quality Check
on:
workflow_call:
inputs:
# _SKIP*: sometimes you want to quickly test something, without having the whole suite kicking in.
# This is a lazy way to switch on and off steps. But never set it to true in main.
_SKIP_QUALITY:
type: boolean
default: false
description: for debug purposes only - if true skip all quality checks.

jobs:
builder:
name: Quality Checks
# Avoid duplicate runs: run on push (same-repo branches) OR on pull_request only if from a fork
runs-on: ubuntu-latest
steps:
- name: Checkout # Must be done before using composite actions
uses: actions/checkout@v4
with:
show-progress: false # very verbose for not much
- name: Install uv
uses: astral-sh/setup-uv@v6
# uv is needed for qa and deploy, so is kinda always needed. No need to skip it.
with:
activate-environment: true
enable-cache: true
- name: Install dependencies
if: ${{ always() }}
run: uv sync --frozen --no-install-project --all-groups --all-extras --all-packages

# Run quality checks
- name: reuse
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe reuse
- name: licensecheck
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe licensecheck --check
- name: lint
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe lint --check
- name: format
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe format --check
- name: format-pyproject
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe format-pyproject --check
- name: typing
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe type
- name: tests
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe tests
- name: doctests
if: ${{ ! inputs._SKIP_QUALITY && always() }}
run: poe doctests

- name: Stop if any quality step failed
# All tests are run with always() not to stop on the first error. This step makes the workflow fail if any quality step failed.
if: ${{ failure() }}
run: exit 1
43 changes: 0 additions & 43 deletions .github/workflows/black-format-code.yml

This file was deleted.

21 changes: 21 additions & 0 deletions .github/workflows/check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
# SPDX-License-Identifier: MPL-2.0

name: Quality Check
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
# push: # Disabled until release of v4.0.0
# branches: ['main']
pull_request:
types: [opened, synchronize, reopened, closed]

permissions:
contents: read

jobs:
quality:
name: Quality Checks
uses: ./.github/workflows/_job_quality_check.yaml
4 changes: 2 additions & 2 deletions .github/workflows/citations.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <korte.termijn.prognoses@alliander.com>
# SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <openstef@lfenergy.org>
#
# SPDX-License-Identifier: MPL-2.0

Expand Down Expand Up @@ -35,4 +35,4 @@ jobs:
run: |
sudo apt-get update && sudo apt-get install -y r-base
- name: Validate CITATION.cff
uses: dieghernan/cff-validator@v4
uses: dieghernan/cff-validator@v4
38 changes: 0 additions & 38 deletions .github/workflows/docs-check.yaml

This file was deleted.

49 changes: 0 additions & 49 deletions .github/workflows/docs-publish.yaml

This file was deleted.

Loading