mcsinyx.github.io/source/gsoc2020/blog20200706.rst

76 lines
3.1 KiB
ReStructuredText

I'm Not Drowning On My Own
==========================
Cold Water
----------
Hello there! My schoolyear is coming to an end, with some final assignments
and group projects left to be done. I for sure underestimated the workload
of these and in the last (and probably next) few days I'm drowning in work
trying to meet my deadlines.
One project that might be remotely relevant is cheese-shop_, which tries to
manage the metadata of packages from the real `Cheese Shop`_. Other than that,
schoolwork is draining a lot of my time and I can't remember the last time
I came up with something new for my GSoC project )-;
Warm Water
----------
On the bright side, I received a lot of help and encouragement
from contributors and stakeholders of ``pip``. In the last week alone,
I had five pull requests merged:
* :pip:`8332`: Add license requirement to ``_vendor/README.rst``
* :pip:`8320`: Add utilities for parallelization
* :pip:`8504`: Parallelize ``pip list --outdated`` and ``--uptodate``
* :pip:`8411`: Refactor ``operations.prepare.prepare_linked_requirement``
* :pip:`8467`: Add utitlity to lazily acquire wheel metadata over HTTP
In addition to helping me getting my PRs merged, my mentor Pradyun Gedam
also gave me my first official feedback, including what I'm doing right
(and wrong too!) and what I should keep doing to increase the chance of
the project being successful.
:pip:`7819`'s roadmap (Danny McClanahan's discoveries and works on lazy wheels)
is being closely tracked by ``hatch``'s maintainter Ofek Lev, which really
makes me proud and warms my heart, that what I'm helping build is actually
needed by the community!
Learning How To Swim
--------------------
With :pip:`8467` and :pip:`8530` merged, I'm now working on :pip:`8532`
which aims to roll out the lazy wheel as the way to obtain
dependency information via the CLI flag ``--use-feature=lazy-wheel``.
:pip:`8532` was failing initially, despite being relatively trivial and that
the commit it used to base on was passing. Surprisingly, after rebasing it
on top of :pip:`8530`, it suddenly became green mysteriously. After the first
(early) review, I was able to iterate on my earlier code, which used
the ambiguous exception ``RuntimeError``.
The rest to be done is *just* adding some functional tests (I'm pretty sure
this will be either overwhelming or underwhelming) to make sure that
the command-line flag is working correctly. Hopefully this can make it into
the beta of the upcoming release :pip:`this month <8511>`.
.. image:: lazy-wheel.jpg
In other news, I've also submitted :pip:`a patch improving the tests for
the parallelization utilities <8538>`, which was really messy as I wrote them.
Better late than never!
Metaphors aside, I actually can't swim d-:
Dive Plan
---------
After :pip:`8532`, I think I'll try to parallelize downloads of wheels
that are lazily fetched only for metadata. By the current implementation
of the new resolver, for ``pip install``, this can be injected directly
between the resolution and build/installation process.
.. _cheese-shop: https://github.com/McSinyx/cheese-shop
.. _Cheese Shop: https://pypi.org