-
-
Notifications
You must be signed in to change notification settings - Fork 1
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
Install Python 3.10 on all nodes #290
Comments
I will try to work on that during the weekend, it should mostly take time as it compiles python to get it to run faster. |
I was worse than I expected during the weekend, I got my second vaccination, and now that I finally I'm human again, I'm already starting the process: python 3.10 is already added on https://github.com/gforcada/ansible-compile-python and jenkins nodes are starting to compile python :) |
I'm rather surprised that it went so fast, but 3.10 is already on the nodes 🎉 I will create a jenkins job and set it to run 🤞🏾 |
😱 it fails not on any plone code but rather at trying to create a virtual environment for it to run on 😕 the blame should go on We might have to switch back to it, at least for 3.10 onwards 😕 |
I created an upstream ticket: https://issues.jenkins.io/browse/JENKINS-67305 |
Thanks for your effort so far, Gil! |
@gforcada When I searched on that last error line I found the following issue on pip's repo: pypa/pip#10253 Apparently that traceback was solved in pip 21.2.3. . Which version of pip is being used to create the virtualenv in the plugin is that configurable? Maybe we need to install that updated pip first in the global python 3.10, I'm not sure where |
@fredvd thanks for looking that up, I noticed though that this is coming from the bootstrap script from the shiningpanda plugin itself: https://github.com/jenkinsci/shiningpanda-plugin/blob/f4b5d326b6cec5ef09edc54e303b2b30aa79277b/src/main/resources/jenkins/plugins/shiningpanda/workspace/virtualenv.py#L1521 I see that it always downloads and install pip/setuptools/wheel with the following versions: |
Ouch, those are terribly old versions. I was looking at the python file to see any version numbers, but the 3 wheels are in the repo directory as raw archives with a 'zero' version. Off course in 2018 Python 2 was still much more in use. I'm amazed that previous Python versions worked at all... But then we don't really use pip extensively when building buildout 2. (allthough I found out this month resolving sub-dependencies of zope.packages does insert wheels in my local pip cache, even with zc.buildout 2... different story) I don't think shiningpandas is still very active as a company / saas service. Their last blog / updated item on the website is from 2018 :-O There are quite a bit of forks on the jenkins plugin repo, but these also seem to be 3> years old. So we might have to squeeze and bend the plugin ourselves to get it working with 3.10 |
If you look at the usage: https://plugins.jenkins.io/ui/search?query=python the python one, either is strong solid as it can get, because it did not had a release for the last 6 years, but at the same time it is used more than 3 times the shiningpanda one. So I guess we will have to turn all our shiningpanda wrapped scripts into plain scripts and manage the virtualenvs ourselves 🤷🏾 At least, if we only do it for the python3 jobs, it is not that cumbersome to do anyway, but still more code to write and maintain 😑 |
Latest run on Jenkins is green. Yeehah! Is there anything left to do here? Python 3.10 seems to be installed everywhere, at least on the active nodes. There is some followup that we could do, but that can be a new issue:
|
Sounds like a plan, I don't have much time, but I will want to get out of my tasks every now and then, so I will try my best to set up all this, not sure when though, I'm fine reviewing changes from others though 👍🏾 😃 |
@gforcada . @mauritsvanrees and me just tuned some settings on robotframework tests and percentage of failed tests to be counted as unstable and we added Python3.10 Plone 6 robotframework tests. We get the same error as we had in december though as reported in this issue with shiningpandas and the pip 21.x issue . But if I remember correctly you did change something later in the scripts to fix this, or? The Normal Python3.10 Plone 6.0 was running fine, until I updates the jobs from this repo. Was something changed maybe manually on jenkins in between? [edit] Oh, apparently now only the Python 3.10 jobs are not working correctly. I first thought the Python 3.9 jobs for Plone 6.0 were also broken after I pushed the jobs from this repo, but that is not the case. I'll split the Python 3.10 / Plone 6 jobs into a new job template and try to set that up using the normal Python jenkins plugins and script and not shiningpandas, as discussed above. |
Sorry to come back to this one this late 😅 I, manually, replaced the scripts on the 2 jenkins jobs for Plone 6.0 on python 3.10 and they are running as I type: https://jenkins.plone.org/job/plone-6.0-python-3.10-robot-chrome/315/ So far they are installing dependencies, which is much more than what it used to do until then 😃 |
Seems that the jobs are green now. Should we enable py3.10 for PRs also? or too early... |
Great to have 3.10 back. Thanks! Is this safe? Meaning, if you or Fred automatically updates the server with new versions of the scripts, are your changes then kept? I have a PR which passed on 3.7, 3.8. 3.9. I have manually started 3.10 for it, but that fails within a few seconds:
|
@mauritsvanrees that's the PR job, I did not fix that one, I guess I should 😄 as for the configuration changes, no, it is not on the jenkins.plone.org repo, they will be lost. We could simplify all python 3 scripts by avoiding using the shining panda plugin. It was nice as long as it worked, but provides not so much extra benefits, basically it automatically creates a venv and gives you a script were it is already enabled. In python 3 that's only 2 lines 😄 |
@mauritsvanrees the PR job is running: https://jenkins.plone.org/job/pull-request-6.0-3.10/4/console btw. I did some cleanups on the extra CSS we were adding on top of jenkins own CSS, it should be all fine already :) |
Thanks! |
For now, if we don't want to add 3.11 on the mix, I guess not, I would leave it until we release 6.0 and a month or so, for last minute fixes. Then we can do the changes, or would it be ok to do the changes nowish? I will be on vacations the next 2 weeks, so I probably have some time (maybe 😓 ) |
For me it would be good to do changes now. Otherwise I fear your changes for 3.10 will get lost again. |
I will try to do it on the next days/weeks then, though it will be quite a bit of a refactoring 👍🏾 |
I pushed a new release of https://github.com/gforcada/ansible-compile-python which adds newer versions of 3.7 to 3.10 and I also added 3.11.0rc1, I created, manually, a jenkins job for it which is expected to fail, as it did 😅 We need some zope releases out first. I guess until a 3.11 final release is out they will not make them, so I'm not sure how useful is it to keep this job, as tracking master branches for an unreleased version might provide more work than benefit 🤷🏾 |
Zope is being updated to 3.11, with new version pins. I asked about the status today. One idea that I express there, is that we could add |
Meanwhile 3.10 and 3.11alpha are already installed. I'm closing this one 😄 |
Thanks for your work! |
Is something missing to enable testing in Python 3.10 in PRs? Any predictions for that? |
@wesleybl for Plone 6.0 there is already a job for that what else are you missing? 🤔 |
@gforcada when we open a PR, only Jenkins test from Python 3.7 to 3.9 appears in |
See also plone/plone.restapi#1485. |
I see for example this error:
@gforcade Could that be this line, that I see the normal 5.2-3.6 job failing too, which seems a very different error though:
|
😱 oh my, it was working a few days ago after I did the changes... 🤔 |
@fredvd oh, I see, on PR tests indeed there are too much brackets 😕 |
@mauritsvanrees that was meant for you 😅 PR jobs seem to be fixed, but I noticed that python 3.6 can not create virtual environments on its own, the |
Seems that it happens only on 3.6... |
Ah, maybe with the newer Ubuntu version the 3.6 can no longer find the venv module? Maybe a package with a venv specifically for 3.6 is available? Just guessing. |
We are compiling the python versions, for speed reasons, but somehow it crashes (a missing dependency I guess) |
indeed, also on robot tests, the 3.6 can not start... I will look at it later if that's fine |
PR jobs still fail, for example 6.0-310:
|
Oh, I see 😕 sorry for the breakage 😖 |
I fixed the PR jobs 🎉 |
robot tests jobs and python3.6 seem to be failing still 🤔 |
It seems that on
See: https://jenkins.plone.org/job/pull-request-6.0-3.8/1884/consoleFull
Already See: https://jenkins.plone.org/job/pull-request-6.0-3.10/24/console Could it be Chrome version related glitches? |
@wesleybl all noes are on ubuntu 22.04 already, I upgraded them last week of August, but there is indeed some glitches with running robot tests :-/ |
A job run on 2022-09-09 on node4, showed that it was ubuntu 18.04:
See: https://jenkins.plone.org/job/pull-request-6.0-3.8/1884/consoleFull But latest node 4 jobs already show Ubuntu 22: https://jenkins.plone.org/job/pull-request-6.0-3.8/1894/consoleFull However, the error:
still continues on node 4. ChromeDriver version needs to be updated. I also see the error:
in all jobs. Looks like I'm missing some package in Python. Jenkins is not notifying github about hits or misses. |
this thanks for having a look and reporting back! ✨ the as for the chromedriver I did download and install the very same, of course something is still off 😖 |
Is the chrome version the same on all nodes? One thing that would be nice is the job to print the version of chrome and chromedriver:
|
@gforcada How did you install chromedriver? Maybe there is another copy of it on node4 that's being used instead? I am willing to investigate it, but I don't know how to access the node. |
indeed the driver and google-chrome versions differ, on node1 for almost nothing, the other two (node3 and node4) are a bit more behind, but that's because I was testing only first on node1. @davisagli I installed your public key (as found in github) on node1 server. I'm sending an email with the details, thanks a lot, another pair of hands will be more than welcome 😄 I've been really busy these last weeks, and doing it at midnight does not help focusing 😓 |
I did have some time and, hopefully on node1 all robot jobs should work ™️ 🤞🏾 |
I think we need #307 first |
307 was merged and released. It now mostly works for a 6.0 PR. Thanks! |
I fixed the status update for the Python 3.10 build by updating pygithub to a newer version. |
Seems good, thank you both! Two open points that we can track outside this bug:
|
Zope is almost compatible with Python 3.10. See comment, although I don't know if all individual packages are tested yet. But this means we could start testing how well Plone does on 3.10.
There are at least two things that I can think of that first need to happen:
Anything else?
I have no idea how much work it is to fix Plone for 3.10. I have not tried anything yet.
If it is easy, it would be interesting to officially support 3.10 when 6.0 final comes out. But currently it would be fine to support 3.9 as highest Python. So no pressure.
The text was updated successfully, but these errors were encountered: