I’m going to try to post these roughly once a month. Here’s the late June post.

Work I was planning to do


  • Clearly determine what parts of the build system are intertwined with pip’s resolution logic.


  • Get confirmation from my college about required dates/duration of internships in final semester.

Work I did (24 June - 6 Aug)


  • Identified portion of build system intertwined with pip’s resolver:

    • “Get abstract distribution”:
      • building installable artifacts is intertwined with pip’s resolver.
      • Specifically, the resolver currently passes information about how it would handle a distribution, to the “preparer” that fetches and builds it.
    • Marker evaluation and handling is done by “RequirementSet” and not the resolver.
  • Started moving code for pip’s handling of installable artifacts into a pip._internal.distributions package.


  • Still working on getting requirements for my final semester internship. Other students have told me that it has to be longer than 15 weeks and should start in early December, but I am seeking official word on that. I’m working on options that would let me work on the pip resolver during the internship.

Additional notes on challenges

No technical challenges. But I didn’t have much time to work on this, because of college and visa paperwork (because PyCon Korea invited me to give a keynote!), and because of illness.

Goals for August


  • Separate “prepare distribution” logic from the resolution logic.
  • Split code for building various kinds of source distributions into dedicated modules within the new “distributions” sub-package in pip. (related cleanup)


  • Reach out to maintainers of pipenv, pip-tools and poetry, to have a conversation about code reuse.
    • I know pipenv maintainers have work that can be reused.
    • Need to identify the overlapping area between the tools, since they may require a slightly different results after resolution than pip.
  • Work with PSF’s Packaging Working Group on funding proposals to get more help on the resolver testing, UX and rollout.

Other commitments

I am travelling to South Korea this month, for keynoting at PyCon Korea. Immediately after that, I have college examinations from 18th-25th August, and right after that, project reviews for this semester’s courses. So my time is pretty limited in August, but should get freer in September.

Help us

I have the same list as last time. Thanks!

Also, thanks to Sumana Harihareswara for adapting this from a separate update I’d shared.