Sharing the source code (under an OSS license) with its users is one's only obligation from an ethical standpoint.
If its only user is the developer themselves, then they're already doing more than they're ethically required to by sharing the code.
People must come around to this view and the 'volunteer open-source maintainer/developer' role must be left only to people who enjoy doing it. Require payment for your services otherwise.
Thank you so much OP for writing this, and I hope it resonates not just with maintainers (or potential maintainers) but to users of FOSS too. You needed to write this - specifically, the "Baseline" section, which I agree with vigorously - because too many users of FOSS consider themselves entitled to continued maintenance, support, feature development, community fostering, etc. etc.
We (maintainers) owe you NONE OF THAT. We gave you our code. That. Is. Enough.
In 2024, it's hard to get anyone to know you even exist. You can work all you want on GitHub but it likely will be a couple star project unless it trends on a site like this.
With how many developers oversell what they've built, everyone is generally skeptical with any new project. People are even more skeptical if a project mentions "AI".
Then you have VC-backed companies who have their ways to get their projects noticed. They'll get stars, articles and publicity but there is no direct correlation with project quality and funding. People use these projects, they're terrible and the cycle of disillusionment continues.
Given all that, it takes a certain resolve, belief in what you're doing and commitment to keep pushing forward. There will be little carrots along the way to re-energize you. Perhaps that is good enough, perhaps it's not. It's not for the faint of heart.
I fully agree that when an open-source maintainer doesn't want to do it anymore, it's like anything else in life. We have free will and the right to decide to move on to other endeavors. Just like one does with any other job.
“only I can do” Sorry, friends, but this is incorrect.
No, not incorrect - if you have the vision for a FOSS project then you are probably the only one that can steer it. That's not to say you should reject contributions out of hand, but no need to accept them, either.
> The project lacks enough users, which might suggest it doesn’t provide sufficient value to the community.
What "community" would that be?
> I also feel angry when I see maintainers abandon a great project without providing any explanation.
Doesn't the rest of article contradict this? What right do you have to feel angry?
> “I’m changing the world” Accept my respects, friend. Please remember to revisit my post whenever you feel tired.
What?
> Now, you are tired, busy, and hurt, so you finally decide to leave
This is all just nonsense.
>Ensure your projects can continue to operate smoothly even after your leaving.
I agree that maintainers shouldn't need to feel committed or obligated to keep working on a project.
And yet:
- it's also not reasonable to expect that anyone should use your project if it's not clear it's going to maintained etc
- OSS contributors should not over-state the capabilities of their project, or make untruthful comparisons to paid alternatives
Yes, it's unhealthy and unsustainable to feel like you're on the hook for the health of a project, which may not sit easily alongside your day job, school, life, and your own changing interests. Yes, it can feel like a community of users has high or unending expectations. But also, projects often invite and encourage users to use their cool new thing, develop processes or workflows that depend on the project, make claims that their project does everything that existing commercial project X does but cheaper/faster/with greater data privacy, etc. Announcements are made that "the much requested feature X is underway and is planned to be included in release y.z". These all contribute quite understandably to the expectations of the community.
The view that every contribution is a one-time gift and the world isn't entitled to your future time and attention only works if we're all clear and honest about that up front.
Sharing the source code (under an OSS license) with its users is one's only obligation from an ethical standpoint.
If its only user is the developer themselves, then they're already doing more than they're ethically required to by sharing the code.
People must come around to this view and the 'volunteer open-source maintainer/developer' role must be left only to people who enjoy doing it. Require payment for your services otherwise.
> It’s entirely acceptable for someone to use your MIT-licensed projects to make money without even acknowledging your name.
Well, actually...
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-- https://choosealicense.com/licenses/mit/
Thank you so much OP for writing this, and I hope it resonates not just with maintainers (or potential maintainers) but to users of FOSS too. You needed to write this - specifically, the "Baseline" section, which I agree with vigorously - because too many users of FOSS consider themselves entitled to continued maintenance, support, feature development, community fostering, etc. etc.
We (maintainers) owe you NONE OF THAT. We gave you our code. That. Is. Enough.
I've written two articles on this topic over the last few years:
https://medium.com/neuml/grow-your-open-source-project-5b439...
https://medium.com/neuml/grow-your-open-source-project-2-0-5...
In 2024, it's hard to get anyone to know you even exist. You can work all you want on GitHub but it likely will be a couple star project unless it trends on a site like this.
With how many developers oversell what they've built, everyone is generally skeptical with any new project. People are even more skeptical if a project mentions "AI".
Then you have VC-backed companies who have their ways to get their projects noticed. They'll get stars, articles and publicity but there is no direct correlation with project quality and funding. People use these projects, they're terrible and the cycle of disillusionment continues.
Given all that, it takes a certain resolve, belief in what you're doing and commitment to keep pushing forward. There will be little carrots along the way to re-energize you. Perhaps that is good enough, perhaps it's not. It's not for the faint of heart.
I fully agree that when an open-source maintainer doesn't want to do it anymore, it's like anything else in life. We have free will and the right to decide to move on to other endeavors. Just like one does with any other job.
I think there is a bit wrong with this, IMHO:
“only I can do” Sorry, friends, but this is incorrect.
No, not incorrect - if you have the vision for a FOSS project then you are probably the only one that can steer it. That's not to say you should reject contributions out of hand, but no need to accept them, either.
> The project lacks enough users, which might suggest it doesn’t provide sufficient value to the community.
What "community" would that be?
> I also feel angry when I see maintainers abandon a great project without providing any explanation.
Doesn't the rest of article contradict this? What right do you have to feel angry?
> “I’m changing the world” Accept my respects, friend. Please remember to revisit my post whenever you feel tired.
What?
> Now, you are tired, busy, and hurt, so you finally decide to leave
This is all just nonsense.
>Ensure your projects can continue to operate smoothly even after your leaving.
You are under no obligation to do that.
I agree that maintainers shouldn't need to feel committed or obligated to keep working on a project.
And yet:
- it's also not reasonable to expect that anyone should use your project if it's not clear it's going to maintained etc
- OSS contributors should not over-state the capabilities of their project, or make untruthful comparisons to paid alternatives
Yes, it's unhealthy and unsustainable to feel like you're on the hook for the health of a project, which may not sit easily alongside your day job, school, life, and your own changing interests. Yes, it can feel like a community of users has high or unending expectations. But also, projects often invite and encourage users to use their cool new thing, develop processes or workflows that depend on the project, make claims that their project does everything that existing commercial project X does but cheaper/faster/with greater data privacy, etc. Announcements are made that "the much requested feature X is underway and is planned to be included in release y.z". These all contribute quite understandably to the expectations of the community.
The view that every contribution is a one-time gift and the world isn't entitled to your future time and attention only works if we're all clear and honest about that up front.