diff options
author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2021-09-21 17:02:17 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2021-09-21 17:02:17 +0700 |
commit | 2c085d53133fd267a809d0a4e2cbf9421ea2a2a8 (patch) | |
tree | a0ede5321105f8a92449d17bf0fcd999dac0a382 /blog/2020/gsoc/checkin | |
parent | 7d8ce2a7f598312e3501b53d34ff8146b4dba0a6 (diff) | |
download | site-2c085d53133fd267a809d0a4e2cbf9421ea2a2a8.tar.gz |
Reorganize GSoC 2020
Diffstat (limited to 'blog/2020/gsoc/checkin')
-rw-r--r-- | blog/2020/gsoc/checkin/1.md | 45 | ||||
-rw-r--r-- | blog/2020/gsoc/checkin/2.md | 45 | ||||
-rw-r--r-- | blog/2020/gsoc/checkin/3.md | 44 | ||||
-rw-r--r-- | blog/2020/gsoc/checkin/4.md | 35 | ||||
-rw-r--r-- | blog/2020/gsoc/checkin/5.md | 37 | ||||
-rw-r--r-- | blog/2020/gsoc/checkin/6.md | 33 | ||||
-rw-r--r-- | blog/2020/gsoc/checkin/7.md | 26 | ||||
-rw-r--r-- | blog/2020/gsoc/checkin/index.md | 11 |
8 files changed, 276 insertions, 0 deletions
diff --git a/blog/2020/gsoc/checkin/1.md b/blog/2020/gsoc/checkin/1.md new file mode 100644 index 0000000..a362f28 --- /dev/null +++ b/blog/2020/gsoc/checkin/1.md @@ -0,0 +1,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 diff --git a/blog/2020/gsoc/checkin/2.md b/blog/2020/gsoc/checkin/2.md new file mode 100644 index 0000000..e59cac2 --- /dev/null +++ b/blog/2020/gsoc/checkin/2.md @@ -0,0 +1,45 @@ ++++ +rss = "GSoC 2020: Second Check-In" +date = Date(2020, 6, 15) ++++ +@def tags = ["pip", "gsoc"] + +# Second Check-In + +Hi everyone and may the odds ever in your favor, especially during this +tough time! + +## What did I do last week? + +Not as much I wished, apparently (-: + +* Finalizing {{pip 8411 "the refactoring patch"}} + of `operations.prepare.prepare_linked_requirement` +* {{pip 8423 "Nitpicking some logging calls"}}. This (as well as the next one) + was to fill up the time my brain not being as productive as I want it to XD +* {{pip 8423 "Beginning to migrate"}} from `%`- to `{}`-style logging. + The amount of tests failing due to this was way beyond my imagination, + but I got functional tests for `pip install` and unit tests passing now! +* {{pip 8442 "Mocking up a working partial wheel download during + dependency resolution"}} for [the new resolver][]. + +## Did I get stuck anywhere? + +Yes, of course! {{pip 8320 "Parallel maps"}} are still stalling +as well as other small PRs listed above. The failure related to +`logging` are still making me pulling my hair out and the proof of +concept for partial wheel downloading is too ugly even for a PoC. +I imagine that I will have a lot of clean up to do this week (yay!). + +## What is coming up next? + +I'm trying get the multi-{threading,processing} facilities merged ASAP +to start rolling it out in practice. The first thing popping out of my +head is to get back {{pip 7962 "the multi-threaded"}} `pip list -o`. + +The other experimental improvement (this phrase does not sound right!) +I would like to get done is the partial wheel download. It would be +really nice if I can get both included as `unstable-feature`'s +in {{pip 7628#issuecomment-636319539 "the upcoming beta release of pip 20.2"}}. + +[the new resolver]: http://www.ei8fdb.org/thoughts/2020/05/test-pips-alpha-resolver-and-help-us-document-dependency-conflicts/ diff --git a/blog/2020/gsoc/checkin/3.md b/blog/2020/gsoc/checkin/3.md new file mode 100644 index 0000000..32a94ab --- /dev/null +++ b/blog/2020/gsoc/checkin/3.md @@ -0,0 +1,44 @@ ++++ +rss = "GSoC 2020: Third Check-In" +date = Date(2020, 6, 29) ++++ +@def tags = ["pip", "gsoc"] + +# Third Check-In + +Holla, holla, holla! Last seven days has not been a really productive week +for me, though I think there are still some nice things to share with +you all here! The good news is that I've finish my last leçon as a somophore, +the bad news is that I have a bunch of upcoming tests, mainly in the form +of group projects and/or presentation (phew!). Enough about me, +let's get back to `pip`: + +## What did I do last week? + +Not much, actually )-: + +* Write some tests for {{pip 8467 "the HTTP range mapping for wheel"}}. +* {{pip 8504 "Try to bring back"}} multithreaded `pip list --outdated` + and `--uptodate`, as {{pip 8320 "the parallel <code>map</code>"}} was merged + earlier today. +* Nitpick {{pip 8332}} + (yep it's a new low for me to include this to the list (-:). + +## Did I get stuck anywhere? + +Not exactly, since I didn't do much d-; [Many of my PRs][] are stalling though. +On one hand the maintainers of `pip` are all volunteers working in +their free time, on the other hand I don't think I have tried hard enough +to get their attention on my PRs. + +## What is coming up next? + +I'll try my best getting the following merged upstream before +{{pip 8206 "the upcoming beta release"}}: + +* Parallel networking for `pip list`: {{pip 8504}} +* Lazy wheel for dependency information: {{pip 8467}}, {{pip 8411}} + (to determine if hashing is required) and {{pip 8467#issuecomment-648717032 + "a new patch introducing this as an unstable feature"}} + +[Many of my PRs]: https://github.com/pulls?q=is:open+is:pr+author:McSinyx+repo:pypa/pip+sort:updated-desc diff --git a/blog/2020/gsoc/checkin/4.md b/blog/2020/gsoc/checkin/4.md new file mode 100644 index 0000000..417db58 --- /dev/null +++ b/blog/2020/gsoc/checkin/4.md @@ -0,0 +1,35 @@ ++++ +rss = "GSoC 2020: Fourth Check-In" +date = Date(2020, 7, 13) ++++ +@def tags = ["pip", "gsoc"] + +# Fourth Check-In + +Hello there! I'm having my second year's last exam tomorrow, +but it [feels like summer][] already! I've been finalizing quite a few things +to get them ready for pip 20.2b2. + +## What did I do last week? + +I've spent most of the time on getting {{pip 8532 "the opt-in"}} for obtaining +dependency information via lazy wheels ready. It will be available as +`--use-feature=fast-deps` and only has effect when +`--use-feature=2020-resolver` also presents. + +While waiting for reviews and suggestions, I made some patches for +internal cleansing, namely {{pip 8568}}, {{pip 8571}} and {{pip 8578}}. +Some of the similar patches I made earlier were also merged last week: +{{pip 8456}} and {{pip 8538}}. + +## Did I get stuck anywhere? + +Not really, everything was going as expected for me. + +## What is coming up next? + +After {{pip 8532}}, I'll work on the parallel download of the postponed wheels. +My main current concern is with how the download progress will be reported +to the users, but I think I'll figure it out soon. + +[feels like summer]: https://www.youtube.com/watch?v=F1B9Fk_SgI0 diff --git a/blog/2020/gsoc/checkin/5.md b/blog/2020/gsoc/checkin/5.md new file mode 100644 index 0000000..5e50f67 --- /dev/null +++ b/blog/2020/gsoc/checkin/5.md @@ -0,0 +1,37 @@ ++++ +rss = "GSoC 2020: Fifth Check-In" +date = Date(2020, 7, 27) ++++ +@def tags = ["pip", "gsoc"] + +# Fifth Check-In + +Hello and I hope y'all are still doing well! + +## What did I do last week? + +I was not really productive last week—most of the following tickets are fillers +to make use of the spare cycles I had when I was still trying to figure out +the way to implement the main work. + +* Finalize the `--use-feature=fast-deps` flag ({{pip 8588}}) +* Improve mocking of environment variables in the test suit ({{pip 8614}}) +* Finalize the fix for verbose/quiet options specified via + configuration files and environment variables ({{pip 8578}}) +* Clean up a tiny bit in the resolver internal API ({{pip 8629}}) +* Start working on seperating the download of wheels + from dependency resolution ({{pip 8638}}) + +## Did I get stuck anywhere? + +I'm struggling on refactoring the code to support separate download. +`pip`'s codebase was not intended for this and thus there are +many execution paths and other details entangled around the relevant area. + +## What is coming up next? + +`pip` 20.2 is going to be released within the next few days with +`--use-feature=fast-deps` included and I'm mentally prepare to fix +any undiscovered problem. At the same time, I will continue working +on {{pip 8638}} and hopefully get it done soon enough to begin drafting +download parallelization strategies, mostly with the UI. diff --git a/blog/2020/gsoc/checkin/6.md b/blog/2020/gsoc/checkin/6.md new file mode 100644 index 0000000..aea9d5a --- /dev/null +++ b/blog/2020/gsoc/checkin/6.md @@ -0,0 +1,33 @@ ++++ +rss = "GSoC 2020: Sixth Check-In" +date = Date(2020, 8, 10) ++++ +@def tags = ["pip", "gsoc"] + +# Sixth Check-In + +Hello there! + +## What did I do last week? + +It has been a quite fun week for me, given the current state of +development and the newly dicovered bugs thanks to pip 20.2 release: + +* Initiate discussion with the maintainers of pip on isolating + networking code for late download in parallel ({{pip 8697}}) +* Discuss the UI of parallel download ({{pip 8698}}) +* Log debug information relating lazy wheel decision ({{pip 8710}}) +* Disable caching for range requests ({{pip 8716}}) +* Dedent late download logs ({{pip 8722}}) +* Add a hook for batch downloading (third attempt I think) ({{pip 8737}}) +* Test hash checking for fast-deps ({{pip 8743}}) + +## Did I get stuck anywhere? + +Not exactly, everything is going smoothly and I'm feeling awesome! + +## What is coming up next? + +I'll try to solve {{pip 8697}} and {{pip 8698}} within the next few days. +I am optimistic that the parallel download prototype will be done +within this week. diff --git a/blog/2020/gsoc/checkin/7.md b/blog/2020/gsoc/checkin/7.md new file mode 100644 index 0000000..b87a7fd --- /dev/null +++ b/blog/2020/gsoc/checkin/7.md @@ -0,0 +1,26 @@ ++++ +rss = "GSoC 2020: Final Check-In" +date = Date(2020, 8, 24) ++++ +@def tags = ["pip", "gsoc"] + +# Final Check-In + +Hello there! + +## What did I do last week? + +Not much, but seemingly implementation-wise I have finished my GSoC project: + +* Finish the implementation of wheels' parallel download ({{pip 8771}}) +* Help make `pip`'s CI green again ({{pip 8790}}) +* Reformat a few spots in user guide ({{pip 8795}}) + +## Did I get stuck anywhere? + +I got sick, but I am recovering now! + +## What is coming up next? + +I will try to spend the time I got left within the scope of GSoC +to {{pip 8720 "improve cache usage of the fast-deps feature"}}. diff --git a/blog/2020/gsoc/checkin/index.md b/blog/2020/gsoc/checkin/index.md new file mode 100644 index 0000000..a95e2ff --- /dev/null +++ b/blog/2020/gsoc/checkin/index.md @@ -0,0 +1,11 @@ +# GSoC 2020 Check Ins + +Weekly check ins answer a few short questions as a sort of status report: + +* {{abslink blog/2020/gsoc/checkin/1}} +* {{abslink blog/2020/gsoc/checkin/2}} +* {{abslink blog/2020/gsoc/checkin/3}} +* {{abslink blog/2020/gsoc/checkin/4}} +* {{abslink blog/2020/gsoc/checkin/5}} +* {{abslink blog/2020/gsoc/checkin/6}} +* {{abslink blog/2020/gsoc/checkin/7}} |