Skip to content

gh actions revamp#630

Merged
cuihantao merged 4 commits intomasterfrom
gh-actions-revamp
Jan 4, 2026
Merged

gh actions revamp#630
cuihantao merged 4 commits intomasterfrom
gh-actions-revamp

Conversation

@cuihantao
Copy link
Copy Markdown
Collaborator

  • 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.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

Comment thread pyproject.toml Outdated
]
interop = [
"pandapower",
"pandapower==3.3",
Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
"pandapower==3.3",
"pandapower>=2.14,<3.0",

Copilot uses AI. Check for mistakes.
Comment thread .github/workflows/pythonapp.yml Outdated
python-version: '3.11'

- name: Install dependencies
run: pip install -e .[dev]
Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Comment thread .github/workflows/pythonapp.yml Outdated
python-version: '3.11'

- name: Install dependencies
run: pip install -e .[dev]
Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
run: pip install -e .[dev]
run: pip install -e .[dev,doc]

Copilot uses AI. Check for mistakes.

- name: Install dependencies
run: pip install -e .[dev,interop]

Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
- name: Check dependency consistency
if: matrix.os == 'ubuntu-latest'
run: pip check

Copilot uses AI. Check for mistakes.
Comment thread pyproject.toml
"dill",
"pathos",
"tqdm",
"ipywidgets",
Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
"ipywidgets",
"ipywidgets==7.7",

Copilot uses AI. Check for mistakes.
Comment thread pyproject.toml
"kvxopt>=1.3.2.0,<1.4",
"numpy",
"scipy<1.14",
"scipy<=1.16.3",
Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
"scipy<=1.16.3",
"scipy<1.15",

Copilot uses AI. Check for mistakes.
…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.
@cuihantao cuihantao merged commit 3b74d26 into master Jan 4, 2026
12 of 13 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.

2 participants