Skip to content

refactor: migrate from tox/PyScaffold to uv for dependency management, consolidating all dependencies into pyproject.toml and a single uv.lock file.#177

Merged
Flix6x merged 15 commits intoFlexMeasures:mainfrom
TeaDrinkingProgrammer:refactor/uv-migration
Apr 14, 2026
Merged

refactor: migrate from tox/PyScaffold to uv for dependency management, consolidating all dependencies into pyproject.toml and a single uv.lock file.#177
Flix6x merged 15 commits intoFlexMeasures:mainfrom
TeaDrinkingProgrammer:refactor/uv-migration

Conversation

@TeaDrinkingProgrammer
Copy link
Copy Markdown
Contributor

@TeaDrinkingProgrammer TeaDrinkingProgrammer commented Feb 19, 2026

This simplifies and speeds up the development setup greatly.

Changes:

  • Switch build backend from setuptools to hatchling
  • Remove setup.cfg, tox.ini, .isort.cfg and setup.py in favour of .flake8 and pyproject.toml
  • Add Poethepoet tasks
  • Upgrade main Python version (CI/CD, .python-version, etc.) to 3.12
  • Deprecate Python 3.9
  • Add .python-version for consistent Python version management
  • Create separate Dockerfile for flexmeasures-client
  • Replace pip-tools with uv in all CI/CD workflows
  • Remove ci/run_mypy.sh in favour of Poethepoet task
  • Update documentation

Probably best to keep this in draft until the FlexMeasures PR is merged so we can take learnings from that.

Stijn van Houwelingen and others added 6 commits February 19, 2026 16:44
…, consolidating all dependencies into pyproject.toml and a single uv.lock file.

This simplifies and speeds up the development setup greatly.

Changes:
- Switch build backend from setuptools to hatchling
- Remove setup.cfg, tox.ini, .isort.cfg and setup.py in favour of .flake8 and pyproject.toml
- Add Poethepoet tasks
- Upgrade main Python version (CI/CD, .python-version, etc.) to 3.12
- Deprecate Python 3.9
- Add .python-version for consistent Python version management
- Create separate Dockerfile for flexmeasures-client
- Replace pip-tools with uv in all CI/CD workflows
- Remove ci/run_mypy.sh in favour of Poethepoet task
- Update documentation

Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
Signed-off-by: F.N. Claessen <claessen@seita.nl>
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
@TeaDrinkingProgrammer
Copy link
Copy Markdown
Contributor Author

Checkpoint: UV/GH actions/pre-commit changes are now in sync with FlexMeasures/flexmeasures#1973

Stijn van Houwelingen added 2 commits March 16, 2026 16:03
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
@TeaDrinkingProgrammer
Copy link
Copy Markdown
Contributor Author

TODO: update docs

Comment thread .github/workflows/ci.yml Outdated
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
Comment thread pyproject.toml

[project.urls]
Homepage = "https://github.com/FlexMeasures/flexmeasures-client"
Documentation = "https://flexmeasures-client.readthedocs.io/"
Copy link
Copy Markdown
Contributor

@Flix6x Flix6x Mar 16, 2026

Choose a reason for hiding this comment

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

@nhoening @TeaDrinkingProgrammer would you recommend we start a separate RTD project for the FlexMeasures Client?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Not what I had high in my priority list.

Of course it might deserve it.

  • Usage examples
  • HEMS example
  • S2 section

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Then I suggest we link the "Documentation" to https://github.com/FlexMeasures/flexmeasures-client for now.

Stijn van Houwelingen added 5 commits March 18, 2026 15:36
…hods for JSON serialization. Use environment variables for server script. Use variable pricing in server script. Delete redundant demo_setup.py.

Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
…x miscellaneous docker compose issues

Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
…up. Remove docs about deprecated demo file.

Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
Signed-off-by: Stijn van Houwelingen <teadrinkingprogrammer@github.io>
@TeaDrinkingProgrammer
Copy link
Copy Markdown
Contributor Author

Update: I updated all the docs to reflect the new setup and fixed some issues that arose due to the dockerfile now being separate from the flexmeasures repo.

I just noticed that @Flix6x also pushed some fixes for the CEM use-case, so we'll have to see how that can be consolidated. Feel free to remove part/all of the fixes in favour of that version, whatever works best.

@TeaDrinkingProgrammer
Copy link
Copy Markdown
Contributor Author

Let me know if I can help to move this forward

Copy link
Copy Markdown
Contributor

@Flix6x Flix6x left a comment

Choose a reason for hiding this comment

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

I'm finding little time to test, sorry. It's a large PR. Halfway through my review. Two questions so far.

Comment thread Dockerfile
Comment thread docs/CEM.rst
@TeaDrinkingProgrammer
Copy link
Copy Markdown
Contributor Author

I'm finding little time to test, sorry. It's a large PR. Halfway through my review. Two questions so far.

No worries, thank you for putting in the time

@Flix6x Flix6x merged commit d8b3c74 into FlexMeasures:main Apr 14, 2026
12 checks 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.

3 participants