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