Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2019-11-16 01:26:35
Size: 6400
Comment: initial summaries
Revision 4 as of 2020-11-30 20:04:10
Size: 6575
Comment: updating, mostly to put some verbs in past tense
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Thanks to [[https://chanzuckerberg.com/eoss/proposals/improving-user-experience-and-debuggability-of-pip-for-all-python-users/|the Chan Zuckerberg Initiative]] and another funder, the [[PackagingWG]] is receiving funding to [[https://wiki.python.org/psf/Fundable%20Packaging%20Improvements#Finish_dependency_resolver_for_pip|finish pip's dependency resolver]] and [[https://wiki.python.org/psf/Fundable%20Packaging%20Improvements#Improve_pip_user_experience|improve pip's user experience]]. Thanks to [[https://chanzuckerberg.com/eoss/proposals/improving-user-experience-and-debuggability-of-pip-for-all-python-users/|the Chan Zuckerberg Initiative]] and [[https://pyfound.blogspot.com/2019/12/moss-czi-support-pip.html|Mozilla's Open Source Support program]], the [[PackagingWG]] is receiving funding to [[https://wiki.python.org/psf/Fundable%20Packaging%20Improvements#Finish_dependency_resolver_for_pip|finish pip's dependency resolver]] and [[https://wiki.python.org/psf/Fundable%20Packaging%20Improvements#Improve_pip_user_experience|improve pip's user experience]].
Line 11: Line 11:
 * [[https://pyfound.blogspot.com/2019/11/seeking-developers-for-paid-contract.html|Two Python developers being hired via Python Software Foundation RfP; apply by 22 November 2019]]  * [[https://pyfound.blogspot.com/2019/11/seeking-developers-for-paid-contract.html|Python developers hired via Python Software Foundation RfP]]: Pradyun Gedam, Tzu-ping Chung, Paul F. Moore of Atos, and Ilan Schnell
Line 13: Line 13:
 * [[https://changeset.nyc/|Project manager (not finalized yet) Sumana Harihareswara of Changeset Consulting]]  * [[https://changeset.nyc/|Project manager: Sumana Harihareswara of Changeset Consulting]]
Line 17: Line 17:
We're partway through a next-generation rewrite of the dependency resolver within pip, Python's package download and installation tool. The project ran into massive technical debt, but the refactoring is nearly finished and prototype functionality is in alpha now. [[https://wiki.python.org/psf/Fundable%20Packaging%20Improvements#Finish_dependency_resolver_for_pip|Many improvements and installation and dependency issues for Python users, conda/Anaconda, and other platforms are blocked awaiting this feature.]] We've finished a next-generation rewrite of the dependency resolver within pip, Python's package download and installation tool. The project ran into massive technical debt, but the refactoring is nearly finished and functionality is in pip 20.3 now. [[https://wiki.python.org/psf/Fundable%20Packaging%20Improvements#Finish_dependency_resolver_for_pip|Many improvements and installation and dependency issues for Python users, conda/Anaconda, and other platforms are blocked awaiting this feature.]]
Line 19: Line 19:
Also, pip's user experience needs to become more consistent across features, fit the user's mental model better, reduce unintended data loss, and provide better error messages and prompts, logs, output, and reporting. Also, pip's user experience has become more consistent across features, to fit the user's mental model better, reduce unintended data loss, and provide better error messages and prompts, logs, output, and reporting.
Line 21: Line 21:
Two developers, a UX design/research consultancy, and a project manager will execute a three-phase plan to support user experience, communications/publicity, and testing work (including developing robust testing and continuous integration infrastructure) on the resolver, as well as core feature development and review. Multiple developers, a UX design/research consultancy, and a project manager are executing a three-phase plan to support user experience, communications/publicity, and testing work (including developing robust testing and continuous integration infrastructure) on the resolver, as well as core feature development and review.
Line 23: Line 23:
Initially, as developers come up to speed on pip and work on finishing refactoring the build logic within pip, UX experts will study the command line packaging/distribution environment, run user tests, and develop robust user journeys/concept maps. Initially, as developers came up to speed on pip and work on finishing refactoring the build logic within pip, UX experts studied the command line packaging/distribution environment, ran user tests, and developed robust user journeys/concept maps.
Line 25: Line 25:
Second, the contractors will work together on implementing the resolver. The developers will write tests, improve CI, build test infrastructure, introduce new abstractions and fix bugs found in alpha testing, collaborate with downstreams and users about config flags and transition schedules, and so on. The UX experts will improve command-line UX (such as in-CLI help and error messages, and specific commands and names of flags), and improve the [[https://pip.pypa.io/en/stable/user_guide/|pip user guide]]. Second, the contractors worked together on implementing the resolver. The developers wrote tests, improved CI, built test infrastructure, introduced new abstractions and fixed bugs found in alpha testing, collaborated with downstreams and users about config flags and transition schedules, and so on. The UX experts improved command-line UX (such as in-CLI help and error messages, and specific commands and names of flags), and improved the [[https://pip.pypa.io/en/stable/user_guide/|pip user guide]].
Line 27: Line 27:
Finally, one contract developer will maintain the pip repository by triaging bugs and reviewing pull requests (releasing bottlenecks), and the UX expert will train maintainers in CLI UX design principles and write UX guidelines for the project. Finally, one contract developer is maintaining the pip repository by triaging bugs and reviewing pull requests (releasing bottlenecks), and the UX experts will train maintainers in CLI UX design principles and write UX guidelines for the project.
Line 29: Line 29:
Throughout, a project manager will find and communicate with stakeholders and testers, and with the funder. Throughout, a project manager is finding and communicating with stakeholders and testers, and with the funders.
Line 33: Line 33:
''Exists in other documents; reformatting and copying to this page is in progress.'' ''Exists in other documents, such as https://pyfound.blogspot.com/2019/11/seeking-developers-for-paid-contract.html and https://github.com/pypa/pip/milestone/38 .''

Roadmap for pip resolver and UX work in 2020

Thanks to the Chan Zuckerberg Initiative and Mozilla's Open Source Support program, the PackagingWG is receiving funding to finish pip's dependency resolver and improve pip's user experience.

Key people

Contractors working on this project will be

Work summary

We've finished a next-generation rewrite of the dependency resolver within pip, Python's package download and installation tool. The project ran into massive technical debt, but the refactoring is nearly finished and functionality is in pip 20.3 now. Many improvements and installation and dependency issues for Python users, conda/Anaconda, and other platforms are blocked awaiting this feature.

Also, pip's user experience has become more consistent across features, to fit the user's mental model better, reduce unintended data loss, and provide better error messages and prompts, logs, output, and reporting.

Multiple developers, a UX design/research consultancy, and a project manager are executing a three-phase plan to support user experience, communications/publicity, and testing work (including developing robust testing and continuous integration infrastructure) on the resolver, as well as core feature development and review.

Initially, as developers came up to speed on pip and work on finishing refactoring the build logic within pip, UX experts studied the command line packaging/distribution environment, ran user tests, and developed robust user journeys/concept maps.

Second, the contractors worked together on implementing the resolver. The developers wrote tests, improved CI, built test infrastructure, introduced new abstractions and fixed bugs found in alpha testing, collaborated with downstreams and users about config flags and transition schedules, and so on. The UX experts improved command-line UX (such as in-CLI help and error messages, and specific commands and names of flags), and improved the pip user guide.

Finally, one contract developer is maintaining the pip repository by triaging bugs and reviewing pull requests (releasing bottlenecks), and the UX experts will train maintainers in CLI UX design principles and write UX guidelines for the project.

Throughout, a project manager is finding and communicating with stakeholders and testers, and with the funders.

Detailed work plan

Exists in other documents, such as https://pyfound.blogspot.com/2019/11/seeking-developers-for-paid-contract.html and https://github.com/pypa/pip/milestone/38 .

Phase I (Foundational work, early 2020)

Developers' onboarding and initial work

See RFP.

UX onboarding and initial work

Phase II (Resolver work, ~March-June 2020)

Developers

See RFP.

UX

  • Working with maintainers to write documentation and help messages, and to design resolver user experience

Phase III (Maintenance and Sustainability work, June-December 2020)

Developer

  • Keep up with the pip code and issue review queue for 10 hours per week, thus releasing a key bottleneck and enabling existing maintainers to make progress on key architectural features
  • Help new contributors develop into continuing contributors
  • Help existing contributors grow into co-maintainers

UX

  • Interview users, run tests, and writeup (covering resolver and expanding research scope). These will be organized similarly to the research in the first phase, but will measure user experience improvements from the new resolver, and will allow the researcher to expand their research. Scope to, for instance, issues involving conda, virtualenvs, and other package managers. Outcomes: greater user understandings, as above, and assessment of the UX improvements in the new resolver.
  • Update workflows, expand user journeys, and develop checklist for developing new features
  • Develop templates for UI bugs, commands, error messages, output, documentation, and configuration files
  • Teach other pip developers UX practices per https://simplysecure.org/what-we-do/user-research/

  • Develop list of people/organizations who can participate in UX testing

Pip2020DonorFundedRoadmap (last edited 2020-11-30 20:04:10 by SumanaHarihareswara)

Unable to view page? See the FrontPage for instructions.