-
Notifications
You must be signed in to change notification settings - Fork 209
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
[Feature] Provide Nightly Build to PyPi #872
Comments
I've recently received feedback from users that it would be beneficial to have more releases. A faster release cadence might be more desirable than having a nightly build. Both will require some kind of automation for the release process. |
Based on this tutorial, I was able to publish new versions of the library to PyPi via Github Action. Here are the relevant steps: I created an account on Pypi and was able to publish my forked repo of Pyiceberg using the To do so, I created I had to change the package name to I set up "Trusted Publisher Management" via the Pypi website for my forked repo. On the forked repo, I created a new release and tag, named "v0.6.1". This kicks off the Github Action to publish to Pypi Resulting in this new package https://pypi.org/project/pyiceberg-kevinliu/ |
I hope we can use some parts of the above to make future releases faster and more automated |
Very exciting to hear that you were already able to get a package published through Github Actions! For now, I'm leaning towards this approach of having a separate namespace for for nightly builds like One downside of that approach is that this will create a name collision issues if users accidentally install both But I think there's still a lot to gain by separating out the package namespace of an intentional publication (release candidates, and successful releases) versus an automated nightly publication from main, just in terms of how easy it would be for us to manage our packages. I'm not quite sure what the best way to do this would be, but I would imagine we would want to support the concept of having a retention policy on the nightly package as well, so we clean up packages that were published a year ago, as an example. Here's a link to some relevant discussion on this topic on a PyPi warehouse discussion thread |
@kevinjqliu Thanks for doing the experiments!
+1, the ASF released policy also suggests that we should "hide" the nightly build from non-developer as much as possible. We could also consider other ways of separation: For example: |
FWIW, Iceberg Java also publishes nightly snapshots: https://repository.apache.org/content/groups/snapshots/org/apache/iceberg/iceberg-core/ But it is hidden quite well for a reason :D I'm open to it. I'm not sure if a separate package is the best, as you can also set tags on the releases itself: https://pypi.org/project/pyiceberg/#history You can see the pre-releases there. Another nice thing is that we would test our release pipelines on a daily basis 💪 |
Seems like we have a way forward for nightly build. We can run the Pypi upload on a GitHub action nightly cron. I want to take a step back and talk about the general release process. I want to figure out how to shorten the burden of the release process so that we can release at a faster cadence.
Are these steps all necessary to release a new version? |
any news on this, currently pyiceberg is broken with polaris and will like to use the latest update that fix it |
@djouallah I'll take another look at the nightly build. But we're in the process of releasing 0.8.0; its in the voting stage https://lists.apache.org/thread/0xcw56z1bpldypm7pv92h70fhhq0qgfq |
FYI https://lists.apache.org/thread/oowhcfwv3fcjzdzm76tbn99k5q84mr75 |
Feature Request / Improvement
Starting an issue to gather feedback on providing nightly builds for
pyiceberg
. Resolves #734.Thanks @syun64 for the pointers and feedback.
PyIceberg Release Process
The current release process as documented in How to release.
To publish a release candidate (RC) to the public,
apache
branchPython Release
Github actionrelease-main
artifact, available for downloadPython release
Github actionProposed Nightly Build Process
Goals
pip install pyiceberg --pre
, preferred.pyiceberg-nightly
Reference
The text was updated successfully, but these errors were encountered: