[Discussion] TFX Addons Release
hanneshapke opened this issue · 1 comments
hanneshapke commented
Thread to bundle the discussion around TFX Addons releases.
Based on the feedback so far, here are some ideas for TFX Addons:
- Create PyPI project.
tfx-addons
? - Clear release instructions in the repo similar to https://github.com/tensorflow/community/blob/master/sigs/addons/RELEASE.md
- Supported TFX versions: 3 most recent TFX releases. We could probably support more version automatically if there aren't any breaking changes
- Let's provide a compatibility matrix similar to https://github.com/tensorflow/addons#python-op-compatibility-matrix
- Supported TF versions: Driven by the TFX versions
- Github actions to build PyPI versions
- Nightly builds (with new commits to main) to
tfx-addons-nightly
driven by Github Actions? - Long-term maintenance of components, examples, etc.?
Feedback from @seanpmorgan (core member for https://github.com/tensorflow/addons)
Best Practices:
- Create a RELEASE.md in your SIG folder. This improves your bus factor and makes it transparent to all what exactly goes on during a release. Here's ours.
- Have more than one person authorized and experienced in doing the release process
- TF-Addons actually does a "nightly" release for each PR that merges. This makes it so we have a lot of trial release runs and we're aware if there's anything broken in the release process. Here you can see us gaiting the uploading of wheels in our CI: https://github.com/tensorflow/addons/blob/master/.github/workflows/release.yml#L109
- Utilize a stored secret in the repo for releases so there's no need to share credentials amongst team members
How do you manage the long-term maintenance?
- Wish I had a better story, but one tool we use is backport. It lets us utilize a bot to quickly create PRs to several release branches but simply tagging the PR with labels
Criteria for cutting new releases
- Since we support custom ops, we need to release with every TF version. The C++ API is not stable so it's only guaranteed to work with the version its compiled against. We try to keep our python compatibility for 3 TF versions.
- You can see our compatibility matrices here:
https://github.com/tensorflow/addons#python-op-compatibility-matrix
https://github.com/tensorflow/addons#c-custom-op-compatibility - How do you maintain version compatibility with the different TF versions or does TF Addons support only a subset of TF versions?
See above
seanpmorgan commented
Wanted to add another recommendation. We start testing against TF release candidates as soon as they're published so we can iron out any bugs with ~month of runway. TF2.8rc0 just release today:
tensorflow/addons#2635