11:30:23 #startmeeting Python Packaging in Fedora 11:30:23 Meeting started Tue Aug 2 11:30:23 2016 UTC. The chair is cstratak. Information about MeetBot at http://wiki.debian.org/MeetBot. 11:30:23 Useful Commands: #action #agreed #halp #info #idea #link #topic. 11:30:23 The meeting name has been set to 'python_packaging_in_fedora' 11:30:53 nardasev: Error: Can't start another meeting, one is in progress. 11:30:55 #meetingname flock2016 11:30:55 The meeting name has been set to 'flock2016' 11:31:05 Python packaging in Fedora. 11:31:15 I'll try to explain the logo later. 11:31:20 but first about Python 3. 11:31:29 python is a pretty old language - older than Java. 11:31:43 Python started in 1991, Java in 1995 11:32:00 Python 3.0 was released in 2008, which is earlier than node.js 11:32:07 Python 3.5 was released iin 2015 11:32:25 now we are adding features to make it more compatible with Python 2 line 11:32:50 In 2020, Python 2 will be officially unsupported upstream 11:33:19 by 2020, we should have everything ported in Python 3 11:33:55 to track the effort in Fedora, we created the website http://fedora.portingdb.xyz 11:34:28 green meas good, the other we are not there yet 11:34:43 slide: a graph from the dashboard 11:35:02 the green parts are getting bigger - packages that have been ported to Python 3 11:35:21 grey part - packages that will not be ported, but have some other/better alternative in Fedora 11:35:37 yellow - stuff people are working on - at least they say so :) 11:35:55 the blue part - most important - packages that have been ported in upstream, but not in Fedora yet 11:36:15 the red parts - not ported in upstream yet and are blocked by some dependency 11:36:28 there are still a lot of things in Python 2 only in upstream 11:36:38 but in upstream we are almost half way there 11:36:59 however, we are missing 130 packages to put them in Fedora. Nobody else but Fedora packagers can do that 11:37:07 we'd like everybody to help us port 11:37:22 if you help, you'll get a badge! :) 11:37:31 it is quite fun! 11:37:44 it become easy after you port a few packages 11:38:07 I'll come back to the things that are not ported in upstream 11:38:20 lots of work has recently been done on Fedora infrastructure 11:38:28 but only Fedora people can do that 11:38:35 another area is Desktop toolkits. 11:39:05 GTK doesn't want to port, so we need to do it 11:39:24 wx widgets are also a bit slow 11:39:40 sugar desktop only is talking about porting but they lack man power 11:39:47 so you can get involved 11:40:29 Gimp, inkscape, and Samba don't really care about porting 11:41:50 if you're a packager, you know what a package should do 11:43:22 you should read the guidelines 11:43:51 when you copy stuff, you also copy what people added from older Fedora systems and was useful 5 years ago 11:44:17 what can you do, can you just delete it? 11:44:37 if you are an experienced packager, you know who to ask, but if not, it is pretty hard 11:45:35 now python is trying to have some structured metadata 11:46:01 we have structured metadata for each package and we have a place for storing them - PyPi 11:46:24 if you run a package in PyPi, it gives you the metadata 11:46:40 #dnf install /usr/bin/pyp2rpm 11:46:53 $pyp2rpm mypkg 11:47:22 it might actually work! 11:48:05 in Copr, we're trying to rebuild the whole PyPi 11:48:15 and we use the pyp2rpm 11:48:48 all PyPi are being rebuilt in Copr 11:49:04 it will probably never be 100% 11:49:28 it's a good test for pyp2rpm 11:49:40 we should also test pyp2rpm upstream 11:50:11 combining this with Koschei should be a good service not just for Fedora but for the whole community 11:50:25 it can also provide a repository for users 11:50:44 dnf pip install -r requirements.txt 11:51:00 (hypothetical command) 11:51:37 PyPi name - Fedora pkg: pyopencl - python3-pyopencl 11:51:51 mypy-lang - python3-mypy 11:52:12 $dnf --provides python3-pyopencl 11:52:45 Packaging Python itself: System Python, which lives in libexec 11:53:07 Python stdlib by disk size pie chart on the slide 11:53:25 more than 50% is test, second largest is individual modules 11:53:41 use /usr/libexec/system-python 11:54:00 possible users are DNF and cloud-init people 11:54:15 Future: it might be used to isolate system tools 11:54:34 example, if you update a system library using pip (which you shouldn't) 11:54:44 so it doesn't break 11:55:44 are we going to have libraries built for Python3? No. it is a subset 11:55:56 you don't need anything else to use Python3 11:56:14 Fedora splits the test, graphical modules... 11:57:33 if Debian and Fedora do it, it's pretty much supported 11:57:47 do the distros do it in different ways? Pretty much 11:57:59 sorry, they do it in similar ways 11:58:31 my plan is make a plan to support this in upstream 11:58:36 the current way is pretty bad 11:59:24 Python 3.6 is the upcoming version of Python 11:59:35 features are not set yet 12:00:02 Format strings, Large speedups, Advanced class creation tools 12:00:25 ^are planned 12:00:55 you might be familiar with bite code - that is gone and replaced by word code 12:01:04 speedups are planned for dictionaries 12:01:18 expect tens of percent speedups 12:01:52 how does Python 3.6 align to Fedora? 12:03:04 we'll try to get Python 3.6 into Rawhide as soon as possible 12:03:25 Fedora 25 was branched a few days ago 12:04:14 Python 3.6 Final - 2016-12-05 12:04:36 Fedora 26 Branches 2016-12-??? 12:04:45 Who's "We?" 12:05:04 We is in most cases the Python maintenance team at Red Hat 12:05:23 I joined it, I was supposed to work upstream on Samba and not touch Fedora too much 12:05:43 people left and came and suddenly I was the most experienced person in the team 12:06:01 our biggest mistake was not communicating our plans to the community 12:06:21 sorry, we'll do better! 12:06:59 python-devel@lists.fedoraproject.org 12:07:09 #fedora-python on Freenode 12:07:21 fedora-python on Github 12:07:59 Questions 12:08:29 Copr needs for most packages and pyp2rpm needs to work reliable 12:08:51 we need to fiure out a way for the upstream to say, this are our tests and we run them like this 12:09:21 if you run a pyp2rpm it is run as a test 12:09:31 they also don't package the tests 12:10:17 Perl has the good fortune of being around when the people still care about it 12:10:37 it's also a problem of dependencies 12:10:46 you can specify test requirements 12:11:31 pip and system packages are not consistent 12:12:19 if you install the rpm, dnf install package name and not specify rpm dependencies 12:12:30 you should use $dnf repoquery 12:12:46 you shouldn't use sudo pip 12:12:57 or you could use a virtual space environment 12:13:26 install new versions just to the virtual environment 12:19:19 thanks! 12:19:26 #endmeeting 12:20:45 #endmeeting 12:21:23 #endmeeting