Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
27 changes: 27 additions & 0 deletions CHANGE_LOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
# 2026-06-14 — v1.0.0 GA preflight CI gate
- Started the `issue-15-v100-green-ci` branch for #15 under the v1.0.0 GA release issue tree and restored the local lint/type/test gate that current `main` would hit after the existing Ruff-format failure.
- Let Ruff normalize the pending formatting drift, including the release-blocking playback aggregate/test formatting and the processor-loader signature formatting found during the GA audit.
- Migrated CLI/productivity/scenario string enums from `str, Enum` to `StrEnum` so the current Ruff `UP042` gate passes without suppressions.
- Tightened MyPy compatibility after the enum migration by string-coercing harvest-system override values before enum construction and casting the Typer `click_type` option through `Any` to isolate the current Typer stub mismatch.
- Hardened `tests/test_analyze_tuner_reports.py` subprocess calls to use `sys.executable`, preventing local/CI false failures when bare `python` points outside the pytest environment.
- Fixed the `docs/howto/optimization_formulation.rst` heading underline so the Sphinx warning-as-error build succeeds once Pandoc is available.
- Commands executed:
- `git checkout -b issue-15-v100-green-ci origin/main`
- `PYTHONPATH=/tmp/fhops-release-audit-tools python -m ruff format src/fhops/productivity/processor_loader.py`
- `python -m venv .venv`
- `.venv/bin/python -m pip install --upgrade pip`
- `.venv/bin/python -m pip install -e '.[dev]' -r docs/requirements.txt pre-commit`
- `.venv/bin/ruff format src tests` *(initial run reformatted 3 files)*
- `.venv/bin/ruff check src tests` *(initial run failed on 44 pre-existing `UP042` findings; fixed by `StrEnum` migration)*
- `.venv/bin/mypy src` *(initial reruns exposed enum override narrowing and Typer stub issues; fixed in this changeset)*
- `.venv/bin/ruff format src tests`
- `.venv/bin/ruff check src tests`
- `.venv/bin/mypy src`
- `.venv/bin/pytest tests/test_analyze_tuner_reports.py` *(failed before `sys.executable` fix, then passed)*
- `.venv/bin/pytest` *(initial full run failed only on the tuner-report subprocess environment mismatch; rerun passed: 299 passed, 210 skipped, 61 warnings)*
- `.venv/bin/pre-commit run --all-files`
- `.venv/bin/sphinx-build -b html docs _build/html -W` *(failed locally because Pandoc was not installed in the environment)*
- `.venv/bin/python -m pip install pypandoc_binary`
- `PYPANDOC_PANDOC=$(...) .venv/bin/sphinx-build -b html docs _build/html -W` *(still failed because nbsphinx requires `pandoc` on `PATH`)*
- `PANDOC_DIR=$(...) PATH="$PANDOC_DIR:$PATH" .venv/bin/sphinx-build -b html docs _build/html -W` *(first run exposed the heading underline warning; rerun passed)*

# 2026-03-22 — Canonical operational MILP formulation sync (FHOPS + thesis chapter module)
- Created the `feature/fhops-operational-formulation-sync` firewall branch and added a canonical formulation source module at `docs/softwarex/manuscript/sections/includes/fhops_operational_formulation.md`, then generated synchronized outputs:
- `docs/softwarex/manuscript/sections/includes/fhops_operational_formulation.tex`
Expand Down
1 change: 1 addition & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ before proposing new work.
## Detailed Next Steps
1. **Release Candidate Prep (`notes/release_candidate_prep.md`, `AGENTS.md`, `notes/cli_docs_plan.md`)**
- Lock feature set, refresh install/docs, and draft release notes + Hatch-based packaging checklist ahead of the public milestone.
- 2026-06-14: v1.0.0 GA issue tree opened; first child branch (`issue-15-v100-green-ci`) is restoring the green CI/local verification gate before release metadata changes.
2. **Metaheuristic Roadmap (`notes/metaheuristic_roadmap.md`)**
- Prioritise SA refinements, operator registry work, and benchmarking comparisons with the new harness (including shift-aware neighbourhoods).
3. **Shift-Based Scheduling Refactor (`notes/modular_reorg_plan.md`, `notes/mip_model_plan.md`, `notes/simulation_eval_plan.md`)**
Expand Down
2 changes: 1 addition & 1 deletion docs/howto/optimization_formulation.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Operational Optimization Formulation
===================================
====================================

This page documents the canonical FHOPS operational MILP formulation used by the
Pyomo implementation in ``fhops.model.milp.operational``.
Expand Down
8 changes: 7 additions & 1 deletion notes/release_candidate_prep.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Release Candidate Prep Plan

Date: 2025-11-16
Status: Draftdrive the v0.x RC process.
Status: Activev1.0.0 GA preflight in progress for SoftwareX submission.

## Objectives
- Freeze scope and polish docs/install instructions for the first FHOPS release candidate.
- Adopt Hatch for packaging/publishing (mirroring ws3 workflows) and ensure PyPI metadata is accurate.
- Produce changelog/release notes, version bumps, and verification checklists before tagging.
- Promote the public package from the current `1.0.0a2` prerelease line to a clean `1.0.0`
GA release that SoftwareX reviewers can install and cite.

## Tasks
1. **Versioning & Hatch wiring**
Expand Down Expand Up @@ -34,6 +36,10 @@ Status: Draft — drive the v0.x RC process.
6. **Automation**
- [x] Add GitHub Actions job template for ``hatch build`` verification (triggered on tags) — see `.github/workflows/release-build.yml`.
- [x] Prepare release checklist in ``AGENTS.md`` (Hatch build/publish cadence documented under Release workflow).
- [ ] Restore green `main` CI before the v1.0.0 version bump/tag.
- 2026-06-14: issue #15 branch fixes current Ruff formatting drift, modernises `StrEnum`
lint blockers, and hardens tuner-report subprocess tests so the local lint/type/test gate
can pass under the release verification environment.

7. **Publishing (TestPyPI → PyPI)**
- [x] Dry run using TestPyPI:
Expand Down
Loading
Loading