DEV Community

Jan Küster 🔥
Jan Küster 🔥

Posted on

Wasted Open Source efforts 😮

Long time no see my friends! 👋

Today I got notified by GitHub stale bot that a PR of mine in the famous PyTorch repo got closed by stale bot. 🤖
Yes, by a bot; not by an author or repo owner but a bot.
You may argue that this is normal for huge projects like this one but by looking deeper into the PR this reveals to me how much wasted effort is out there in open source!

How it all began

In June 2025 I wanted to try a tool for one shot speech cloning.
The project was based on PyTorch and while installation via Docker is intended to be reproducible, in reality it is not.

At first, I cloned the repo and ran docker build:

docker build -t f5tts:v1 .
Enter fullscreen mode Exit fullscreen mode

This already took (as you might know from similar projects) ages to download and build. 😴

After the build was finally complete, I tried to run the project via

docker container run --rm -it --gpus=all --mount 'type=volume,source=f5-tts,target=/root/.cache/huggingface/hub/' -p 7860:7860 ghcr.io/swivid/f5-tts:main f5-tts_infer-gradio --host 0.0.0.0
Enter fullscreen mode Exit fullscreen mode

There, I got stuck with the following entirely confusing error message:

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
Enter fullscreen mode Exit fullscreen mode

Thank you for nothing. Anyway, I searched the web for a good amount of time, until I finally found the solution. On Linux I need to manually install the Nvidia container toolkit if you want to use PyTorch with GPUs:

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

Well, this was neither described in the repo nor in the PyTorch repo.
Nowhere. Who would ever know this? Nobody, right!? This seemed perfect for a little pull request.

My Motivation for the PRs

I wasted time and got emotionally affected by this and I thought that others should have a better developer experience with this. Plus the effort for the PR is minimal.

This is living open source to me! I solved something and save time for all of us by making it available to the rest of the world. In turn you do the same for me and we benefit altogether.
What a nice little dreamworld I am living in.

Waking up from the dreamworld: the most unfriendly GitHub conversation I have had in years 🤬

Well, I thought it might be beneficial to everyone to add a line to the installation instructions to save everyone's time. The reponse was totally unexpected though. Read for yourself:

Docker installation is missing requirements for cuda support #1073

Checks

  • [x] This template is only for bug reports, usage problems go with 'Help Wanted'.
  • [x] I have thoroughly reviewed the project documentation but couldn't find information to solve my problem.
  • [x] I have searched for existing issues, including closed ones, and couldn't find a solution.
  • [x] I am using English to submit this issue to facilitate community communication.

Environment Details

The documentation should note, that the container will not run, if the nvidia docker toolkit is not installed and configured.

If you don't install the toolkit, you will get

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
Enter fullscreen mode Exit fullscreen mode

I can open a PR and add it to the docs if you like.

Steps to Reproduce

  1. install docker (follow official docker installation guide)
  2. follow installation instruction for Docker setup, defined in Readme

✔️ Expected Behavior

Installation should be reproducible. When following the installation for Docker step by step, it should start without issues.

❌ Actual Behavior

docker container run --rm -it --gpus=all --mount 'type=volume,source=f5-tts,target=/root/.cache/huggingface/hub/' -p 7860:7860 ghcr.io/swivid/f5-tts:main f5-tts_infer-gradio --host 0.0.0.0
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
Enter fullscreen mode Exit fullscreen mode

While this obviously their choice as owner, I was rather shocked by the total lack of empathy and aggressiveness against me as if I was a burden or something.

What would a newcomer think in such a situation? Honestly,I hope no newcomer would have to face such bullsh*t but I fear this way of communication is not an exception.

Anyway, the obvious outcome of this was to step up and make the PR directly to the where the issue was caused in the first place.

Going big: PR in the official PyTorch repo

I am no shy person when it comes to action so I opened the same PR on the PyTorch repo, willing to face any upcoming trouble and discussion that might come up.

docs: link to Nvidia Container Toolkit in README #155102

The Nvidia Container Toolkit is needed on Linux Distributions to properly run Docker images with --gpus flag.

The dependency is OS-level and cannot be pinned from within the container.

Otherwise containers will not run and provide and ambiguous error message

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
Enter fullscreen mode Exit fullscreen mode

Accepting the PR was already blocked by CLA assistant, making me sign some bureaucratic documents online with a digital signature, complying to some legalese terms nobody understands (not even the PyTorch devs and maintainers) besides a few lawyers. 🤢
No worries, I didn't read as I was supposed to because I just wanted to open the PR.

Then it was waiting for the CI. I changed just a README so please no fails. Fortunately everything passed.

One day later a maintainer added the triaged label and requested reviews from other maintainers. Awesome, it looked like this passed initial triage and would not be rejected as "not important" as in the other repo beforehand.

But then: silence. Nothing. No reaction. No comment or review. After a month stale bot notified the PR getting marked stale and maintainers can remove the stale label.
I commented "not stale" but this had no effect: Two months after I opened the PR it got closed by stale bot. What a 💩

My personal thoughts

Fortunately the PR was just an additional line in a README but it was also a test - a test how contributions are honored and if people care on the small things that developers care about because they are the ones to fiddle with it.

It seems nobody cared about the efforts of ohers.

From this point I am really in doubt of whether I will open a PR to one of the huge repos again. It is much easier to create a gist and spread the word plus it saves me some annoying conversations.

Anyway, if you ever get into the issue on Linux, Docker and PyTorch telling you docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]. then you now know to install the Nvidia Docker Toolkit.

Top comments (16)

Collapse
 
ahrjarrett profile image
andrew jarrett

Been there! OSS can feel brutal sometimes.

Not sure that this would have helped here, but one thing I've found helps make contributions to certain projects "stick" a bit more is first creating an issue.

From there, you have 2 options:

  1. You can wait for feedback from the maintainers about whether the contribution would be accepted (saving yourself the frustration if they wouldn't accept the fix either way)

  2. If you plan on opening the PR either way, you can then open the PR, and include a line that says "Closes #".

I've found that, for whatever reason, my PRs tend to land more when I do #2. It also lets us discuss the viability of the change, separate from the implementation, which I think some maintainers appreciate.

Collapse
 
rkcperea profile image
rkcperea • Edited

Bot limitation: It was asking for no-stale label, it seems it couldn't process your reply.

I'd like to do open source too, but most of the resources it require is a privilege not all of us have. I appreciate your initiative to save time for everyone, especially, new comers' time, like us.

Collapse
 
jankapunkt profile image
Jan Küster 🔥

Only maintainers can set the nostale label. This tenders the bot obsolete imo

Collapse
 
jankapunkt profile image
Jan Küster 🔥

Only maintainers can set the nostale label. This renders the bot obsolete imo

Collapse
 
josephj11 profile image
Joe

Shameless plug: If any of you know Python on Linux and want to be appreciated, check out AutoKey. We have a bunch of users, but currently no main developers and appreciate any help we can get.

When doing anything non-trivial, it's always better to discuss it with the project first to make sure it has a chance of being accepted. You might also get feedback to make your contribution better or more aligned with the existing project.

Collapse
 
jankapunkt profile image
Jan Küster 🔥

Not shameless at all! I know how hard it is to get maintainers joining in.

Collapse
 
vadim profile image
Vadim

But then: silence. Nothing. No reaction. No comment or review. After a month

After a month? 😂 Your expectations are too high. Some of my PR’s are open since 2019 without any feedback:

Collapse
 
jankapunkt profile image
Jan Küster 🔥

Hey Vadim! Yeah I know many repos with a bunch of PRs dating back to years and this is such a wasted effort 😔 Often the PRs getting outdated and then circle as zombies around the repo until the repo gets abandoned altogether. Maybe my PR would have received the same fate if not stalebot was there to "make it quick" 🫠

Collapse
 
carlan_wray_40c3e377d7cc5 profile image
Carlan Wray

Your expression of the experience is very relatable. In situations like this I've had to take the perspective of the maintenance of that information over time.

While it is useful and accurate now, it is part of the greater ecosystem enabling all of these various uses of the Nvidia package, and subject to external changes in terminology and naming convention.

I've taken to writing a readme in my own github detailing the specifics primarily for my own future reference, but also for anyone else looking to accomplish the same thing. Then I'm taking responsibility for that maintenance of information and keeping the package documentation constrained to its own specifics.

And, yes, I put my detailed analysis of the process to change the main drive belt on a Bobcat MT55 Mini-skidsteer loader in my github the other day because the service manual, and available videos on YouTube are less than optimal. 🫣

Collapse
 
jankapunkt profile image
Jan Küster 🔥

As a maintainer myself I can totally relate on the potentially endless efforts to keep information up to date. However, I see three things here as critical:

  • reproducible installations of software (especially important in science)
  • low boundaries to make open source contributions
  • positive communication, especially when rejecting contributions

If we want more people to effectively contribute to open source then positive communication is a must.

I would have happily closed my PRs if I would have received a response like yours.
Just imagine how many first time contributors have had this experience...

Finally, I agree with your approach of "it's my duty now to step up and maintain that information myself" as a mature and grown up way to deal with this.

Collapse
 
carlan_wray_40c3e377d7cc5 profile image
Carlan Wray

For me the emotional side of this has traditionally been the most difficult, because expressions and words represent threat or safety based on our own experiences. I've learned over time to carefully manage how I interpret communication, both from the perspective of the current reality of the other individual, and my own past experiences.

As for barrier of entry? Talk to Galileo about that. 🫣😏

Collapse
 
baanderson profile image
B-A-Anderson

Thank you for the informative post! I personally refrain from OSS for reasons like this, but I admire your approach to go directly to the source. It's something I will keep in mind the next time I find myself in a similar situation.

Collapse
 
williamwizmax profile image
wizmax8

Yo Jan! I’m totally with you on this, getting your PR shot down by a BOT?! with zero review is straight-up frustrating!

In my mind, open source is supposed to make it easy for folks to jump in, not slap you with a "automatic" rejection that stings and wastes your time. Like, come on, if they want help, they gotta have a proper setup to actually look at PRs, not just let a bot play gatekeeper. Otherwise, just keep it private, you know?
Anyway, keep your head up! Bet you’re already past this, but let’s keep pushing to make contributing smoother and sweeter for everyone. You got this, keep killing it!

Collapse
 
jahow profile image
Olivia Guyot

To someone that actually works on maintaining open-source code, this reads like an out-of-touch rant.

1st, your change is, all things considered, incredibly minor. The fact that it slipped through the cracks is far from a surprise. I agree that it has value (documentation is essential), but you need to look at that value in the grand scheme of things.

2nd, I don't think you realize how much mental load working on OSS represents. People are not idling around waiting for something to happen, and then neglecting PRs out of pure lazyness. Maintaining an OSS repo is living constantly with a nightmarish backlog, having to keep in mind dozens of changes, trying to remember what important stuff we're missing, answering questions, making reviews, and then on top of all that trying to be nice to people that are often too entitled for their own good. Also often times (not sure how it's for PyTorch) maintainers are not fully paid for this work. It might be work that people do on work hours but on the side of something else, or even outside of work hours. Maybe during the weekend, or the evening when the kids are asleep.

Having your work on OSS ignored is very common, there's wasted efforts for sure but we still have to make it work at the end of the day. I'm not sure a rant such as yours (even though it's quite mild, true) really helps anything or anyone. If you really want to give a helping hand, try making reviews, or looking into issues to find out the origin of a bug or something like that. This is helpful and will be appreciated for sure.

Collapse
 
masterdevsabith profile image
Muhammed Sabith

Yeah I've also tried contributing, but they don't even give time to check the PRs. I hate it 😠

Some comments may only be visible to logged-in visitors. Sign in to view all comments.