Currently in the packaging space, we have a number of avenues for communication, which are:
- Other project specific mailing lists
- Various issue trackers spread across multiple platforms.
- Probably more places I’m not remembering.
The result of this is that all discussion ends up being super fractured amongst the various places. Sometimes that is exactly what you want (for instance, someone who is working on the wheel specs probably doesn’t care about deprecation policy and internal module renaming in pip) and sometimes that ends up being the opposite of what you want (for instance, when you’re describing something that touches PyPI, setuptools, flit, pip, etc all at once).
Theoretically the idea is that distutils-sig is where cross project reaching stuff goes, IRC/gitter is where real time discussion goes, and the various project mailing lists and issue trackers are where the project specific bits go. The problem is that often times doesn’t actually happen in practice except for the largest and most obvious of changes.
I think our current “communications stack” kind of sucks, and I’d love to figure out a better way for us to handle this that solves the sort of weird “independent but related” set of projects we have here.
From my POV, a list of our major problems are:
* Discussion gets fractured across a variety of platforms and locations, which can make it difficult to actually keep up with what’s going on but also to know how to loop in someone relevant if their input would be valuable. You have to more or less simultaneously know someone’s email, Github username, IRC nick, bitbucket username, etc to be able to bring threads of discussion to people’s attention.
* It’s not always clear to users where a discussion should go, often times they’ll come to one location and need to get redirected to another location. If any discussion did happen in the incorrect location, it tends to need to get restarted in the new location (and depending on the specific platform, it may be impossible to actually redirect everyone over to the proper location, so you again, end up fractured with the discussion happening in two places).
* A lot of the technology in this stack is particularly old, and lacks a lot of the modern day affordances that newer things have. An example is being able to edit a discussion post to fix typos that can hinder the ability of others to actually understand whats being talked about. In your typical mailing list or IRC there’s no mechanism by which you can edit an already sent message, so your only option is to either let the problem ride and hope it doesn’t trip up too many people, or send an additional message to correct the error. However these show up as additional, later messages which someone might not even see until they’ve already been thoroughly confused by the first message (since people tend to read email/IRC in a linear fashion).
- There is a lot of things in this one, other things are things like being able to control in a more fine grained manner what email you’re going to get.
- Holy crap, formatting and typography to make things actually readable and not a big block of plaintext.
* We don’t have a clear way for users to get help, leaving users to treat random issues, discussion areas, etc as a support forum, rather than some place that’s actually optimized for that. Some of this ties back into some of the earlier things too, where it’s hard to actually redirect discussions
These aren’t *new* problems, and often times the existing members of a community are the least effected becasue they’ve already spent effort learning the ins and outs and also curating a (typically custom) workflow that they’ve grown accustomed too. The problem with that is that often times that means that new users are left out, and the community gets smaller and smaller as time goes on as people leave and aren’t replaced with new blood, because they’re driven off but the issues with the stack.
A big part of the place this is coming from, is me sitting back and realizing that I tend to be drawn towards pulling discussions into Github issues rather than onto the varying mailing lists, not because that’s always the most appropriate place for it, but because it’s the least painful place in terms of features and functionality. I figure if I’m doing that, when I already have a significant investment in setting up tooling and being involved here, that others (and particularly new users) are likely feeling the same way.
Greetings all! I am happy to announce that after a long hiatus, there is
a pre-release of pipenv available for testing.
You can read the full announcement at
I look forward to your feedback.
Software Engineer | Pipenv Maintainer
Canonical, Ltd. | Python Packaging Authority
dan.ryan(a)canonical.com | dan(a)danryan.co
A new beta release of pip, 20.2b1 has been released! You can install
it by running `python -m pip install --upgrade --pre pip`.
This release is mainly intended for users interested in testing the
new resolver code (available via the `--unstable-feaure=resolver`
option to pip). Apart from the resolver, there are only a couple of
changes over the current stable (20.1.1) release of pip. However, as
we move closer to having a feature-complete release of the new
resolver, we wanted to provide an updated snapshot of the new resolver
functionality, to allow people interested in helping us with the
testing to get access to the latest changes that have been made.
Thanks to everyone who has contributed to this release, and in
particular to all of the people who have tested and provided feedback
on the new resolver so far!
On behalf of the pip maintainers,
It's Bernard and Nicole from the pip Team.
The team is working on the improving the way that pip resolves package
We're asking for your help to test pip's new resolver.
We're especially interested in hearing from people who have projects
with complex dependencies.
By complex dependencies we mean projects that look like this:
- 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
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.
You can find out what we'd like you to do on this blog post:
If you're into social media, we'd appreciate if you'd boost these
You can sign-up for other UX Studies also:
If you've got any questions, reply here off or on-list.
Bernard & Nicole pip Team UX
Bernard Tyers, User research & Interaction Design
Sane UX Design
PGP Key: keybase.io/ei8fdb
I am currently working with the Python Foundation, and Open Technology Fund
The https://executablebooks.org project has a jupyter-book excutable that wraps sphinx via a console_script. We'd like to ensure UTF8 everywhere when windows users run that script. Would be grateful for a pointer on how best to accomplish this.
I'm using the current version of Python on both a MacBook Pro and an iMac.
I'm trying to import the pygame module from the terminal.
The problem is that it's applying the module to Python 2.7 that came with
Is there a way that I can correct the path so that every command I enter in
the Terminal gets applied to whichever current version of Python that I'm
Let me know.