-
-
Notifications
You must be signed in to change notification settings - Fork 58
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
Build ST2 on Ubuntu 16 with Python 3 #679
Conversation
bcc5a93
to
5074820
Compare
We have the Ubuntu Xenial .deb packages built now. |
The Ubuntu Xenial
Manual tests for the new py3 U16 packages are still TBD, including upgrade from the py2. FYI to avoid scripting and modifying other installers I'm also mirroring the PPA python3.6 packages to be installed from our PackageCloud repository. This will ensure smooth py2->py3 transition for the Ubuntu Xenial users before we deprecate U16 in several months in April 2021 and also provide a safety net if 3rd party PPA repository would be deleted at some point. In terms of timely security updates, https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa has the following disclaimer:
We'll need to provide similar disclaimer when announcing the 3.4.0 which will be another warning for users to migrate to newer OS platform like Ubuntu Bionic. In terms of upgrades, I'll need to periodically check if py3 PPA releases any new package fixes to sync with our PackageCloud. |
I thought we agreed to NOT provide our own python, and tell the user to source their own PPA. So that the upgrade/install steps would tell them to source their own PPA before they did install or upgrade. That way if they have their own PPA, they can use that / or choose must suitable for them. |
Right, I think the agreement was to include the 3rd party deadsnakes PPA in the installer scripts which is the only repository that had python 3.6 for Ubuntu Xenial, otherwise there is no way to install the st2. If users want to rely on 3rd party PPA - they still can add that with APT The main concern was if we build our own python 3.6 package and support it like https://github.com/deadsnakes/python3.6. We don't do this, but instead we mirror what deadsnakes 3rd party PPA repository has. cc @StackStorm/tsc and @StackStorm/contributors |
I'm 100% against this. It provides almost zero benefit for us, and creates a giant maintenance burden/headache for us until at least mid 2021. The only potential benefit would be that we can review patches to the upstream deadsnakes Python before we pull those changes into our fork. My C skills are incredibly rusty at this point, and I don't think any other ST2 contributors are intimately familiar with the CPython codebase, so none of us would really be able to provide a good code review with any reasonable degree of certainty. And there are absolutely huge potential pitfalls to blindly copying and patching code - look at the Debian OpenSSL fiasco, where the distro maintainers removed code that the didn't understand, didn't get anybody who knew the code to review their own changes, didn't push their changes back to upstream for review, and created a giant security issue for thousands of Debian users. So if we're not going to patch anything from deadsnakes, and we aren't going to be able to reasonably review any of their patches, then we're just going to be blindly copying their code and hoping for the best. At that point, we might as well just use their repository anyway. |
I thought to be honest we weren't going to pin any repository, but put the adding of a repo that contains python3.6 as a pre-requisite. As we didn't want to maintain our own repo. We said we could state what repo we had used for our verification (e.g. deadsnakes) but the onus was on the user to decide what repo to use. So packagingtest would add the repo. |
I have the same understanding as @amanda11. |
@blag we're not going to patch, support or build python3 packages ourselves. I'd never sign up for that. I'm saying I'm mirroring what Deadsnakes PPA repository already provides through our PackageCloud repository. The advantage of mirroring from our PackageCloud is very important:
^ That's the main point which will reduce the support burden and issues happening in community. |
@amanda11 @blag I'm re-reading StackStorm/community#53 (comment) and it indeed states the:
OK, looks like I'm wrong with the agreement to provide py3.6 via Deadnakes 3rd party PPA by default. I assume I've lost the track then in the discussion or indeed smoked something. Sorry for that. Now after digging into implementation details and speaking technically. The agreement is that we just provide a documentation that users have to find their own python 3.6 repo for Ubuntu 16.04.
And looks like I voted for that option. This doesn't fit the picture of "supporting U16". Sounds like I voted then for throwing a pig over a fence 🤦 |
Given the warning on the deadsnakes PPA then I would suggest that we want people to consider if PY3 on Ubuntu 16 is for them. If it is, then they can install the PPA and accept the warnings, or they upgrade to Ubuntu 18. Also on the upgrade path, then I'd state that the upgrade process is already documented as manual steps that can vary between releases - and therefore I don't see an issue with it being in step specific to that upgrade, just as we had for upgrading mongodb etc. |
No worries, nobody's perfect!
That's exactly what I did in StackStorm/st2cd#446, which is installed on st2cicd (I thought I mentioned this in Slack, but I can't find it right now). I don't think many people are running on Ubuntu 16.04 anymore, and if they are then this is an excellent reason to either not upgrade StackStorm, or to also upgrade their OS to Ubuntu 18.04. If they really want to stay on 16.04, then they can read and heed the upgrade instructions. Or we can drop Ubuntu 16.04 support entirely. |
OK, based on @StackStorm/tsc discussion, the solution is to pause the
That'll give us acceptable balance between security/usability and we could e2e and CI things as well. |
Merging to fix the CI ✔️ |
Relevant PRs: StackStorm/st2packaging-dockerfiles#94