Skip to content

Add Tutorials to optional dependencies and update tutorial workflow.#2869

Merged
KS-HTK merged 21 commits intoe2nIEE:developfrom
furqan463:tutorial_dependencies
Feb 9, 2026
Merged

Add Tutorials to optional dependencies and update tutorial workflow.#2869
KS-HTK merged 21 commits intoe2nIEE:developfrom
furqan463:tutorial_dependencies

Conversation

@furqan463
Copy link
Copy Markdown
Contributor

Currently dependencies related to tutorials are not included in project.toml, which results in uv sync --all-extras removing these dependencies. With tutorial dependencies, uv sync --all-extras will enable tutorials.
Moreover, updated Tutorial test workflows to align with other workflows using uv.
As mentioned in #2868 , the tutorial tests fail on Python 3.13 and Python 3.14.
Currently tutorial workflow do not specify python version, and as per following the pre-installed python version in ubuntu-latest is Python 3.12.3.
https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md#language-and-runtime

However, if github updates this in future, tutorial tests will fail. Unless the issues with Julia/ pandamodels is fixed, the tutorial test workflow must specify python version, restricting to Python 3.12.

@furqan463
Copy link
Copy Markdown
Contributor Author

I would suggest creating a dev dependency group with all dependencies, and removing docs, tests, tutorials etc. from all group, so users installing Pandapower form pypi don't have to install extra dependencies.

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.02%. Comparing base (d15fdec) to head (d8de7cf).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2869      +/-   ##
===========================================
- Coverage    72.03%   72.02%   -0.01%     
===========================================
  Files          351      351              
  Lines        37506    37506              
===========================================
- Hits         27016    27014       -2     
- Misses       10490    10492       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vogt31337
Copy link
Copy Markdown
Contributor

I would suggest creating a dev dependency group with all dependencies, and removing docs, tests, tutorials etc. from all group, so users installing Pandapower form pypi don't have to install extra dependencies.

interesting point, we had this in the past, and changed it to the current version.

@furqan463
Copy link
Copy Markdown
Contributor Author

@KS-HTK please check. the test is still failing.

@KS-HTK
Copy link
Copy Markdown
Collaborator

KS-HTK commented Feb 6, 2026

Adding a set for the tutorials is fine, but I would suggest that it covers the basics and if one is doing tutorials for say plotting they should install pandapower[plotting, tutorials] and not have all the dependencies for all parts of the tutorials in the tutorials set.

There are multiple arguments to be made to support this:

  1. the tutorials are not even contained in the packaged version, so why should we provide a install set for the package for something you don't get with the package
  2. the all set of dependencies should not contain jupyter or julia as these packages are highly likely to fail installing on certain systems.
  3. when someone wants to do all tutorials it would be fine for them to install pandapower[all, tutorials] there really is no need that tutorials is exhaustive set or for all to include it.

In my opinion the all set should be for all dependencies of the package not the repository, and we should even remove test.
@vogt31337 @heckstrahler what are you're opinions an this?

@furqan463
Copy link
Copy Markdown
Contributor Author

Adding a set for the tutorials is fine, but I would suggest that it covers the basics and if one is doing tutorials for say plotting they should install pandapower[plotting, tutorials] and not have all the dependencies for all parts of the tutorials in the tutorials set.

There are multiple arguments to be made to support this:

  1. the tutorials are not even contained in the packaged version, so why should we provide a install set for the package for something you don't get with the package
  2. the all set of dependencies should not contain jupyter or julia as these packages are highly likely to fail installing on certain systems.
  3. when someone wants to do all tutorials it would be fine for them to install pandapower[all, tutorials] there really is no need that tutorials is exhaustive set or for all to include it.

In my opinion the all set should be for all dependencies of the package not the repository, and we should even remove test. @vogt31337 @heckstrahler what are you're opinions an this?

Yes agreed, We can restrict tutorial set to minimum dependencies required for tutorials only.
Regarding [all] totally agreed, we should remove tests and tutorials from all, we can create a dev set for all dependencies of the repository.

@furqan463
Copy link
Copy Markdown
Contributor Author

furqan463 commented Feb 6, 2026

Adding a set for the tutorials is fine, but I would suggest that it covers the basics and if one is doing tutorials for say plotting they should install pandapower[plotting, tutorials] and not have all the dependencies for all parts of the tutorials in the tutorials set.

There are multiple arguments to be made to support this:

  1. the tutorials are not even contained in the packaged version, so why should we provide a install set for the package for something you don't get with the package
  2. the all set of dependencies should not contain jupyter or julia as these packages are highly likely to fail installing on certain systems.
  3. when someone wants to do all tutorials it would be fine for them to install pandapower[all, tutorials] there really is no need that tutorials is exhaustive set or for all to include it.

In my opinion the all set should be for all dependencies of the package not the repository, and we should even remove test. @vogt31337 @heckstrahler what are you're opinions an this?

What about docs and typing sets?
Should these be included in [all]?

Updated the Python version for the 'uv' installation and uncommented relevant steps in the GitHub Actions workflow.
Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
Updated Python version from 3.14 to 3.13 in GitHub Actions workflow.
Updated Python version from 3.13 to 3.12 in GitHub Actions workflow.
Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
@furqan463 furqan463 force-pushed the tutorial_dependencies branch from e75c919 to 18550d1 Compare February 6, 2026 16:33
@KS-HTK
Copy link
Copy Markdown
Collaborator

KS-HTK commented Feb 9, 2026

What about docs and typing sets? Should these be included in [all]?

No, I would suggest adding them to the dev set and keeping them out from all. As I understand it typing should only ever be checked by mypy locally or in the pipelines and not at runtime and docs cannot be built from the package as it does not contain the files required.

A dev set is a great Idea, it would also make installation in the pipeline easier.

Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
Signed-off-by: furqan463 <ahmadfurqanc@gmail.com>
@furqan463 furqan463 requested a review from KS-HTK February 9, 2026 08:13
KS-HTK
KS-HTK previously approved these changes Feb 9, 2026
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Feb 9, 2026

@KS-HTK KS-HTK merged commit 6875e8a into e2nIEE:develop Feb 9, 2026
23 of 31 checks passed
@furqan463 furqan463 deleted the tutorial_dependencies branch February 10, 2026 01:43
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