Not directly related to this blog post but from NixOS discourse forum, a tl;dr from another person about the NixOS drama here :
undefined
If you’re looking for a TL;DR of the situation, here it is:
Nix community had a governance crisis for years. While there has been progress on building explicit teams to govern the project, it continued to fundamentally rely on implicit authority and soft power
Eelco Dolstra, as one of the biggest holders of this implicit authority and soft power, has continuously abused this authority to push his decisions, and to block decisions that he doesn’t like
Crucially, he also used his implicit authority to block any progress on solving this governance crisis and establishing systems with explicit authority
This has led uncountably many people to burn out over the issue, and culminated in writing an open letter to have Eelco resign from all formal positions in the project and take a 6 month break from any involvement in the community
Eelco wrote a response that largely dismisses the issues brought up, and advertises his company’s community as a substitute for Nix community
That reads like someone with minor mental illness. Rambling. Evangelion. Rambling.
I clicked their resume and there's no evidence they contributed a single line of code to the project. Yet they demand the person who wrote most of it step down? Yeah.
Write your own project and manage it how you want. Don't threaten others. Do your own thing.
I'd just like to remind the passing reader that creating an open source project does not entitle you to do whatever you want and tell people to "make their own thing" if they don't like it. Open source projects are the result of a massive collaborative effort and the resulting work is the product of a whole community laboring to make it happen. Signed: someone with a major mental illness.
does not entitle you to do whatever you want and tell people to "make their own thing" if they don't like it.
He not only wrote it but made it open source so if anyone doesn't like what he's doing they can take all of his work and make their own project.
The author of NixOS couldn't have been more generous. If anyone doesn't like it, they can take all his work that he did for free and make it their own project.
I understand that and it is indeed a good thing to publicly license your work rather than keep that to yourself. Still, no matter how virtuous one's actions are, that does not mean the people who come to deposit their time and work for a project should accept everything that person does simply because they started it.
People are entitled to argue about the project they participate in, and that is even more true for open source software, where the contributions of the community eventually become much greater than any single human can accomplish. I really do not understand this mentality of "this person created it, therefore if you don't like any of their decision suck it up or go make your own fork", it is very narrow and a horrible way to conduct anything, really anything, much less a collaborative project.
I think you are missing the part where the community also gives back to the project. At some point the project isn't really the creation of the original author anymore.
Which doesn't matter because he's already given everything to the community. If they want to take it in another direction, he's already given it to them.
I think the easy answer to that is "because it is not as trivial as forking a small app that could run off of a git repo", it's a whole operating system involving a lot of infrastructure and a huge community around it. It might get forked, but people fight probably because they see value in what exists and would rather try and advocate for whatever direction they believe is best. Those who would disagree are not very different, just passive.
An even more trivial alternative is settling for "whatever the founder wants" and seeing the ability to fork as the final justification for this mentality. This is a lot less work, but also can amount to doing nothing, even if shitty decisions are being made. Even if that is your stance, you will have to fight for it. The alternative is everyone just sit idly and pretend not to have opinions. I'd much rather embrace the chaos that comes with collaboration and let it find proper processes to manifest.
I think the easy answer to that is “because it is not as trivial as forking a small app that could run off of a git repo”, it’s a whole operating system involving a lot of infrastructure and a huge community around it.
This It's just an excuse. If the authors of the open letter are active developers and reflect what the majority of the community thinks then they already have the infrastructure (or big part of it, else how the fuck they work ?) and the community behing them. Man, it would not be the first time a distro to be forked.
If I create an open source project I can run it however I want.
I do not have to create a board to manage it, there are plenty that have a single developer doing all the work, like VLC, and like Sqlite they may or may not even accept PRs. It doesn't stop it being open source.
If I do create a foundation, I can fill it with whoever I see fit. If there is a board, then generally they have the last say but there are plenty of projects, like Python used to be, where there might be a board but the founder remains the benevolent dictator for life and will stop them doing stupid things that distracts from the core project. Look at Linux, the project is mostly self maintained but Linus will gatekeep anything that doesn't meet his definition of success.
If my rules for my project is that all board members have to be a furry, then that's my right, and maybe the board of furries will vote to overturn that. Or maybe they won't. But you can't tell me how to run my project, this isn't a democracy.
The flipside of this is that you as the BDFL are not in any way entitled to community contributions. If they decide to not like your furry board, they are free to fork the project, but splitting the development efforts could very well kill both projects, so sometimes it is better for the project to listen to the community.
Of course I'm not entitled to community contributions. Just as a user, you are not entitled to me fixing your big reports.
That doesn't stop it being an open source project, and a lot of developers don't want to deal with a needy community for their own mental health. It was an itch that they scratched.
My point is not that you can't. You clearly can. And many do. The thing is, when you create your foundation that "you fill with whoever you see fit", when you faithfully believe that the BDFL will "stop them doing stupid things", or that you get to choose your board members arbitrarily and tell everyone it's not a democracy like you are proud of running it as a dictatorship, that's just a incredibly narrow and toxic culture you have set up. It's not impossible. The ethic you are posing is actually quite widespread in the world I live in, anyone arguing for it will get many around to agree, it's very assertive and rightful. Still, a shitty choice the way I see it. And from this bleak outset of things, I suppose forking is indeed the only option you have.
I'd just like to remind the passing reader that creating an open source project does not entitle you to do whatever you want and tell people to "make their own thing" if they don't like it.
It was literally what you said, even if you didn't mean it to be. And I don't think that being a dictator for your project is necessarily "toxic", I have projects that take contributions and I work on others that do not. Bikeshedding, and horrible politics, are both real things and sometimes for your own sanity, not engaging is the only option because community is not the reason I work on some tasks.
Some projects are just natural candles to moths who will talk to the projects like this:
What I mean is that no one will stop you. When you ascertain your own right to do it, it doesn't mean much that I don't believe you are entitled to it. It's pretty much common practice. That is more a semantic matter at this point, but yes I stand by that being messed up for a project the size of Nix.
I don’t think that being a dictator for your project is necessarily “toxic”
Yeah, it is not necessarily toxic. It is at a lot more risk of being, though. Even a collectively managed project will mess up and upset the community, but then there is a sense of shared responsibility and more deliberation on what to do. With a BDFL, it's just whatever. After your project reaches a certain size, that risk keeps increasing... exponentially.
I have projects that take contributions and I work on others that do not
Precisely. You see, if we take this into the context of a smaller project, specially one managed by a single person as you seem to be coming back to, that is a very different context. I don't think an OSS maintainer should be laboring physically and emotionally to meet the demands of users. That is a well-known problem there. If this person doesn't even want to have contact with the community and just ship code once an year, fine. They are just sharing things with the world at no cost. In this context, "suck it up and just fork it" is indeed the way to go.
When you take something as big as NixOS though, that can really be inverted. Now you have a very large number of people who are laboring physically and emotionally to sustain a very large project, and the original creator shifts to a very different place to. It's another discussion entirely.
I think people like you really don't understand what OSS software is.
What you don't understand is that OSS let you do what you want with the software I (an possibly others) created but not let you to dictate to me how I must run the project or what direction the project need to go.
We can discuss of course, and maybe sometimes I agree with you and sometimes not (and the contrary) but in the end I am the maintainer so I have the last word.
So no, if I create an OSS project and have a vision for it, if you don't agree I am fully entaitled to say "ok, just make your own, fork mine if you like" to you.
While this is true to an extent, from experience this line of thinking has its limits and is very easy to misapply. On the one hand, yes you can tell people their ideas do not gel with the vision of the project, and sometimes that's the right call. And sometimes doing this a lot is best for the project.
On the other hand, even if a majority of the work is coming from one person, not only does your community learn your project, they also spend time contributing to it, fixing bugs, and helping other people. I feel it's only to a project's benefit to honor them and take difficult suggestions seriously, and get to the root of why those suggestions are coming up. Otherwise you risk pissing off your contributors, who I feel have the right to be annoyed at you and maybe post evangelion themed vent blog posts if you consistently shut down contributors' needs and fail to adapt to what your users actually want out of your software. And forking, while freeing and playing to the idea of freedom of choice, also splits your userbase and contributors and makes both parties worse off. It really depends on the project, but it pays to maintain buy-in and trust from people who care enough to meaningfully contribute to your project.
While this is true to an extent, from experience this line of thinking has its limits and is very easy to misapply.
If the majority of contributions come from one person, then yeah, maybe that person should dictate everything. Else you'd miss out on all of those contributions, no?
I use Home Assistant. If reported a few bugs. Every single time I get a really friendly response. Often things are fixed quickly. Things are discussed, different opinions seem to be appreciated and considered. This doesn't mean that they'll do whatever someone suggests.
What I find funny about the one contributor who does the majority of the work situation is that it can also be seen in a different way.
Home Assistant as a project has grown like crazy. I'm unable to say exactly why that it, I must see it a great accomplishment.
At one point Home Assistant was just one person doing the majority of the work. Nowadays it is far from that. Pointing towards just one person doing most of the work ignores how it maybe could be. Meaning, maybe with "magic" the project would be crazily bigger. With a crazy amount of contributors. With maybe people paid for by companies to contribute.
That's what I find lacking in the logic as said by some comments (not by you). It's a comparison of the current status, not of different outcomes. And those outcomes could be worse, or better.
I guess it can be simple like that when you are the maintainer. It is definetly not as simple when there are many of them. Of course you can run it like that and many do, but the whole mentality is pretty limited.
My statement is not that you have to do whatever anyone asks in your project that you maintain. My statement is that a community that contributes towards a project has a say in it. You might want to ignore it, handle it BDFL-style, politely and cynically decline, whatever.
Not really about what is the absolute correct answer. Our values are clearly different. More like what I believe works best in the long term.
I guess it can be simple like that when you are the maintainer. It is definetly not as simple when there are many of them. Of course you can run it like that and many do, but the whole mentality is pretty limited.
Why limited ?. In the end I am pursuing my vision for the project.
Not really about what is the absolute correct answer. Our values are clearly different. More like what I believe works best in the long term.
I just acknowledge that at some point the vision of the author(s) and the vision of the community (or part of it) can differ and that at this point it is better for everyone to follow their vision.