Issue: find a new home for repos including Requests
github.com
github.com
Would prevent comments such as "I like the current implementation", "thanks for the feedback, but my ego says no" and "I have no idea" in some of the most important projects of the Python Community.
Or passive-aggressive closure of issues that are clearly affecting people and are issues.
https://github.com/pypa/pipenv/issues/966#issuecomment-34620...
Don't get me wrong, I appreciate requests especially, but a maintainer should be humble also and respect other people independent of how rockstar he is or feels.
I am very happy to see Organisations/people such as pocoo - Armin Ronacher and Sentry - David Cramer etc. are already stepping up to make sure these libs land in the right place and continue to be useful to the community.
Complementary article: https://vorpus.org/blog/why-im-not-collaborating-with-kennet...
The only obligation any maintainer has is to abide by whatever terms they release their code under. I don’t think it’s reasonable to expect professional support from any project maintained by a single individual.
Hurting others (which, to be clear, I'm not claiming has happened here) is pretty easy to do. For instance, someone opens a request, you say "Patches welcome," they spend time writing a long implementation, and you say "Never mind, I don't like this feature." You're wasting their time, and had you just not said anything, they would have been in a better place. Writing software with backdoors, or recklessly writing software in a way that makes it prone to vulnerabilities, also hurts people.
Impeding others is a softer form of this. There isn't the ability for five hundred Python dependency management projects to all exist and be successful. If you get your project listed as the standard recommendation https://packaging.python.org/guides/tool-recommendations/ , you are effectively promising that it is suitable for people who need a tool like it, and in turn that you have both the willingness and time to make it happen. You don't have to get it so listed. (You can also, of course, change your mind and de-list it.) You can absolutely say, this is a project for my own needs and I don't want to accept support requests at all. Then, at least, someone else can create a similar tool - either their own, or based on your open-source code (and abiding by your license). But if you're signed up to be the standard tool, you're impeding others who actually do have the time and bandwidth for improvements and would be willing to make a competing tool if you're not able to stand by your commitments.
If as you say, somebody released code saying that it was something they were willing to support, it’s reasonable to expect said author to stand by their statements.
That said, this seems like it would be a more implicit expectation than an explicit agreement in many cases. How could a community enforce good behavior in this regard?
Going by your previous example, would it be reasonable for the recommended list of libraries to be more carefully curated for people on such a way that only stable _and_ well supported libraries are put forward? Putting hard requirements on official recommendations seems like it’s be a fairly simple way to avoid such situations.
That's not actually true, right? The obligation flows the other direction. People who receive the code are obligated to abide by the terms. The author does not have to do anything except follow the law. They are not bound by the terms under which they are distributing their code.
On Pipenv? Why are people so negative about it? If you don't like it - just use another tool. Its not like its M$ or systemD which both are a pain to get rid of if your organisation or distro decided to implement
Honest question: Do people write systemd with incorrect capitalization out of spite, or because they just don't know better? It just irks me, like if someone was writing LaTeX as just Latex.
I'm not saying he should have used it, but there are options, rather than just posting "hey, who wants these crucial Python packages?"
https://drewdevault.com/2018/12/04/How-to-abandon-a-FLOSS-pr...
If you need specific advice or a sympathetic ear, please feel free to reach out: sir@cmpwn.com. I know free software maintainership can be hard.
It's too difficult to write large/important free software projects alone. I've also written about my approach to building a healthy community of engaged contributors and co-maintainers to make sure your own investment & workload remains healthy, along with that of your collaborators:
https://drewdevault.com/2018/06/01/How-I-maintain-FOSS-proje...
This one is much more subjective, YMMV.
A more mature approach seems to me to be to ensure forks are first-class, and that dependence is restricted to a specific fork: either by full name (@owner/repository), or - better yet - by Git coordinate (url/sha). This means an abandoned project can be picked up by any number of people.
The primary cost I can see is one of cohesion and divergent enhancement under the same library name. But in a way, we have ways to refer to that already. "Mordenkainen's Magic Missile" - the owner + name coordinate already has a natural representation. And perhaps once we've made that step, more progress can be made to help forks coordinate common changes and improvements where possible, or to split into more distinct artifacts where applicable.
Benefits are not only reduction of "bus factor" on a single developer, but also enables review procedures.
Depending on the project this could be a custom organisation, a "generic" organisation like ASF.
Libraries owned by a single developer for me are a notable risk, when taking them as dependency.
If the new owner acts in bad faith, what recourse do you have to maintain a non-abused version of the library? Can you replace the owner's authoritative builds with your own?
If you instead have no 'authoritative version' of a library, you lose some elegance to be sure; you can no longer say simply, 'let's use Magic Missile!' as there may be multiple forks of what could be labeled the original 'Magic Missile' library. But what you gain is the ability to maintain multiple versions of the library, and to be able to point out which versions are poorly maintained or even hazardous:
"We don't use Drizzt's Magic Missile, it was tailored pretty heavily towards his own projects."
"If I recall, Persophone's Magic Missile included a hidden cryptominer. Avoid at all costs."
this does exist. and it seems to happen when authority falls down or is not there to begin with. for example several community builds around distributions for the GPD pocket emerged, and some lived longer than others and some where more reliable than others.
in fact the emergence of linux distributions themselves follows this model. each distribution is packaging applications they did not create, and are hence not the owners of the authoritative builds. and we pick distributions based on which one does the best job.
of course distributions create their own authority on their collection, but the principle remains. they also may easily switch the source for their packages. i do remember a few examples where this has happened.
another area where this can be seen is with binary builds for projects where the original developers only release the source. it's the same dynamic. build your own, or pick a community contributed build by someone else. either way noone gets to use the authoritative builds because they don't exist. (or they exist only for one platform, in which case the situation is limited to those who are on different platforms for which there are no authoritative builds)
Consider the Java ecosystem. Dependency targets are specified by coordinates of both group and artifact, which satisfies the above separation fairly well, to the best of my knowledge.
Consider the NPM and rubygems ecosystems: they specify dependencies by the name of the library alone, implicitly enforcing the 'authorized artifact' model.
but in NPM and ruby i am limited to one single global repo and thus have no choice but to get the one that is controlled by whoever owns the name.
You can run your own private artifact repositories for NPM and Ruby, and select which concrete artifacts they contain; but that's not the publicly hosted repositories. One option could be to centralize into a cluster of public repositories, which is closer to what the Java and Linux ecosystems have, and that may be a sufficient compromise in many cases. I think the layer of abstraction between repositories and concrete artifacts is still useful.
Not sponsorship, not donations, not support subscriptions - those concepts are not the same a simple payment for nothing more than Keeping a project funded and Alive.
KeepAlive payments in which companies pay a minimum $100month fee to KeepAlive projects that they depend on.
How many companies have a dependency on Kenneth's requests module? Alot. Hundreds if not thousands. And if there was a self interest obligation for companies to make monthly KeepAlive payments then those companies would not be now wondering what it means to have so many projects that depend on Requests now without the project author.
UPDATE: having read https://journal.kennethreitz.org/entry/r-python maybe Kenneth would be exiting anyway. But who knows, maybe if companies actually paid to Keep their dependencies Alive then people like Kenneth might remain engaged.
https://hn.algolia.com/?sort=byDate&dateRange=all&type=comme...
A nice fix would be if github.com/username could appear to the right of the title instead of just github.com. That's on our list, but not implemented yet.
On HN, the one thing we're optimizing for is intellectual curiosity. That's merely one kind of curiosity and by no means the most powerful. Interest in personalities, especially celebrities or the infamous, tends to be fuelled by one of the higher-octane varieties—call it social curiosity. There's nothing wrong with social curiosity. It's human. But intellectual curiosities are smaller fish than that, and on HN we need to do things to prevent the bigger fish from eating them all up. Everything in our bag of moderation tricks is there to help with that.
Your optimisation approach seems to me to be working out nicely.
Edit note: At the time of writing, the article title did not include "Requests".
The most notable repo involved is "requests", an HTTP library more widely used than the one in Python's standard library (I'm under the impression it has become bundled with the Python standard install but am unable to find a citation for that).
How about changing the title too "Python requests library and other repos seeking new home"?
i'd generally expect titles to be close to the original title of the post. and the first version of the title just doesn't feel like a title that anyone would put onto a post, let alone an issue report in a tracker. with 'requests' added it feels more real and interesting.
edit: i was thinking of this title "Issue: find a new home for repos" which is not the original one. somehow that "all" makes a difference, as does adding "request"
If people encounter a title that doesn't fully yield to 300ms of parsing, that causes irritation, which is a good thing. Not good in itself—irritation is a bit painful—but good because it causes the rapid-reflexive subsystem to throw an error and pass control to the slower, reflective system that is able to process more information. That's the system we actually want to get activated. One's it's engaged there's a chance that it will remain engaged, which—this is the hypothesis anyway—will lead to higher-quality thoughts and comments. That's why I say it's good for HN users to have to work a little.
"You won't believe who's giving a way a repo
#2 will shock you"
That kind of title operates even less by intellectual curiosity than the kind I was talking above, so it's even worse for HN. They are the kind we edit and everyone agrees with the edit.
Of course, the risks are still there for malicious takeover, but I think will be minimized due to the owner's notoriety and the amount of press this has already seen just on GitHub. I am pretty sure the maintainers of Pip will be keeping an eye on this over the next few months in case of intervening.
[0] https://github.com/dominictarr/event-stream/issues/116#issue...
Here, there's in theory the effort that the people being given the project have been more vetted and have to have some amount of github presence to get a repo.
I'm not sure what has prompted this, but Kenneth won't leave them to wither and die. He understands their importance and if he's handing them off, he'll make sure they are in good hands.
There was also a period when development and releases was happening in a somewhat frenzied manner and some github issues were being handled / closed in an antagonistic fashion. I don't know how extensive these issues were, but I remember seeing a few examples that seemed to back up the claims.
At risk of potentially stepping into overly personal territory: As I understand it, Kenneth was unfortunately dealing with some mental health stuff during part of that time period. He posted a blog post that mentioned this.
Here's one related HN discussion: https://news.ycombinator.com/item?id=18612590
My bias: During my usage of pipenv, while it seemed very promising, I felt that it wasn't fully production ready and had some problematic warts.
AFAIK that never happened, and was only marketing from his side, and never an official stance from the PSF (or whoever would be the authoritative source). That's just one the many questionable things that has happened with him in the past.
Yeah, it's true that the marketing around pypenv was definitely over the top.
Am I somehow misinterpreting that, or was that really a blatant attempt to sell the repos and pypi ownership of some extremely popular Python libraries?
Similar issues have already happened with people buying or otherwise taking over popular NPM packages.
There is absolutely an exchange of value here, no reason to assume that a change in maintainership means cash for malware.
If you are the sole person that contributed code, that's fine, but what about codebases that had lots of code contributed by other people?
Would not taking money somehow obviate the issue?
> I am considering this an unlikely and rare situation. Only serious offers will be considered, and money won't influence maintainer-ship decisions.
- https://vorpus.org/blog/why-im-not-collaborating-with-kennet...
- and HN's thread https://news.ycombinator.com/item?id=19826680
Request has not been maintained by Reitz for some time now (meaning he hasn't contributed).
Requests I agree has been very stable.
Also as an extra reading regarding async support for requests take a look at this article by a Python core Developer(Nathaniel J. Smith):
"Why I'm not collaborating with Kenneth Reitz" https://vorpus.org/blog/why-im-not-collaborating-with-kennet...