fix: dependecies and conda build#720
Conversation
|
@firefly-cpp, in order to enable the numpy >2, we have to drop the support for Python version <3.10 |
There was a problem hiding this comment.
Pull Request Overview
This PR updates Python version support and dependency versions across the project, modernizes the conda build configuration, and adds new CI/CD workflows for testing conda builds. The PR drops Python 3.9 support in favor of Python 3.10-3.13.
Key changes:
- Updates minimum Python version from 3.9 to 3.10 and adds support for Python 3.13
- Upgrades core dependencies (numpy, pandas, matplotlib, etc.) to newer major/minor versions
- Modernizes conda build configuration with noarch builds and explicit dependency management
Reviewed Changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Adds Python 3.10-3.13 classifiers, updates Python requirement to >=3.10, upgrades all dependency versions |
| conda/meta.yaml | Adds noarch build configuration, explicit runtime dependencies, and poetry-core to build requirements |
| conda/conda_build_config.yaml | Updates Python versions list from 3.9-3.12 to 3.10-3.13 |
| .pyup.yml | New configuration file for PyUp dependency updates with monthly schedule and dependency filtering |
| .github/workflows/test_conda.yml | New workflow for testing conda builds on pull requests |
| .github/workflows/publish_conda.yml | Modernizes conda publishing workflow with updated actions and manual build/upload steps |
| .github/workflows/main.yml | Updates test matrix to Python 3.10-3.13 and upgrades macOS runner to macos-14 |
| .github/dependabot.yml | Replaces separate pip directory config with ignore rules for optional dependencies |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@GregaVrbancic I've opened a new pull request, #721, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Initial plan * fix: align Python version requirement in conda/meta.yaml with pyproject.toml Co-authored-by: GregaVrbancic <1894788+GregaVrbancic@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: GregaVrbancic <1894788+GregaVrbancic@users.noreply.github.com> Co-authored-by: Grega Vrbančič <grega.vrbancic@gmail.com>
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 8 out of 9 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| openpyxl = "^3.1.2" | ||
| matplotlib = "^3.8.0" | ||
| python = ">=3.10,<3.14" | ||
| numpy = "^2.1.1" |
There was a problem hiding this comment.
The update from numpy ^1.26.1 to ^2.1.1 is a major version bump. NumPy 2.0 introduced several breaking changes. Please ensure that the codebase is compatible with NumPy 2.x, as this could affect array behavior, data types, and deprecated APIs. Consider testing thoroughly or documenting this as a breaking change.
| build: | ||
| number: 0 | ||
| script: {{ PYTHON }} -m pip install . -vv | ||
| noarch: python |
There was a problem hiding this comment.
The conda build configuration now uses noarch: python to create a platform-independent package. However, some dependencies (numpy, pandas, matplotlib) have native extensions that are platform-specific. Verify that these dependencies correctly provide noarch builds or that the conda build will properly handle platform-specific dependencies at install time.
| noarch: python |
|
|
||
| # Only update direct dependencies in pyproject.toml main group | ||
| # Ignore all optional dependencies and transitive dependencies | ||
| update: insecure |
There was a problem hiding this comment.
[nitpick] The update: insecure setting will only update packages with known security vulnerabilities. Combined with the extensive ignore list, this means most dependency updates will be missed. Consider using update: all or update: security if you want to receive updates for important bug fixes and improvements, not just security patches.
| update: insecure | |
| update: all |
| run: | | ||
| conda install -y conda-build anaconda-client | ||
| conda build conda --output-folder build | ||
| anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload build/noarch/*.conda --force No newline at end of file |
There was a problem hiding this comment.
[nitpick] The --force flag in the anaconda upload command will overwrite existing packages without prompting. While this may be intentional for automated releases, consider whether this could accidentally overwrite a published package. If this is the desired behavior for re-publishing, it's fine; otherwise, consider removing --force to prevent accidental overwrites.
| anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload build/noarch/*.conda --force | |
| anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload build/noarch/*.conda |
| python: | ||
| - 3.9 | ||
| - 3.10 | ||
| - 3.11 | ||
| - 3.12 No newline at end of file | ||
| - 3.12 | ||
| - 3.13 No newline at end of file |
There was a problem hiding this comment.
Since meta.yaml now specifies noarch: python, the conda package will be built as platform-independent. However, this file still defines multiple Python versions (3.10-3.13). With noarch: python, conda-build typically ignores the Python version matrix and creates a single package compatible with all specified Python versions. Consider removing this file or adding a comment explaining that these versions define the compatibility range rather than build matrix.
firefly-cpp
left a comment
There was a problem hiding this comment.
Perfect. Please proceed with the new release of this package. The Python versions appear to meet the requirements for most platforms.
No description provided.