Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python: Implement CI/CD Pipeline for Package Build, PyPI Push, and Dependency Conflict Resolution #344

Open
5 tasks
karimodm opened this issue Feb 17, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@karimodm
Copy link
Collaborator

Description

Implement a CI/CD pipeline to automate the build and release process for Python packages within the monorepo. This pipeline should also incorporate dependency conflict checks to ensure compatibility across all packages.

Tasks

  • Set up CI/CD pipeline: Configure GitHub Actions to trigger on relevant events (e.g., pushes, tags).
  • Automate package building: Implement steps in the CI/CD pipeline to automatically build Python packages based on pyproject.toml files found in each package directory.
  • PyPI publishing: Configure the pipeline to push new package versions to PyPI upon successful builds and tagged releases.
  • Dependency conflict check:
    • Develop a mechanism within the CI/CD pipeline to install all Python packages from the single root virtual package (goat-sdk-monorepo). This virtual package represents the combined dependencies of all individual packages. This package is not meant to be built or published.
    • Implement dependency conflict detection during the virtual package installation. This step should identify any incompatible dependency versions across the entire monorepo.
    • Fail the CI/CD pipeline if dependency conflicts are detected.
  • Reporting: Ensure the CI/CD pipeline provides clear reports on build status, PyPI publishing, and dependency conflict checks.

Goal

To streamline the release process and guarantee dependency compatibility across all Python packages within the goat-sdk-monorepo. This will prevent runtime errors and ensure a consistent experience for users integrating multiple packages from the monorepo.

@karimodm karimodm added the enhancement New feature or request label Feb 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant