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