FS#61129 - [salt] provide salt package based on py3

Attached to Project: Community Packages
Opened by Chris Drexler (CKolumbus) - Wednesday, 19 December 2018, 08:59 GMT
Last edited by Antonio Rojas (arojas) - Monday, 20 June 2022, 06:43 GMT
Task Type Feature Request
Category Packages
Status Closed
Assigned To Johannes Löthberg (demize)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 11
Private No

Details

Maintainer edit: Please do not bother commenting on this unless it is related to Salt upstream either actively working on, or having fully implemented, Tornado >5 with Python 3.


Description:

salt package is built against python2. I do have minions (windows, c.f. chocolatey default package switch to to py3 as well https://chocolatey.org/packages/saltminion) that are py3 based and master & minion have to match.

Is it possible/reasonable to switch the salt package to be based on python3 or provide and additional package (salt-py3) that is?

I see more and more minion installation switch to py3, so a matching master on arch might become more important in the future IMHO.

Thanks for your support!
Chris
This task depends upon

Closed by  Antonio Rojas (arojas)
Monday, 20 June 2022, 06:43 GMT
Reason for closing:  Implemented
Comment by Chris Drexler (CKolumbus) - Tuesday, 08 January 2019, 19:42 GMT
Update: the different major python versions are only a problem for salt-ssh connections, e.g. `salt-ssh` to a raspberry pi with python3 from an ArchLinux host with salt-py2. salt-master(py2) to salt-minion(py3) are ok (e.g. `salt 'winhost' test.ping'`) . So the problem is not that urgent as I thought. Sorry for communicating the wrong assumptions in the initial request.
Comment by Akmod (akmod) - Monday, 25 March 2019, 19:54 GMT
In their 2019.2.0 release, SaltStack included a deprecation notice for Python2. In light of that, we should open up the conversation about moving this package to python3 again.

https://docs.saltstack.com/en/latest/topics/releases/2019.2.0.html

Python 2.7 Deprecation

In light of Python 2.7 reaching its End of Life (EOL) on Jan 1st 2020, Python 2 will be deprecated from SaltStack no earlier than the Sodium release, that is either the Sodium release or a later release. This decision is pending further community discussion.
Comment by Johannes Löthberg (demize) - Monday, 25 March 2019, 20:34 GMT
Salt doesn't support Python 3 + Tornado 5. Nothing will be done untill that changes.
Comment by Akmod (akmod) - Monday, 25 March 2019, 20:50 GMT
That makes sense. This is the issue# on github for python3 + Tornado 5 compatibility. It seems to be actively worked on.
https://github.com/saltstack/salt/issues/51883
Comment by Nigel Kukard (nkukard) - Monday, 11 November 2019, 07:16 GMT
It looks like Ubuntu is currently building SaltStack against Python3 (and looks like Tornado 4).

Is there some functionality we need that is being excluded by their build?

ref http://archive.ubuntu.com/ubuntu/pool/universe/s/salt/salt_2018.3.4+dfsg1-6ubuntu1.debian.tar.xz
Comment by Johannes Löthberg (demize) - Wednesday, 25 December 2019, 19:53 GMT
Probably not, but I'm not going to package Tornado 4 just for Salt.
Comment by Kirill Goncharov (xuhcc) - Wednesday, 22 January 2020, 16:06 GMT
salt-py3 package was added to AUR: https://aur.archlinux.org/packages/salt-py3/
Comment by loqs (loqs) - Wednesday, 29 January 2020, 03:21 GMT
salt is switching to vendoring tornado version 4 for the neon release [1]

[1] https://github.com/saltstack/salt/pull/55952
Comment by arx (arx) - Monday, 23 March 2020, 14:33 GMT
As of release 3000 (last month), tornado has been vendorized and shouldn't pose an issue with the version shipped with archlinux.

https://docs.saltstack.com/en/latest/topics/releases/3000.html#vendored-tornado-code-base
Comment by Nigel Kukard (nkukard) - Monday, 23 March 2020, 14:36 GMT
Can't wait, I'm more than welcome to test
Comment by loqs (loqs) - Monday, 23 March 2020, 17:01 GMT
https://github.com/saltstack/salt/issues/56007 is an issue for py3 with python-msgpack 1.0.0-1 in testing
Comment by Eli Schwartz (eschwartz) - Tuesday, 24 March 2020, 17:06 GMT
> As of release 3000 (last month), tornado has been vendorized and shouldn't pose an issue with the version shipped with archlinux.

Vendoring stuff is explicitly not a solution:

<demize> shibumi: Myeah, and salt 3k has vendored an old tornado version to "solve" it, so I've been putting off updating it because I don't have the time to work on devendor it. .__.
<demize> shibumi: Because, you know, it's easier to vendor a 2 year old tornado version and hoping that no one finds any
<demize> security vulnerabilities in it than getting one of your employees to work on updating salt to support the new tornado versions.

So no, this is not going to happen, don't bother waiting.
Comment by Eli Schwartz (eschwartz) - Tuesday, 24 March 2020, 17:08 GMT
Also https://docs.saltstack.com/en/latest/topics/releases/3000.html#python-3-8-not-supported

"Please note that running Salt with Python 3.8 is currently not supported. It is recommended to not use a version higher than 3.7."
Comment by tqre (tqre) - Monday, 22 June 2020, 10:55 GMT
According to AUR's salt-py3 discussion, Salt works now with python-msgpack >=1.0.0 - https://aur.archlinux.org/packages/salt-py3
I have used AUR's salt-py3 without any problems, didn't test it with latest msgpack though...

Is tornado vendoring the only issue hindering this upgrade?
https://docs.saltstack.com/en/latest/topics/releases/3001.html

Comment by Terry Cinello (cinterry) - Friday, 10 July 2020, 21:14 GMT
The bug tracking Tornado 5.0 support is marked as being finished and included in release 3001 (Released June 17th).
Presumably it should be good to go now?
https://github.com/saltstack/salt/issues/51883
Comment by loqs (loqs) - Friday, 10 July 2020, 21:39 GMT
3001 embeds tornado 4.5.3 [1] there is a pull request titled tornado 5 [2] although the embedded tornado version is not updated by the pull request.

[1] https://github.com/saltstack/salt/blob/v3001/salt/ext/tornado/__init__.py#L29
[2] https://github.com/saltstack/salt/pull/56169

Loading...