-
Notifications
You must be signed in to change notification settings - Fork 66
[cye/subpack-ci] Add sub-package build, test, and publish to OSS. (WORK IN PROGRESS - PENDING MORE SUB-PACKAGE COVERAGE) #725
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
Conversation
c2cc65c
to
07f00ad
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussed via huddle -- a great first step forward.
PR changes push to test PyPI, and manual workflow dispatches are required to push to the real PyPI. I'll be testing with @nvdreidenbach 's Edit: Or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall LGTM with comments discussed via slack; let's make this manual for now (not based on PR) until we're more comfortable with pypi distribution
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
… package will still be tested in the BioNeMo container. Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
Signed-off-by: Cory Ye <[email protected]>
…PyPI. Signed-off-by: Cory Ye <[email protected]>
…y unit tests in both container AND singleton. Signed-off-by: Cory Ye <[email protected]>
…g against specific commits, and add documentation to contributing.md. Signed-off-by: Cory Ye <[email protected]>
Description
TODO
pytest
-ing.transformer_engine
,mamba-ssm
, andpyg
, which requires pre-installation oftorch
and CUDA.workflow_dispatch
.main
branch, which presumably has "working" code.422
, i.e. invalid or endpoint spam.Details
pull_request
andworkflow_dispatch
.testpypi
GitHub Environment is typically unnecessary as it’s designed to run on each commit to the main branch and is often used to indicate a healthy release publishing pipeline. We simply want to check that we can either push to test PyPI, and if the version exists, that the duplicate version is detected properly on PyPI and publication is skipped.bionemo-core,bionemo-evo2,...
, and optionally publish the packages to PyPI when we are ready to cut a release tag for the sub-package.skip-existing
versions of packages, so we don't ever overwrite past versions of a package. To update the version, we now require developers to change theVERSION
file in the sub-package, which will no longer be linked to the BioNeMo FrameworkVERSION
that only represents "working combinations" of ALL sub-packages in our release containers on NGC. Dysfunctional versions of published packages should be deprecated by the package maintainer(s) on PyPI.bionemo-fw
,bionemo-testing
,bionemo-example_model
, andbionemo-llm
will follow their own versioning history.Cursor/Claude-3.5-Sonnet
, thejq
parsing,git diff
parsing, the strategy matrix and output passing, and the branch definitions like${{ github.event_name == 'pull_request' && 'testpypi' || 'pypi' }}
.Sub-Package Solo Build Changelog
☑️ = Skipped publication, i.e. PyPI publish isn't necessary or the package cannot be distributed as a PyPI package.
❌ = Neither singleton testing nor publication are supported or necessary by the workflow. Skipped gracefully to prevent blocking PR merge criteria and multi-package workflows.
bionemo-core
✅2.4.0
for minor fixes and to mirror our BioNeMo FW release version, as it contains important resources required by the other sub-packages.bionemo-moco
0.0.2
)bionemo-scdl
✅ @polinabinder10.0.7
bionemo-core>=2.2.1
, which was published ad hoc to fix the GitHub Workflow by @polinabinder1.bionemo-noodles
❌ @skothenhill-nvuv install maturin
forpytest
and publication to PyPI.0.0.1
bionemo-geometric
❌ @svecchambionemo-webdatamodule
1.0.0
bionemo-testing
☑️pyproject.toml
description.bionemo-llm
2.4.0
bionemo-size-aware-batching
1.0.0
bionemo-evo2
,bionemo-esm2
,bionemo-geneformer
2.4.0
bionemo-fw
2.4.0
bionemo-example_model
❌Type of changes
Usage
BioNeMo PyPI Sub-Package Onboarding
To onboard your sub-package to the
bionemo-subpackage-ci.yml
workflow:Account Settings > Publishing
, and either...Manage [Package Name] > Add a New Publisher
.Add a New Pending Publisher
.GitHub
tab of the publisher management page, input the following information:NVIDIA
bionemo-framework
bionemo-subpackage-ci.yml
pypi
for PyPItestpypi
for Test PyPIgit diff
changes to yourbionemo-framework/sub-packages
.bionemo-subpackage-ci.yml
workflow from GitHub Actions.subpackages
.publish
totrue
if you want to publish to PyPI. (Default:false
)BioNeMo PyPI Sub-Package Off-Boarding
In case the workflow is not compatible with your sub-package, such as your sub-package tests needing GPU's or more complicated installation strategies, you can completely deactivate this workflow for your sub-package by simply updating two
ENV
variables in the workflow YAML:bionemo-framework/.github/workflows/bionemo-subpackage-ci.yml
.Testing