-
Notifications
You must be signed in to change notification settings - Fork 68
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
Suggestions about release cycle #69
Comments
Yes, ideally, we want the pypi package version to the same as the WBT backend. I usually made a few patch releases (e.g., v2.3.1, v.2.3.2, v2.3.3) before make the minor release (e.g., v2.4.0). If we sync the pypi package version the WBT backend right away, then the pypi version will be newer than the WBT backend when we fix bugs and release a new version. And yes, it would be great to host versioned binaries on the Whitebox server so that users can roll back to an earlier version of WBT binary. It is up to @jblindsay's decison. We discussed this issue previously at giswqs/whitebox-bin#1 |
Thanks a lot for the rapid answer!
I get that. Would it be feasible to adopt a versioning schema along the lines of
Thanks for linking to that past discussion. I think it would definitely be useful to host these versioned binaries somewhere. I don't know what the current limitations are (legal, ownership, technical, other?), but it's a real bummer not to have access to it. We are working around this by compiling ourselves from the sources which are tagged with proper version numbers on GitHub. However, if that's something the Python bindings do not plan to do themselves, it would be a big downside for users in our opinion. Let's wait for @jblindsay's opinion on this matter. Again, we'd like to offer our help if you think it would be relevant. |
Good suggestion. I can generate new version following I do keep a copy of previous WBT releases on my own, but I did not include them python bindings. I would prefer the versioned binaries to be hosted centrally on whiteboxgeo.com or the WBT GitHub repo if it is something @jblindsay willing to do. |
That'd be perfect 👌.
Yes, @jblindsay's opinion will definitely be needed here. Any reason why you discard the possibility to compile the WBT back-end within the Python bindings, and ship the resulting binaries in the package that gets uploaded to PyPI? I think this is what would give the most control/safety over what's getting packaged in the bindings (although, arguably, this is not the easiest option to implement). |
The Python binding is noarch, meaning it is not os specific. User only will download the OS specific WBT binary during initialization rather than installation. It would be overwhelming to include all five binararies >100MB in the PyPI package. whitebox is being using by many other packages. We want the installation to be smooth and fast. I would prefer to pull the WBT binaries from a central location rather than including them in the PyPI package. |
Just noting that previous binaries are available on PyPi for Whitebox Workflows. |
This is a follow up of #67.
We think that the release cycle as currently implemented between the Python bindings and the back-end of WhiteboxTools is somewhat misleading to the user, and could lead to tricky situations.
Indeed, as a consuming developer, we expect the version of the Python bindings available on PyPI to be in sync with the WhiteboxTools back-end. When using v2.3.0 of the Python bindings, we should be using v2.3.0 of the WhiteboxTools back-end. This is a strong expectation made by any developer using virtually any third-party library. It notably allows rolling back to an earlier version when a newly released version breaks (which was the case between v2.3.0 and 2.4.0). However, we discovered, while dealing with #67, that this was actually not the case when using the Python bindings of Whitebox, because the Python bindings dynamically download the latest version of the WhiteboxTools back-end binaries from the Whitebox server. This means that it was basically impossible for us to rollback to v2.3.0, because v2.3.0 of the Python bindings was downloading v2.4.0 of the WhiteboxTools back-end anyway.
We think that more proper designs could be implemented easily. Here are a couple options that we can think of:
We think that options 1 and 2 would be best, 3 being a bit more hacky and error-prone, in case there's an issue with the Whitebox server.
Let us know if we can help in any way. We think that this would be a major improvement of this (already) great toolbox, and a step that would take it closer to being production-ready in a lot of cases.
The text was updated successfully, but these errors were encountered: