Skip to content

release: remove n2o1 task + ConfigEntsoe inherits ConfigMulti (MAJOR)#353

Merged
bartzbeielstein merged 5 commits into
mainfrom
develop
Jun 8, 2026
Merged

release: remove n2o1 task + ConfigEntsoe inherits ConfigMulti (MAJOR)#353
bartzbeielstein merged 5 commits into
mainfrom
develop

Conversation

@bartzbeielstein

Copy link
Copy Markdown
Collaborator

Promotes #352. Contains a BREAKING CHANGE (removal of the spotforecast-safe-n2o1-cov-df console task) → semantic-release MAJOR (20.0.0), plus the ConfigEntsoe(ConfigMulti) refactor that closes the feature-flag parity gap structurally. All develop CI green. Post-release: re-pin spotforecast2 + bart26k-lecture to <21. 🤖 Generated with Claude Code

github-actions Bot and others added 5 commits June 8, 2026 18:12
The n-to-1-with-covariates task was a thin CLI wrapper whose real logic lives
in spotforecast2_safe.multitask (BaseTask/MultiTask/runner.run) — retained as
public API and exercised by the downstream spotforecast2 package. Removing the
wrapper drops no library capability and clears the lone isinstance(config,
ConfigMulti) guard that blocked ConfigEntsoe from inheriting ConfigMulti.

Removed: the module, the `spotforecast-safe-n2o1-cov-df` console script
(pyproject [project.scripts]), the `n2o1_cov_df_main` export from tasks/__init__,
its dedicated tests (test_cli_n2o1, test_task_safe_n_to_1_with_covariates, and
the TestTaskSafeN2O1CovDf class), and its docs/quartodoc entries.

No downstream consumer (spotforecast2, bart26k-lecture) imports the module or
calls the script.

BREAKING CHANGE: the `spotforecast-safe-n2o1-cov-df` console entry point and the
`spotforecast2_safe.tasks.task_safe_n_to_1_with_covariates_and_dataframe` module
(incl. `run_pipeline`, `main`, and the `n2o1_cov_df_main` export) are removed.
Use `spotforecast2_safe.multitask.MultiTask` / `multitask.runner.run` directly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ConfigEntsoe was an independent dataclass duplicating ConfigMulti's entire field
set, so every new ConfigMulti feature flag had to be hand-mirrored or the
ENTSO-E pipeline raised TypeError (the parity gap, patched reactively in 19.4.0).

Make ConfigEntsoe a subclass: it now declares only its two genuine differences —
the index_name default override ("Time (UTC)") and the ENTSO-E-only
retrain_max_age field — and inherits all 73 shared fields plus get_params /
set_params / __post_init__(validate_config). The parity gap is closed
structurally: any flag added to ConfigMulti appears on ConfigEntsoe
automatically.

Verified byte-identical: ConfigEntsoe() defaults are unchanged vs the previous
standalone class (only sanctioned diffs: index_name default + retrain_max_age).
The hand-maintained parity test is replaced by a structural invariant
(set(ConfigMulti._PARAM_NAMES) <= set(ConfigEntsoe._PARAM_NAMES); the only extra
is retrain_max_age) plus default-equality and isinstance assertions.

Enabled by the n2o1 task removal, which dropped the isinstance(config,
ConfigMulti) guard that subclassing would otherwise have subverted.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…emove-n2o1-configentsoe-inherit

feat(tasks)!: remove n2o1 task + ConfigEntsoe inherits ConfigMulti
## [20.0.0-rc.1](v19.4.0...v20.0.0-rc.1) (2026-06-08)

### ⚠ BREAKING CHANGES

* **tasks:** the `spotforecast-safe-n2o1-cov-df` console entry point and the
`spotforecast2_safe.tasks.task_safe_n_to_1_with_covariates_and_dataframe` module
(incl. `run_pipeline`, `main`, and the `n2o1_cov_df_main` export) are removed.
Use `spotforecast2_safe.multitask.MultiTask` / `multitask.runner.run` directly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

### Features

* **tasks:** remove the spotforecast-safe-n2o1-cov-df console task ([5893fc5](5893fc5))

### Code Refactoring

* **configurator:** ConfigEntsoe inherits ConfigMulti ([defdca7](defdca7))
@bartzbeielstein bartzbeielstein merged commit 3e24096 into main Jun 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants