Test pip’s alpha resolver and help us document dependency conflicts

Hello! It’s Bernard and Nicole here from the pip team.

What’s this research about?

The team is working on the improving the way that pip resolves package dependency conflicts and would like feedback from users who have projects with complex dependencies. By complex dependencies we mean projects that:

  • have at least 10 package dependencies
  • some package are pinned to specific versions
  • that you always have a dependency issue when installing it
  • you have to put in hacks, workarounds, or fixes

Objective

Currently, we’re trying to discover all the ways in which pip‘s dependency resolver fails, so that we can work out what error messages and/or debugging information we should display.

We hope to get some results in the next 2 weeks. The research will be running after these 2 weeks – please do try this out, and file an issue.

What we’d like you to do

On a project with a lot of dependencies and/or where you’ve had dependency problems in the past:

  1. Upgrade pip to the latest version – 20.2b1 – by running pip install —upgrade —pre pip (you can check your version with pip -V or pip --version)
  2. Use pip’s alpha resolver to install the project. You can do this by adding the option --unstable-feature=resolver when running pip
  3. If the project installs without a problem, do what you can to break it! For example, add more packages, or fiddle with the versions of your packages. If you’ve put in workarounds, remove them!
  4. If you are able to generate an error, we’d like you to open a ticket on the pip issue tracker. Please include as much information as you can about what caused the error, e.g.:
    • Your terminal output, including the error message (if one is displayed)
    • Any inputs to pip, for example:
      • Package requirements: CLI arguments and/or your requirements.txt file
      • Already installed packages, outputted via pip freeze
    • we’d appreciate if you tag us in the Github issue – Bernard (@ei8fdb) and Nicole (@nlhkabu).

It would be great if you could also include your dependency tree (outputted via pipdeptree)

For users installing packages from a private repository or local directory, please try your best to describe your setup. We’d like to understand how to reproduce the error locally, so would need (at a minimum) a description of the packages you are trying to install, and a list of dependencies for each package.

How we will use your feedback

We will use your error report to create a list of error use cases. We may also contact you for follow up questions, or to discuss the kind of help you might need to resolve the error(s).

If you want to get in touch

We appreciate your time and help on this issue! If you need any help, or have any questions, please don’t hesitate to get in touch with me by email, here in the comments, or Twitter (I’m @bernardtyers) – we’ll be happy to talk it over it with you.

Bernard and Nicole for the pip team

How do you deal with conflicting dependencies caused by pip installs?

Python Software Foundation logo

pip UX studies: response data

This is an ongoing analysis of the Python pip UX Study signups. These figures will change as new people sign-up for the studies.

The purpose of this is to give the pip team some understanding of the kinds of participants that are taking part in our research.

Detailed comments on Python usage

Here are some (anonymised) details about what the participants use Python for:

At work we use Python to deliver a smart metering solution to tens of thousands of people in the developing world. Everything from business logic to middleware to front ends are built on Python.

Used Python for automating tons of QA tests for medical software UI.

Work as a researcher in a ML lab

At work, I use python for GIS tools and data analysis.

(I work in) bioinformatics […] some software are written in python.

Text analysis for infosec and fraud detection
Predictive maintenance

I’m a grad student in cognitive science so I use python to code tasks for subjects, data analysis for both behavioral and fMRI/eyetracking data, and additionally for personal automation of tasks or web scraping for info

At work:

  • providing APIs to a non python legacy system
  • automating previously manual workflows (email, excel)
  • data/log analysis in Jupiter lab
  • connecting to hardware (like access gates, scanning devices)

Professionally I write web backends (REST+basic HTML/css), batch data processing, data integrations, and systems scripting for a large software company. In my personal time I do similar tasks on a much smaller scale.

I use Python for my work as a senior DevOps engineer developing tools and web platforms for infrastructure automation. I am also an open source author of a variety of tools, including browser automation, web programming, automation tooling, and more.

I am an archaeologist and since 2008 I have been using Python to develop small open source apps for some specialized tasks like radiocarbon calibration, downloading land survey data from total stations and analyzing archaeological stratigraphy data. I also use these tools at work but development is strictly a personal side project.

I use Python for web development and I teach Python. My students often struggle with virtual environments and pip.

Detailed comments on pip usage

Here are some (anonymised) details about what the participants use Python for:

I use pip exclusively to deal with pypi packages, thus using it in a very basic and straighforward way.

I use pip to install editable versions of the application in my virtualenvironment so the various scripts and entry points are in my path. I also use it + Twine to publish wheels and source distributions to both public Pypi, as well as an internal mirror. I’ve also used pip to execute unit tests.

Use pip in CI, building docker containers, package management of my local venvs

(I use) Basic commands:
Install
Upgrade
Freeze

It varies by project but I predominantly use conda so sometimes uses conda install but quite often for a particular repo I’ll end up using pip if it’s easier overall (or sometimes if it’s the only option)

Sign-up for the pip UX Studies!

Please share this far and wide with people who you think would be interested.

I recently started working with the Python Software Foundation on a project to improve the usability of pip, the Python package management tool.

As part of this work, I’m looking for Python users who use pip to take part in my research.

In order to make the right decisions on how to make improvements for all users, we need to speak with people who use Python and pip. Your input will have a direct impact.

Sign-up to take part in our UX Studies. You’ll receive invites for user research interviews, usability tests, surveys and other studies.

🤔 What do I get from taking part?

Firstly, you get the opportunity to have your pip user’s voice heard.

You get to help us improve pip‘s usability so you spend less time debugging and more time doing the amazing things you do with Python.

You get invitations to take part in User Experience (UX) Studies. UX Studies help us understand how you use pip, what commands you can’t live without, what you wish pip would do, and what you expect from it.

You get the opportunity to test new pip command syntax we’re working on. Do you wish there was an easier way to tell pip to do something? Sign-up so you can help to improve the pip command line interface.

What type of research do you do?

🗣️ User research interviews

User research interviews are short (30-60 minutes) 1-to-1 interviews with the pip UX Team. We’ll ask what you use Python for, how and what you use pip for, etc.

These usually happen remotely, but can happen in person, for example at a conference or Python event.

📝 Surveys

We’ll use surveys to ask you about specific pip or Python related topics. You will need to fill out the online survey in your own time. We promise they won’t be too long.

💬 pip usability testing

During a usability study you’ll be asked to complete a number of short pip or Python related tasks. This might be trying to achieve a task using a pip command, beta testing a new pip command, or trying to understand new output messages for debugging.

You’ll be asked to “think out loud” so we understand what you are doing, why you’re doing it, and what you think you need to do next.

Don’t worry about not doing the right thing – we’re testing the software, not you!

These studies will happen online using screen-sharing, and in-person when we attend Python related conferences and events.

🎁 Other studies we’ve not yet designed!

As we find new areas we have to work on, we’ll likely need to design other UX studies. They will all focus on improving pip.

These could be for example: a UX Ask Me! booth at Python related conferences (are you going to PyCon? Me too! Let’s have a chat about pip), or testing how understandable the pip documentation is.

🙋 You’ve got questions? I have answers! (I hope)

Of course people will have questions! I hope I’ve got all the answers below. If not, please leave a comment and I’ll answer it as best as I can.

Do I need to be a Python expert to take part?

This is an easy one – definitely not!

The purpose of this UX research is to talk to as diverse a group of people as possible. Our objective is to make pip more usable by everybody.

We want to speak to all Python users – it doesn’t matter about your level of expertise. We particularly want to speak with people who have accessibility needs.

Will you need to visit me in-person?

Unfortunately we do not have the budget to visit people in-person. This research will be conducted remotely for most of the time. However, the UX Team will be travelling to conferences and events, so it might be possible to conduct research in person, if you choose.

Also, we will conduct the research – interviews, surveys, usability tests – in English. You don’t need to be fluent in English.

What will happen to the information you learn?

As Python and pip are Open Source Software projects, we aim to make our research and design work open source, and public so the Python community and other Open Source projects can learn from it and use it.

Before any 1-to-1 sessions we will ask for your permission to record the session – the decision is yours. You can also tell specific things you’d prefer to stay anonymous, and if you wish review the session notes afterwards.

Do I need to give you my real name?

Not if you don’t want to. You can choose what name – real or nickname – you’d like us to use when we contact you. You’ll also need to provide us with an email address to contact you.

Who will have access to my personal information?

The pip UX Team (Bernard Tyers – the person writing this – and Georgia Bullen).

What will you do with my personal information?

We will use the information you provide during the sign-up, and all UX Studies you take part in, only to improve pip. Nothing else.

When this project is finished, we will ask everyone if they want to take part in further UX studies. If yes, it will be kept for that UX Study. If not, the information will be deleted.

Do I need to take part in all UX Studies?

Definitely not. When you fill out the sign-up form, you can choose which UX Studies you want to take part in. We’d be happy if you took part in all, but it’s your decision.

How can I unsubscribe from the pip UX Studies?

If you want to stop taking part, you can email us directly.

Sign-up for the pip UX Studies

The only thing left to do is sign-up!

DIY Mobile Usabilty Testing talk Paris Web 2016

In 2016, Belén Barros Pena & I did a talk at the great Paris Web conference about our Do-It-Yourself Mobile Usability Testing project. We’ve done it many times before.

Here’s the video.

The tech and the tools may be updated and it’s 3 years old but 80-90% of the reasoning, methods and approacehs are still as relevant.

Paris Web is a great conference. I was really impressed by the professionalism of the organisers, by how accessible the talks were – real-time French subtitling (which were helpful for me too!) of all talks and on-stage signing. Lots of talks were in English also.

It won my prize of “Best food at a UX conference. Ever.”.

If you are looking for an interesting conference (and you also speak French), I can highly recommend it.

Reading list & useful things I found for 1-8 September

User Research

No design without (user) research; A great talk (with video) by Belén Barros Pena given at 2019 Libre Graphics Meeting (LGM) conference in Saarbrucken. The talk was about why and how to incorporate design research practices into free software projects, but it applies to all projects.

The tool we use to turn around user research findings fast at Monzo; this comes from Samantha Davies. The answer might not be what you’re expecting. (Spoiler: it’s not what you’re expecting.)

Data

Handbook on Data Protection in Humanitarian Action; A handbook from Brussels Privacy Hub & ICRC (International Committee of the Red Cross) on how to process personal data as part of humanitarian operations, particularly those in charge of advising on and applying data protection standards.

Digital security

SOUPS 2019 Round-up; A nice short summary of some interesting papers and presentations at SOUPS 2019, collated by Simply Secure. (I contributed to it!)

Access needs

Aphasia community; provides resources about aphasia, information about aphasia communities (mainly in Australia), best work practices, support for people working in aphasia communities. (via Dr. Abi Roper)

Psychology

The race to create a perfect lie detector – and the dangers of succeeding; A Guardian newspaper article about

Interesting

The Legasov Tapes; A blog transcribing the audio recordings of Valery Legasov, a Russian scientist who worked as chief of the commission investigating the Chernobyl disaster.

Reading list & useful things I found for 19-25 August

Accessibility

We need to talk about dyslexia at work; a nice blogpost about dyslexia in the work place and how to improve support for people who live and work with dyslexia.

Brexit

User Research

A beginners guide to getting into user research; A ma-hoosive list of resources (in the form of a Notion.so note) about how to start doing user research.

Accessibility

Lámh signing system; the manual sign system used by children and adults with intellectual disability and communication needs in Ireland. With Lámh, speech is always used with signs and only key words in a sentence are signed. (Lámh is the Irish word for hand)

Events, and conferences

IXDA International Interaction Design Day, 24th September. There’s a list of all the worldwide events. Details about the London event (09:00-18:00) in Foolproof’s offices, in London are available.

Reading list & useful things I found for 12-18 August

Interesting things to read

The Diversity Redemption

Do you write a blog? Do you have opinions about things? If so, your “honest opinion” is defined by legislation (in the UK).

You are not a brand; Thank God someone finally said it.

Quotes

Ashley Fowler from @USABLE_tools reiterated during “Designing for extreme risks” workshop that a common problem is that developers design tools primarily for themselves and not for a specific user group #SOUPS2019

@n0gat on Twitter quoting Ashley Fowler from Internew Usable Tools project

Security and privacy

How to effectively use a Password Managers; a nice article about research from CyLab at Carnagie Mellon University presented at SOUPS 2019 (Why people don’t use password managers effectively).

New software

Drama; “is a Mac app for designing animations and prototyping user interaction. It allows you to create an entire structure of interconnected Scenes with transitions between them and then run a simulation of such prototype.”

Blueprint; “Blueprint is a React-based UI toolkit for the web.”

Protect you Nextcloud account; using Confidential Technology’s 2FA Hardware token authentication. This means a Nextcloud user can protect their account with a physical hardwre device combined with their password. And the software is open source.

UK Web accessibility after Brexit?

I saw a message today to a mailing list (essentially) asking – what impact does Brexit have on the accessibility of UK websites – specifically UK government (anything that ends in .gov.uk).

A worrying, but understandable question. The answer came that websites will still have to comply with the:

What was not mentioned was that the requirement to be accessible will only really apply for services available UK residents.

If the service is for non-UK residents (and I may be incorrect) non-UK citizens, then this a11y requirement may not be required.