Skip to content

Enable CI/CD and standardize build system setup #1

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 8 commits into
base: main
Choose a base branch
from

Conversation

markurtz
Copy link
Member

@markurtz markurtz commented Apr 23, 2025

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:

  • 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
  • Sources the versions to update to from tags on the repo

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

Copy link

Build artifacts (.whl and .tar.gz) are available for download for up to 30 days.
They are located at https://github.com/neuralmagic/speculators/actions/runs/14627065255/artifacts/2997041793

Copy link

Build artifacts (.whl and .tar.gz) are available for download for up to 30 days.
They are located at https://github.com/neuralmagic/speculators/actions/runs/14627383715/artifacts/2997171748

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

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

📦 Build Artifacts Available
The build artifacts (.whl and .tar.gz) have been successfully generated and are available for download: https://github.com/neuralmagic/speculators/actions/runs/14738079587/artifacts/3032078594.
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