about summary refs log tree commit diff homepage
path: root/blog/2020/gsoc/article/5.md
diff options
context:
space:
mode:
authorNguyễn Gia Phong <mcsinyx@disroot.org>2021-09-21 17:02:17 +0700
committerNguyễn Gia Phong <mcsinyx@disroot.org>2021-09-21 17:02:17 +0700
commit2c085d53133fd267a809d0a4e2cbf9421ea2a2a8 (patch)
treea0ede5321105f8a92449d17bf0fcd999dac0a382 /blog/2020/gsoc/article/5.md
parent7d8ce2a7f598312e3501b53d34ff8146b4dba0a6 (diff)
downloadsite-2c085d53133fd267a809d0a4e2cbf9421ea2a2a8.tar.gz
Reorganize GSoC 2020
Diffstat (limited to 'blog/2020/gsoc/article/5.md')
-rw-r--r--blog/2020/gsoc/article/5.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/blog/2020/gsoc/article/5.md b/blog/2020/gsoc/article/5.md
new file mode 100644
index 0000000..de2ef8d
--- /dev/null
+++ b/blog/2020/gsoc/article/5.md
@@ -0,0 +1,46 @@
++++
+rss = "GSoC 2020: Sorting Things Out"
+date = Date(2020, 8, 3)
++++
+@def tags = ["pip", "gsoc"]
+
+# Sorting Things Out
+
+Hi!  I really hope that everyone reading this is still doing okay,
+and if that isn't the case, I wish you a good day!
+
+## `pip` 20.2 Released!
+
+Last Wednesday, `pip` 20.2 was released, delivering the `2020-resolver`
+as well as many other improvements!  I was lucky to be able
+to get the `fast-deps` feature to be included as part of the release.
+A brief description of this *experimental* feature as well as testing
+instruction can be found on [Python Discuss][].
+
+The public exposure of the feature also remind me of some further
+{{pip 8681 optimization}} to make on {{pip 8670 "the lazy wheel"}}.
+Hopefully without download parallelization it would not be too slow
+to put off testing by concerned users of `pip`.
+
+## Preparation for Download Parallelization
+
+As of this moment, we already have:
+
+* {{pip 8162#issuecomment-667504162 "Multithreading pool fallback working"}}
+* An opt-in to use lazy wheel to optain dependency information,
+  and thus getting a list of wheels at the end of resolution
+  ready to be downloaded together
+
+What's left is *only* to interject a parallel download somewhere after
+the dependency resolution step.  Still, this struggles me way more than
+I've ever imagined.  I got so stuck that I had to give myself a day off
+in the middle of the week (and study some Rust), then I came up with
+{{pip 8638 "something what was agreed upon as difficult to maintain"}}.
+
+Indeed, a large part of this is my fault, for not communicating the design
+thoroughly with `pip`'s maintainers and not carefully noting stuff down
+during (verbal) discussions with my mentor.  Thankfully {{pip 8685
+"Chris Hunt came to the rescue"}} and did a refactoring that will
+make my future work much easier and cleaner.
+
+[Python Discuss]: https://discuss.python.org/t/announcement-pip-20-2-release/4863/2