Skip to content

fix: dependecies and conda build#720

Merged
GregaVrbancic merged 10 commits intomasterfrom
fix-deps
Nov 21, 2025
Merged

fix: dependecies and conda build#720
GregaVrbancic merged 10 commits intomasterfrom
fix-deps

Conversation

@GregaVrbancic
Copy link
Copy Markdown
Contributor

No description provided.

@GregaVrbancic
Copy link
Copy Markdown
Contributor Author

@firefly-cpp, in order to enable the numpy >2, we have to drop the support for Python version <3.10

Copy link
Copy Markdown
Contributor

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 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.

Comment thread pyproject.toml Outdated
Comment thread conda/meta.yaml Outdated
Comment thread conda/meta.yaml Outdated
Comment thread conda/meta.yaml Outdated
Copy link
Copy Markdown
Contributor

Copilot AI commented Nov 21, 2025

@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.

GregaVrbancic and others added 3 commits November 21, 2025 12:54
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>
Copy link
Copy Markdown
Contributor

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

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.

Comment thread pyproject.toml
openpyxl = "^3.1.2"
matplotlib = "^3.8.0"
python = ">=3.10,<3.14"
numpy = "^2.1.1"
Copy link

Copilot AI Nov 21, 2025

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Comment thread conda/meta.yaml
build:
number: 0
script: {{ PYTHON }} -m pip install . -vv
noarch: python
Copy link

Copilot AI Nov 21, 2025

Choose a reason for hiding this comment

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

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.

Suggested change
noarch: python

Copilot uses AI. Check for mistakes.
Comment thread .pyup.yml

# Only update direct dependencies in pyproject.toml main group
# Ignore all optional dependencies and transitive dependencies
update: insecure
Copy link

Copilot AI Nov 21, 2025

Choose a reason for hiding this comment

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

[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.

Suggested change
update: insecure
update: all

Copilot uses AI. Check for mistakes.
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
Copy link

Copilot AI Nov 21, 2025

Choose a reason for hiding this comment

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

[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.

Suggested change
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload build/noarch/*.conda --force
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload build/noarch/*.conda

Copilot uses AI. Check for mistakes.
Comment on lines 0 to +5
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
Copy link

Copilot AI Nov 21, 2025

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@firefly-cpp firefly-cpp left a comment

Choose a reason for hiding this comment

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

Perfect. Please proceed with the new release of this package. The Python versions appear to meet the requirements for most platforms.

@GregaVrbancic GregaVrbancic merged commit 2f86304 into master Nov 21, 2025
22 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.

4 participants