Skip to content

Schlich/issue970#994

Closed
schlich wants to merge 4 commits intobiocore:masterfrom
schlich:schlich/issue970
Closed

Schlich/issue970#994
schlich wants to merge 4 commits intobiocore:masterfrom
schlich:schlich/issue970

Conversation

@schlich
Copy link
Copy Markdown
Contributor

@schlich schlich commented Jun 13, 2025

Closes #932 and #970

This pull request introduces several significant changes to the project's build system, dependency management, and configuration files. The most notable updates include transitioning to pyproject.toml for project metadata and configuration, adding a GitHub Actions workflow for building Python wheels, and simplifying setup.py by delegating metadata to pyproject.toml. These changes aim to modernize the project's packaging and testing infrastructure.

Build System Updates:

  • Added a new GitHub Actions workflow (.github/workflows/python-package-conda.yml) to build Python wheels across multiple operating systems (Ubuntu, Windows, macOS) and upload them as artifacts. This includes support for ARM builds on Linux using QEMU.

Dependency Management:

  • Updated ci/conda_host_env.yml to include gcc as a dependency, ensuring compatibility with the updated build process.
  • Transitioned dependency and metadata definitions to pyproject.toml, including build requirements (setuptools>=61.0) and runtime dependencies like numpy, scipy, and pandas.

Configuration Modernization:

  • Migrated project configuration from setup.cfg and pytest.ini to pyproject.toml, consolidating settings for tools like pytest and flake8. [1] [2]

Simplification of setup.py:

  • Refactored setup.py to remove metadata definitions and streamline the extension-building process using a dedicated get_extensions() function. Metadata is now managed in pyproject.toml. [1] [2]

@wasade
Copy link
Copy Markdown
Member

wasade commented Jun 13, 2025

Thanks!

- name: Checkout repository
uses: actions/checkout@v4

- name: Set up QEMU (for ARM builds on Linux, optional)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Github now has native ARM runners, you can see our implementation in scikit-bio/2232. If you find that QEMU takes a long time during the workflow, including ubuntu-24.04-arm in the os matrix will use the new runners.

wasade
wasade previously approved these changes Jul 1, 2025
Comment thread pyproject.toml Outdated
@wasade wasade dismissed their stale review July 1, 2025 19:18

CI does not look like it's passed

@mataton mataton closed this Jul 1, 2025
@mataton mataton reopened this Jul 1, 2025
@mataton
Copy link
Copy Markdown
Collaborator

mataton commented Jul 2, 2025

Closing in favor of #996

@mataton mataton closed this Jul 2, 2025
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.

Add wheel testing

3 participants