about summary refs log tree commit diff homepage
path: root/blog/2020/gsoc/checkin/1.md
blob: 8c3c680205afcd27a635c8af0a20b5a6908e7e58 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
+++
rss = "GSoC 2020: First Check-In"
date = Date(2020, 6, 1)
+++
@def tags = ["pip", "gsoc"]

# First Check-In

Hi everyone, I am McSinyx, a Vietnamese undergraduate student
who loves [free software].  This summer I am working with
the maintainers and the contributors of `pip` to make
the package manager {{pip 825 "download in parallel"}}.

## What did I do during the community bonding period?

Aside from bonding with `pip`'s maintainers and contributors as well as
with my mentors, I was also experimenting on the theoretical and technical
obstacles blocking this GSoC project.  Pradyun Gedam (a mentor of mine)
suggested making [a proof of concept] to determine if parallel downloading
can play nicely with ResolveLib_'s abstraction and we are reviewing it
together.  On the technical side, we `pip`'s committers are exploring
{{pip 8169 "available options for parallelization"}} and I made an attempt to
{{pip 8320 "make use of Python's standard worker pool in a portable way"}}.

## Did I get stuck anywhere?

Yes, of course!  Neither of the experiments above is finished as of
this moment.  Though, I am optimistic that the issues will not be
real blockers and we will figure that out in the next few days.

## What is coming up next?

As planned, this week I am going to refactor the package downloading code
in `pip`.  The main purpose is to decouple the networking code from
the package preparation operation and make sure that it is thread-safe.

In addition, I am also continuing mentioned experiments to have a better
confidence on the future of this GSoC project.

To other GSoC students, mentors and admins reading this, I am wishing
you all good health and successful projects this summer!

[free software]: https://www.gnu.org/philosophy/free-sw.html
[a proof of concept]: https://gist.github.com/McSinyx/513dbff71174fcc79f1cb600e09881af
[ResolveLib]: https://pypi.org/project/resolvelib