Skip to content

Refactor CI/CD system based on latest standardization for upstreams #135

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

markurtz
Copy link
Member

Specifically, it standardizes around the following pieces and is intended to be compliant with PEP 440, 517, 518, 621, and 660.

Package:

  • Use pyproject.toml to follow the modern pep standards for python project packaging
  • Use setup.py to augment the packaging enabling dynamic portions
  • Use tox.ini to standardize everything through reproducible environments

Build:

  • Sources the versions to update to from tags on the repo
  • Ensure last release version is always represented in code (setup.py) so that builds will work absent a git repo / inside of a sdist package
  • Utilize setuptools_git_versioning to enable dynamic versioning based on environment variables and git state, if available, while compiling to a static version for compatibility with wheel, sdist, and editable install flows
  • Specifically, enables build types of dev=#.#.#.dev#, nightly=#.#.#.a#, candidate=#.#.#.rc#, and release=#.#.#
  • Enables build iterations if a suffix is added based on an environment variable passed in, then the distance for the current commit from the last release tag, then defaults to 0
  • Populates a version.txt and version.py under the root repo on build to ensure that info is properly stored and distributed

CI/CD:

  • Enables development flows on PR creation to run standard checks for quality and tests as well as creating a dev build with the iteration set to the PR number
  • Enables main branch flows on commit push to run standard checks for quality and tests
  • Enables nightly flows on a cron job every 24hrs to run more substantial tests and push up a '.a' release if tests pass with the iteration number set to the number of commits since the last release tag
  • Enables release candidate flows that are triggered on creation or push to a release branch to run full test sweeps and push up a '.rc' release if tests pass with the iteration number set to the number of commits since the last release tag
  • Enables release flows that are triggered on the creation of a version tag that push up the release build and run a full suite of tests after to identify any potential issues post release

📦 Build Artifacts Available
The build artifacts (.whl and .tar.gz) have been successfully generated and are available for download: https://github.com/neuralmagic/guidellm/actions/runs/14652641610/artifacts/3005774786.
They will be retained for up to 30 days.

@markurtz markurtz requested review from sjmonson and Copilot April 24, 2025 22:13
Copy link

@Copilot 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 refactors the CI/CD system and packaging configuration to align with modern standards (PEP 440, 517, 518, 621, and 660), leveraging dynamic versioning via setuptools_git_versioning. Key changes include:

  • Removal of the legacy build properties injection file and migration of versioning logic to setup.py.
  • Updates to pyproject.toml with dynamic version configuration, revised project metadata (license, authors, keywords), and dependency adjustments.
  • Enhancements in GitHub workflows (release, candidate, nightly, development) for improved checkout, dependency installation, and environment variable usage.

Reviewed Changes

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

Show a summary per file
File Description
utils/inject_build_props.py Removed legacy file managing build properties
setup.py Introduces dynamic versioning and writes version files
pyproject.toml Updates project metadata, dynamic version setting, and deps
.pre-commit-config.yaml Adjusts pre-commit configuration dependencies
.github/workflows/*.yml Improves workflow steps (checkout, dependency install, token)
Files not reviewed (1)
  • tox.ini: Language not supported
Comments suppressed due to low confidence (1)

utils/inject_build_props.py:1

  • The removal of 'inject_build_props.py' may affect any processes still relying on its functionality. Please confirm that all necessary build property injection logic is now fully handled by the new setup.py implementation.
File removed

📦 Build Artifacts Available
The build artifacts (.whl and .tar.gz) have been successfully generated and are available for download: https://github.com/neuralmagic/guidellm/actions/runs/14652694457/artifacts/3005792363.
They will be retained for up to 30 days.

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.

1 participant