Conversation
cuihantao
commented
Jan 4, 2026
- Update dependencies in pyproject.toml for compatibility and version constraints.
- Add ipywidgets to dependencies in pyproject.toml
- Remove Azure Pipelines configuration and split GH Actions for quick reporting.
…onstraints. - Restrict scipy version to <=1.16.3 for stability. - Set pandapower dependency to version 3.3 for consistency with recent changes.
…eporting. - Updated files and dependencies in pyproject.toml so that we don't have scattered deps in CI files. - Added pytest-xdist, nbmake, and line_profiler to the development dependencies.
There was a problem hiding this comment.
Pull request overview
This PR modernizes the CI/CD infrastructure by migrating from Azure Pipelines to GitHub Actions with improved job organization and updates Python package dependencies for better compatibility.
- Splits the monolithic CI workflow into separate jobs (test, lint, notebooks, docs, publish) for faster feedback
- Updates dependency constraints for kvxopt, scipy, and pandapower
- Adds development dependencies (ipywidgets, pytest-xdist, nbmake, line_profiler) to support enhanced testing
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Updates dependency version constraints and adds new development/runtime dependencies |
| .github/workflows/pythonapp.yml | Replaces conda-based workflow with pip-based multi-OS testing and separates concerns into distinct jobs |
| azure-pipelines.yml | Removes Azure Pipelines entry point as part of migration to GitHub Actions |
| .azure-pipelines/azure-pipelines-win.yml | Removes Windows-specific Azure Pipeline configuration |
| .azure-pipelines/azure-pipelines-macos.yml | Removes macOS-specific Azure Pipeline configuration |
| .azure-pipelines/azure-pipelines-linux.yml | Removes Linux-specific Azure Pipeline configuration |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ] | ||
| interop = [ | ||
| "pandapower", | ||
| "pandapower==3.3", |
There was a problem hiding this comment.
The pandapower version has been pinned to exactly 3.3, but as of January 2025, pandapower 3.3 does not exist. The latest versions are in the 2.x series (e.g., 2.14.x). This will cause installation failures when users try to install the interop extras. Consider using a version constraint that matches an actual released version, such as pandapower>=2.14,<3.0 or verify the correct version number.
| "pandapower==3.3", | |
| "pandapower>=2.14,<3.0", |
| python-version: '3.11' | ||
|
|
||
| - name: Install dependencies | ||
| run: pip install -e .[dev] |
There was a problem hiding this comment.
The notebook tests job installs only [dev] extras but not [interop] extras. However, the old Azure Pipelines configuration installed both [dev,interop] for testing. Some notebooks or examples may depend on pandapower or other interop dependencies (e.g., test_pandapower.py exists). Consider installing [dev,interop] to ensure all notebooks can run successfully.
| python-version: '3.11' | ||
|
|
||
| - name: Install dependencies | ||
| run: pip install -e .[dev] |
There was a problem hiding this comment.
The docs build job installs only [dev] extras, but the pyproject.toml defines a separate [doc] extras group specifically for documentation dependencies. The old Azure Pipelines workflow installed [dev,interop] and relied on dev containing the doc dependencies. To be more explicit and align with the project structure, consider installing [dev,doc] or just [doc] to ensure all required Sphinx extensions and documentation dependencies are available.
| run: pip install -e .[dev] | |
| run: pip install -e .[dev,doc] |
|
|
||
| - name: Install dependencies | ||
| run: pip install -e .[dev,interop] | ||
|
|
There was a problem hiding this comment.
The old GitHub Actions workflow included a pip check step to verify package dependencies are consistent and compatible. This validation step has been removed from the new workflow. Consider adding a pip check step after installing dependencies in at least one of the jobs (e.g., in the test job for ubuntu-latest) to catch dependency conflicts early.
| - name: Check dependency consistency | |
| if: matrix.os == 'ubuntu-latest' | |
| run: pip check |
| "dill", | ||
| "pathos", | ||
| "tqdm", | ||
| "ipywidgets", |
There was a problem hiding this comment.
Adding ipywidgets to the main dependencies creates a version conflict with the web extras which pins ipywidgets to version 7.7. Since ipywidgets is unconstrained here, it will install the latest version (likely 8.x), which conflicts with web[ipywidgets==7.7]. Consider either removing this from main dependencies if it's only needed for the web extras, or aligning the versions across both dependency groups.
| "ipywidgets", | |
| "ipywidgets==7.7", |
| "kvxopt>=1.3.2.0,<1.4", | ||
| "numpy", | ||
| "scipy<1.14", | ||
| "scipy<=1.16.3", |
There was a problem hiding this comment.
The scipy version constraint has been changed from <1.14 to <=1.16.3. However, scipy 1.16.3 does not exist - as of January 2025, the latest scipy version is in the 1.14.x series. This will cause installation failures. Consider reverting to scipy<1.15 or using a constraint like scipy<1.14.1 if 1.14.0 specifically has issues.
| "scipy<=1.16.3", | |
| "scipy<1.15", |
…ation steps. - Changed pandapower dependency in pyproject.toml to allow versions from 3.0 to 3.3 for better compatibility. - Updated GitHub Actions workflow to install interop dependencies alongside development dependencies.