Skip to content

Conversation

@esparig
Copy link
Member

@esparig esparig commented Oct 13, 2025

Resolves https://github.com/grycap/issue-tracker/issues/107

This pull request makes significant updates to the packaging and release workflow for the Python OSCAR client. The main improvements include migrating build and packaging configuration to pyproject.toml, simplifying setup.py, modernizing the GitHub Actions release workflow, and updating documentation and test workflow triggers.

Packaging and Build System Modernization:

  • Added a pyproject.toml file to define build requirements, project metadata, dependencies, and versioning using setuptools and setuptools-scm. This modernizes the build system and centralizes configuration.
  • Simplified setup.py to a minimal stub for backward compatibility, moving all configuration to pyproject.toml.

Release Workflow Improvements:

  • Replaced the old release workflow with a new GitHub Actions workflow in .github/workflows/release-build.yaml that builds and publishes the package to PyPI only when a release is published. The new workflow uses trusted publishing, separates build and publish jobs, and improves reliability and security.
  • Removed the previous version bump and release workflow (release-version.yaml), streamlining the release process and eliminating manual version management in favor of automated versioning via setuptools-scm.

Documentation and Test Workflow Updates:

  • Updated README.md badges to reflect the new package name (oscar-python) and improved links to test and PyPI status.
  • Modified the test workflow trigger in .github/workflows/tests.yaml to also run on the devel branch, ensuring broader CI coverage.

Copy link

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 pull request modernizes the Python OSCAR client's packaging, versioning, and release workflow by migrating from legacy setup.py configuration to a pyproject.toml-based approach and implementing a streamlined automated release process.

  • Migrated from setup.py to pyproject.toml for modern Python packaging standards
  • Replaced manual version management with automated git tag-based versioning using setuptools-scm
  • Implemented secure GitHub Actions workflow for trusted PyPI publishing

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
setup.py Simplified to minimal stub for backward compatibility
pyproject.toml Added complete project configuration with dependencies and automated versioning
README.md Updated badges to reflect new package name and improved CI links
.github/workflows/tests.yaml Extended CI triggers to include devel branch
.github/workflows/release-version.yaml Removed manual version bump workflow
.github/workflows/release-build.yaml Added modern PyPI publishing workflow with trusted publishing

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@esparig esparig merged commit abbc743 into devel Oct 13, 2025
1 check passed
@esparig esparig deleted the devops/versioning-and-publish branch October 13, 2025 11:21
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.

3 participants