Introducing the "Nixpkgs Contributors" Open Collective - Empowering NixOS Growth to contributors!

Hello fellow Nixpkgs contributors and users,

Today, I am thrilled to introduce a new fundraising initiative that has been in the works for some months now: the “Nixpkgs Contributors” Open Collective: Nixpkgs Contributors - Open Collective

As many of you are aware, the Nixpkgs community has seen remarkable growth over the past few years.

This growth is a testament to the hard work and dedication of our contributors, who have continuously improved and expanded the Nixpkgs repository, making it an essential resource for NixOS and beyond. Of course, part of it is thanks to the increased presence of commercial entities considering seriously Nixpkgs as a space to build companies and products, part of it is thanks to the relentless passion of everyone around us in the community.

However, with growth comes new challenges, and it’s time for us to come together and address them strategically.

The Nixpkgs Contributors Open Collective is designed to provide funding opportunities to our active and talented contributors, enabling us to face the strategic challenges that have arisen due to the increased demands from NixOS as a Linux distribution. Our goal is to ensure that our contributors can focus on their important work without the burden of financial constraints, enabling us to maintain and enhance the quality and reliability of Nixpkgs.

Why is this initiative important?

Sustained Growth: Nixpkgs is at the heart of NixOS, and as NixOS gains popularity, the demand for high-quality packages and maintenance is increasing. We need to ensure that we have the resources to keep up with this growth.

Professionalism: The increasing professionalism of NixOS means that we need to meet higher standards for reliability, security, and documentation. This initiative will enable us to invest in tools and resources to help us meet these standards.

Recognition and Inclusivity: Recognizing the valuable contributions of our community members is crucial. By providing funding opportunities, we can ensure that the most talented contributors, regardless of their background or circumstances, can continue to participate and make a difference in Nixpkgs.

Who is driving this?

The force behind this new and exciting initiative is none other than myself, @raitobezarius. After numerous discussions with various members of our vibrant community (some of whom may prefer to remain anonymous), I’ve taken it upon myself to spearhead this effort.

For those who might not be familiar with me, I’ve been an active member of the Nix community for quite some time now. My journey includes serving as a release manager for versions 23.05 and 23.11, as well as active contributions to projects such in the Matrix platform, Tvix (TVL IRC), and several others. Some may say I wear multiple hats, and I fully embrace that assessment.

The truth is, I’ve fallen head over heels for the Nix community and have a rather persistent desire to do more for it. Over the years, I’ve had the privilege of meeting many of you at Nix community events, engaging in insightful discussions, and learning about the challenges you face.

One of the key insights I’ve gained is that our community boasts an abundance of incredible talents. However, many of these talented individuals face significant barriers to contributing due to financial constraints, demanding day jobs, and various other obligations.

A respected Nixpkgs contributor, whom I hold in high regard and who has been a source of inspiration for me, once remarked:

Employment continues to be the major barrier to scaling free software.

I firmly believe that the value derived by numerous stakeholders from the public goods that are a part of Nixpkgs is immeasurable. Consequently, I believe that it’s high time we started exploring avenues to provide stable financial support to our exceptionally talented community members.

While my ultimate dream is to witness community members becoming self-employed and fully empowered to dedicate themselves to Nixpkgs, I understand that this vision might be a bit ahead of its time. Nevertheless, I am eager to initiate a process that can, even in its early stages, improve the overall atmosphere for contributions. This, in turn, will lead to a better Nixpkgs for all, including our valued end-users!

How can you get involved?

Contribute: If you are an active contributor to Nixpkgs, consider applying for funding through the Open Collective. Your work is invaluable, and this initiative is here to support you.

Donate: If you’re not directly involved in Nixpkgs but want to support our cause, consider making a donation. Every contribution counts, and your support will help us achieve our goals. Strategic goals have in mind how to unlock frictionless contributions for committers and more, so your contribution will definitely end up helping your own needs.

Spread the Word: Share this initiative within the Nixpkgs and NixOS communities and beyond. The more awareness we generate, the stronger our collective effort becomes.

Get Started Today

You can learn more about the Nixpkgs Contributors Open Collective at this page: Nixpkgs Contributors - Open Collective, including how to apply for funding by contacting me. Please help me to ensure that Nixpkgs can still continue to thrive in a sustainable fashion!

If you would like to be administrator or have any role (accounting roles / verification roles) in this Open Collective, please reach out, I am obviously open this. :slight_smile:

Moving on, let me present you the first “target” and project I am excited to announce.

First goal: OfBorg!

Allow me to shed light on the first project that we will embark upon as part of the “Nixpkgs Contributors” Open Collective initiative. This project holds immense potential to enhance the efficiency and reliability of Nixpkgs, and it centers around the critical area of OfBorg development and testing.

OfBorg, for those unfamiliar, is the unsung hero of our Nixpkgs ecosystem. It plays a vital role in automating various tasks, including testing pull requests, evaluating build results, and ensuring the overall quality of our repository.

Unfortunately, you can see that pull requests in the OfBorg project are hard to land, as it is hard to even test OfBorg locally and build a software engineering story around this crucial tooling.

Moving on, I will introduce a talented community member for whom I have hope to give her the opportunity to change the situation in collaboration with the rest of the community.

Introducing Lily Foster

I am delighted to introduce you to Lily Foster (@lilyinstarlight), who has shown exceptional dedication to the Nix community through her OfBorg contributions and her work in taking up the amazing work initiated by @winter in the Node.js nixpkgs ecosystem. I could go for a long list of her achievements, but I think you already used her work in multiple occasions, without knowing it!

Lily brings a wealth of experience and enthusiasm to the table. With a deep understanding of our community’s needs and a strong desire to contribute, I believe she is ready to take on the challenge of unblocking OfBorg development and testing.

By working closely with our esteemed OfBorg maintainer, @cole-h, Lily aims to ensure that OfBorg continues to serve as a dependable backbone for Nixpkgs. Her efforts will directly impact the efficiency of our pull request testing, the reliability of our builds, and the overall user experience for Nixpkgs contributors and end-users alike.

As Lily begins her journey within this project, I look forward to witnessing the positive changes she can bring to our community. By supporting her and this project, we collectively invest in the future of Nixpkgs, strengthening its core infrastructure and ensuring the continued growth and success of our community.

Stay tuned for updates on Lily’s progress and more exciting projects on the horizon, maybe in the Node.js landscape!


Thank you all for your dedication and hard work. Together, we can face the strategic challenges ahead and continue to build an exceptional Nixpkgs repository, that is respectful of committers, contributors, end-users and everyone!

68 Likes

I am excited by any initiative in the direction of more automation, including this one.

The second of three bullets in the About section of the linked page is:

Enhanced Contribution Experience: Another crucial aspect of this Open Collective project is implementing changes that enhance the experience of working with OfBorg. This includes streamlining the development environment setup, improving documentation, and providing clear guidelines for contribution. These improvements will make the process of hacking on OfBorg more enjoyable and productive for contributors of all skill levels.

This is all important, but I’m not sure the most important need is covered by this project. The most important need in my opinion is the need for a product manager to maintain a roadmap for OfBorg and the list of OfBorg issues. The person filling this role needs to be able to see how the product is used in the community and understand the impact that various design decisions have had or are likely to have. They need to be able to authoritatively say that a proposed feature is in or out of scope for the product, so that someone reviewing the list of issues can pick one to work on and run with it without finding out after the fact that the change would not be accepted.

This community is brimming with developer talent, and maybe more money would bring even more developers to the table. But when all of those brilliant developers see a thing that could be made better, and ask each other whether it’d be okay to do, and there is nobody in a position of authority to say yes or no, all they can do is shrug at each other.

Is Lily going to be filling that role, in addition to the other important work being described here? If not, who will own the product vision for OfBorg so that developers who aren’t part of [I don’t even know what group of people to identify here, and isn’t that revealing?] can effectively contribute?

6 Likes

Excellent point!

In governance workshops at NixCon [1] [2] [3], we mentioned the need for strategic views in nixpkgs, not only for nixpkgs itself (its infra, etc.), but much more IMHO.

While I do not have a good answer yet for strategic decisionmaking framework in the big picture of nixpkgs (I know this is a question some folks are working on at the moment), I can answer for OfBorg specifically and more generally Nixpkgs CI.

I believe that currently OfBorg has blatant issues which have been shared in some hidden roadmap which can be derived by the trail of unmerged PRs and issues which are open for a long time and the frustration that have been expressed in development channels by active contributors.

For those, I believe we have a consensus and an idea of prioritization on how to get there, remember that it is also about unblocking and unlocking volunteer contributions.

Moving on to the question of “feature work”, I believe that the active Nixpkgs contributors will be there to drive discussion on new feature and propose whether they feel comfortable putting efforts on that, we have been there, and we have been doing that even in volunteer contexts. I believe that if money is involved, this should very slightly alter the equation, but not that much.

Also, this initiative is not a replacement to hire a contractor (which could be as well one of the “owner” / maintainer of a project, e.g. OfBorg) to drive client feature work. It focues on strategically preventing collapse of our public goods in front of uncontrolled growth (# of packages, # of users, size of cache, build capacity, etc.) which would seriously hamper the ability of volunteers to perform their work in a frictionless way.

As a result, I believe that the “product” management of the required products for Nixpkgs Contributors is already self-driven and working fine by existing active contributors, the issue is that there’s few meta awareness / meta discussion on organizing efforts on tackling those. And we do have efforts in tangible things like infrastructure (cache, build, CDN and extra services) with “roadmap” of where we want to go: Issues · NixOS/infra · GitHub and we do organize ourselves in a way to enable this work.

Maybe, put in another way, I trust that other nixpkgs active contributors who will join me in maintaining this initiative, will be able to fulfill this role, not only for OfBorg, but for many other projects we know we need help for.
And of course, I will ensure this role as long as I am administrator of this initiative, but I trust the judgement of my peers (i.e. fellow active contributors) and I am always reading the feedback of many users, like in Where did you get stuck in the Nix ecosystem? Tell me your story and this is something that has an impact on steering the strategies.

I admit that given the critical situation, some decisions are obvious I believe, maybe in 1 year, we will be in a much better place w.r.t. to contributors, and we will require “authority” to do calls, at this point, I suggest we stay on the top of this issue, and we ensure that we will be able to face it when we will come to it.

To conclude, I would say that Lily has definitely the knowledge to execute a vision of OfBorg which would benefit a lot of folks, though, I will not speak in her stead regarding her will to continue maintenance of OfBorg in one year for any reason.

If we get the right amount of money, i.e. paying someone who can actively work on OfBorg in a serious countenance, that would be a totally different story, at that time, I think we would probably make the paid person responsible for leading the product management in collaboration with other nixpkgs contributors and ensure the paid person still contribute to nixpkgs in a way that enable them to understand the strategic pain points related to that ecosystem.
I would be excited to see this scenario become reality faster than expected.

Overall, this is an interesting point for which I should probably write up inside the Open Collective description, thank you for raising it and I hope I answered your concerns.

[1] : Nix Platform Governance Workshop Preparation Meeting #2 - HedgeDoc (search for “strategic”)
[2] : NixCon Governance Workshop - #9 by fricklerhandwerk (search for “strategic”)
[3] : NixCon Governance Workshop - #10 by fricklerhandwerk (search for “strategic”)

2 Likes

Thanks for the response!

If I understand you correctly, you seem to be implying that the set of long-lived open issues and PRs for OfBorg, combined with the current level of attention given to those sets by the community of ‘your peers’ (committers? you’re clearly some sort of leader but I don’t know what the set of people in your peer group is), is good enough for your purposes.

I want to get super-specific: earlier this year, I asked on this Discourse for pointers on how I could contribute to automation projects. ‘Go work on OfBorg’ was one of the proposals. I picked off two small, beginner-looking issues from OfBorg’s issue list. The second of these was Build unfree packages · Issue #194 · NixOS/ofborg · GitHub; I actually picked it because it was linked from a PR that I had been looking at while researching some work I was doing for the nixpkgs-update/r-ryantm infrastructure, so I knew it was still relevant to at least one user. In June, I wrote and tested the PR. The basic concept was negatively reviewed by some people who seem like they’re ‘your peers’, so I closed it.

Two weeks ago, I went back to the original issue and commented that it should be closed because it isn’t something that ‘your peers’ (sorry if this looks hostile; I really just don’t know what to call you all!) think should happen. It’s still open. Edit: Just closed.

I moved on to focusing exclusively on nixpkgs-update infrastructure as a result, because if whoever has the keys to the OfBorg issue list doesn’t bother pruning it of the things that shouldn’t be done, there’s no way I’ll be able to pick the right issues to work on from it.

Was I just unlucky, and usually things go more smoothly than this? Or is this representative of the process you think is good enough?

3 Likes

I think “peers” represent indeed a group of active committers, but some non-committers are also involved and stick around.

In this instance, we are looking at ways to decrease drastically the amount of time sinks that committers and to a larger extent some reviewers are going through.

Well, I am really sorry for your experience, as you can see, someone who contributed trivial commits to OfBorg gave their opinion on this thing without taking into account the other issue, it’s not the first instance this person has not taken the time to ponders the situation and rushed out to impose their conclusion on things.

For example, @JulienMalka who is someone I work on a daily basis in real life, suggested another way to look at your issue, but it seems the deed was already done.

I would say in general that this is a good example of something that can easily be answered by me as a product manager (debatable), if you want:

I believe that the PR is trivial and is a good addition in general, but OfBorg is not in a sufficiently good shape to accept this PR without evaluation of its impact on the build capacity, which should be reported inside this PR as data. So actually, what is, a seemingly trivial PR, is definitely not IMHO.

We can press ‘merge’ and have the consequences, but they will be very problematic for active contributors like us who are dealing with OfBorg having a too large queue, stopping us in our tracks.

What is even more annoying is that there’s a political dimension to your PR, it has not been discussed, yet I imagine, but if we think from a resource prioritization standpoint, it does not make sense to build unfree packages rather than let’s say exotic platforms like Musl in our CI.

Finally, there is the legal dimension of your PR, what does it mean to build this contents and throw it away — we already had overzealous people coming at us for the fact we were rebuilding their free (!!) software with our CI, I cannot imagine what annoying extra incident it may create with unfree software if it was too “public”.

Though, unfree package in CI is a valid concern and requires a more involved focused group to determine where does the project stand in maturity to support or not an action in that area. At the moment, I believe it’s unrealistic before we secure legal means for the project (because if someone wants to fuck around, they will be able to, and we don’t want to find an IP lawyer on a last minute). At least, that’s my 2 cents.

So I apologize, this was in fact a very complicated issue to deal with and requires coordination with the stakeholders of our legal existence, i.e. the Foundation IMHO.

Here’s the interesting fact: no one has really the keys… OfBorg is in a very precarious position.

I believe what was lacking is that what I have been trying to formalize in terms of “strategic goals inside nixpkgs”, if such a thing would exist, it would take the form of a large big picture set of goals which could be detailed at the issue level we have to take care of, to contribute in a larger form to the project.

And I think you had a mix of:

(a) picking the wrong “easy” issue
(b) picking the wrong project: OfBorg is a special case among all cases, even Hydra is kinda different (!!)
(c) not escalating to more folks (committers/reviewers/any relevant person, you can check the infra team for example for that) who may have a different opinion: committers do not monitor the OfBorg repo and probably who does probably miss stuff that is not directly addressed to them (*)

Nevertheless, it’s not an excuse for saying that the process for you, from what I am seeing, was awful. And I reiterate my apologies, this is exactly what I want to curb.

This Open Collective is about bringing the financial means to curb this, and it sprinkles a bit of that prioritization vision, you will also get better contribution experience in such projects because you won’t have drive-by random contributors (no matter how much prolific they can be, this is irrelevant) who are not necessarily involved in OfBorg operations, which is not a bad thing, but I feel like you deserved the answer I put above on the unfree topic.

Onto the “what can I pick up as a beginner task to help around”, this is a hard one. The way I see it is that we need to get experienced community members to take the time to reduce the barrier to entry to contribution to our stuff, to open it up to people like you and help you towards making satisfying contributions if you want to.

But doing so requires addressing the strategical issues I am talking about first. I am not against doing both in parallel, but I am laser focused on strategical issues if you will because I am convinced this is what put an end to those situations.

I may be wrong, and I would be gladly proven wrong if my vision of the situation is partial.

Either case, I apologize if you feel like there’s a “peer” group that is blocking access to contributions, this is a subject that interestingly @JulienMalka brought regarding the existence of a “core group” at NixCon (Julien: "NixCon feeback" - NixOS Paris server). I don’t want this for the NixOS community, and I am dedicated through those initiatives to lower the barrier to entry and lower the requirements to work on anything in nixpkgs and increase diversity of our community through that.

This is my commitment in my dedication through what I do, i.e. not only driving my changes as a nixpkgs contributor, but ensuring that you get to feel welcomed in this community and understand how to navigate through all of this without feeling there’s a group of folks that gets to decide unilaterally and you have no say in this.

5 Likes

Sorry to continue to monopolize the thread; I hope this is helpful for you and not just a thing to deal with.

While I did find my experience annoying, and I do appreciate your apology and your explanation of what you think about the issue, none of that was really what I was hoping to talk about. This is the thing:

The strategical issues you’re talking about—some of them are global to Nixland, and I don’t expect them to be resolved any time soon. Some of them, I think you’ve described in your Open Collective blurb:

This includes streamlining the development environment setup, improving documentation, and providing clear guidelines for contribution.

I agree that we need to get experienced community members to put the time in to opening up OfBorg for more contributors. I’m concerned that this time will be focused on devenv stuff, documenting, and writing CONTRIBUTING.md. Those are all good things to do, but if all three of them were done at an excellent level, I would still have had the experience I had as a new contributor. What would have made a difference is someone who could have done any of the following:

  • Proactively monitored the OfBorg issues so that there was at least a comment on the original issue indicating that this was a controversial idea, if not outright closing it for the reasons you describe
  • Stepped in when the PR was submitted to offer an authoritative decision on what to do about it, instead of leaving me to guess whose opinions are just opinions and whose carry the weight of responsibility
  • Had their name(s) in some prominent place as the person to escalate to for questions about what is in scope for OfBorg—I accept the feedback that I could have escalated harder, but arbitrarily choosing a name to ping (cole-h, I guess?) runs the risk of accidentally pestering the Prime Minister of all of Nixland with the issue you wanted to report to the Mayor of OfBorgtown

That’s why I’m saying OfBorg needs a product manager. If this person exists, I agree that writing CONTRIBUTING.md and putting their contact info in there is among the next most important things to do. But if they don’t exist, then I am concerned that new contributors will continue to have a similar experience, just with the perk that they will be able to test their ill-advised and ill-fated OfBorg PRs in a dev container.


Just to close this off:

I really don’t. I think the center of the NixOS community is plenty welcoming. Some PRs are going to be rejected and I don’t think that’s bad or take it personally. My problem is with how the governance structure is so opaque that I don’t even know who’s in it. The NixOS org contains 2,559 members right this second, and I’m one of them, so obviously that means something between zip and squat. The set of committers for Nixpkgs is smaller, but I don’t know how much smaller because I don’t think there’s a way to see the list anywhere, and as you said, some people who matter aren’t even committers. Whoever the core people are, they are all stretched so thin that you can maybe get one comment a week out of them on one of your issues or PRs, and if they stop responding you don’t know who else to ping. I don’t think this is because they’re blocking the rest of us from doing anything; I think they’re just crushed by the size of it all and doing their best.

Nixland-wide governance is clearly a current topic of conversation—I’ve been lurking in most of the relevant Discourse threads, I think—and just as clearly not easy to solve. But maybe for a smaller initiative focusing on OfBorg, we can cut through and establish some actual leadership. Is that you, then? Are you the Mayor of OfBorgtown?

5 Likes

Elephant in the room:

Today, I am thrilled to introduce a new fundraising initiative that has been in the works for some months now: the “Nixpkgs Contributors” Open Collective

Why is this, yet again (like: Nix Community, Nix <3 macOS, and other significant core parts of the Nix ecosystem), not driven by the NixOS Foundation?

I’m not criticizing your choice and initiative here - this seems like the most productive way to get things moving. But if every single person who wants to get something done in the Nix ecosystem has to fork out of the main funding structure for the project, there’s a massive problem that needs to be addressed.

11 Likes

My question as well. Follow-up: How do you defend this growing resource that the OC is hopefully going to be against pressure from companies that often contribute “solo adventures” with less than optimal community synchronization? For example, let’s say Determinate Systems put a big bag of coins in the OC’s lap, and they suggest it to be used to improve their particular favourite toy of the day. (Good PR for them.) Can you ensure that the money ends up where the OC wants it to go, no matter the external pressure?

In general, what’s your process to decide what to spend the money on? We know we can trust you personally, but that process needs a bus factor higher than 1.

1 Like

Yeah, you can only see it if you’re in it weirdly. It’s around 200 people currently and doesn’t grow more than a handful of people a month.

some people who matter aren’t even committers

A lot of them actually. The only thing that really differentiates you from a committer is that they’re allowed to press the merge button while you aren’t. We’re experienced with Nix/Nixpkgs in general, yes, but we don’t know about every nook and cranny of Nixpkgs and certainly aren’t familiar with every language/framework or package.

If you can demonstrate the amount of QA you have done and ideally have another person do a bit of QA, that’ll have your PR much closer to merging than having a random committer looking at it.

If I come across a PR about a package or framework I’m not familiar with in the slightest, I likely won’t even look at it.

If I see that it’s approved by someone (non-committer or otherwise) however, I might open it. If I see there has been sufficient QA, I might even just merge it.

That is certainly part of it but I also what I mentioned above. Each committer only knows a fraction of packages well enough to immediately merge a non-trivial PRs touching them.
If you’ve refactored a package in your PR and you can get another user of that package to come in and say “I’ve tested functions x, y, z and they all still work for me”, that’s extremely valuable as it increases the amount of committers comfortable to merge that PR has from perhaps even as little as 0 to at least a couple dozen. (Add an approval tag in that case so we can find such PRs!)

So to reply to

Anyone who can demonstrate that the PR is good. A user of the package would be perfect but someone with experience in the ecosystem is also great.

I can’t speak for Raito but, gathering from his replies, I don’t think that’s in scope for this initiative. I think the goal is to get Lily some time and compensation to do technical improvements to ofBorg.

@rhendric you raise perfectly valid points. From my experience, we certainly need (and lack) both: a clear product vision for each subsystem and their interplay and substantial amounts of work done to implement it. Often this can be covered by the same person, sometimes not. It’s an issue of personality and the specifics of the project.

I also agree with the assessment that the core of the ecosystem is too damn big for the number of people actively working on it. Where authority is in place, we lack the time to onboard new owners even if there are candidates. Where no authority is exercised, it‘s delicate. And even if we were to follow the practice of giving full permissions for abandoned code to anyone who asks, for vital components it would be a responsibility that requires significant time to take on without help of an experienced mentor.

Therefore I wholeheartedly support @RaitoBezarius‘ effort to make such a transition possible financially. Yes, this is just the beginning and will require more specification down the road. But there is enough uncontroversial work to do right now, so overall this is clearly beneficial. Any progress is great news!

Why the NixOS Foundation doesn’t take care of it? The foundation board is fully booked with more urgent responsibilities. I know first hand, because I have to pester them with all kinds of stuff for the Summer of Nix work I do on the foundation‘s behalf. All members have full time jobs or run companies, and they can’t be paid for their board membership. In this situation it’s the right thing for the community to self-organise, and we have to trust well-known people to do the right thing in absence of more formal processes.

Yes, it would be ideal if we had a dedicated person working on such things, on the foundation‘s payroll, and this is exactly what I and others proposed in the linked governance discussion, not for the first time. It would of course raise the exact same questions around trust, but they’d be a bit easier to answer with a mandate.

5 Likes

As I call in the initial post and I received proposals recently, my goal is to grow the set of administrators to a set of active nixpkgs contributors.

Ideally, we should make it clear that it is first and foremost about improving nixpkgs machinery and only about that.

I would expect that administrators who will join me (and when this whole initiative may end up under the umbrella of the Foundation, etc.) will abide by this culture because it is about getting help to help more people regarding the various areas where we have subpar investment.

Therefore, the process to decide what to spend the money on is completely grounded in the experience you derive from being a (very) active contributor in nixpkgs, i.e. involved in daily operations, you see what’s going on with staging, you see what’s going on with Hydra, OfBorg, and even GitHub itself!

We depend on a lot of external projects for our work: Zero Hydra Failure is an external project, reviewing tools for staging is an external project, bots to add “first time automation” or “approvals” tags are two external projects (which are hosted on internal infrastructure, thanks to the recent efforts of the non-critical infra team!).

Active nixpkgs contributors are also involved in the support channels, e.g. the big “Nix / NixOS” matrix channel, helping a lot of folks, we have some contributors who are extremely active there. There is a strategic need to improve our ways to help people and avoid exhausting our own contributors with re-answering the same question because we were not able to build the right platform to improve how we help folks and improve how helping folks help folks.

I hope by those examples, you can see the trend of the process to decide how to spend the money on.

When someone comes around and complains about how nixpkgs is too slow to merge things or how they are concerned that we have too many PRs, too many issues, etc.

What I hear as an active contributor is that we don’t have the right automation to select automatically reviewers for a given PR, we don’t have triaging tools (maybe external to GitHub, we don’t need to tie everything to GitHub and I support mirroring GitHub data for our own good!).

This way of performing systematic identification of root issues and attacking them as long as they are in the range would be the process I would like to erect as the “culture” for this Open Collective.

In exchange, I would like the contributors’ community to be empowered on to scrutinize and hold us accountable.

Note that direct initiatives for end-users (i.e. non contributor community) can exist also but are semi out of scope here, we believe about working for the nixpkgs contributors first because we believe this is what will achieve the maximal utility for everyone. I do not wish to substitute myself to existing efforts in documentation, learning journeys, etc. which are also very important and have another angle at looking at things.

If you have ideas on how to make this more sustainable in the long run, I am interested. I know there is a governance matter, which is non-trivial, hidden under this initiative. I am not hiding it, I want to bring it with the governance workshops we initiated at NixCon, and we should continue in the future.
We should also go deeper with questions pertaining to the relations between commercial entities and nixpkgs contributors.

I will take the opportunity to not make it only about Determinate Systems, if you will. If Flox, Determinate Systems, Cachix, Tweag or any commercial entity (list non-exhaustive does not say anything about the previous entities I cited.) would put a big bag of coins in the OC’s lap and suggest anything.

This would not change the decision-making process I established previously, people contributing to that fund should operate under the expectation this will be used in the ways that are seen fit by nixpkgs contributors, if those previous commercial entities have very active contributors and drive the discussion in those matters, that is fine by me too!

This fund does not replace contracting someone to improve their favorite toy of the day and if big commercial entities does not see the value in contributing to that fund, that is fine as well.

A more important thing I would like to bring forward in the future is the concept of sane relationship with community member in the space w.r.t. to our finite resources (cache, build and CDN, to say the big 3).

If we consider that commercial entities are part of the community, and they bring also their own community, it is important for sustainability that this initiative gets funded otherwise it would not be surprising to me that we would see volunteers trying to increasingly overstrain themselves, resulting in more and more burnouts, more friction and ultimately instability of our operations.

Some may even consider forking nixpkgs because of the resulting un-sustainability and I do not want to downplay those existential issues of our community that could result in fragmenting our own community in face of our inability to prioritize strategical issues.

I hope that commercial entities that will read me, for some — who knows me on a personal level, understand the message I am sending here: I believe you and we all gain from establishing an interface relationship between the social object called nixpkgs and investing into stabilizing the platform you are building on via this initiative.

I hope I was clear enough regarding this very important subject, don’t hesitate to reach out to me in private or publicly if you feel you have concerns you would like me to address publicly.

Furthermore, I am extremely open to all feedback, including negative one!

2 Likes

Put also another way, I do not plan to be mayor of OfBorgtown, but if we need a bootstrap mayor of OfBorgtown for a temporary lifetime until we find a strategy to get the final mayor, we can discuss this.

The problem I see is that I don’t want to put mayor of Xtown for all X that exist in nixpkgs, there’s too many and that would create complications IMHO.

I am torn and wonders every day if we should have a technical committee that could be empowered to create mayors of Xtown or be bootstrap mayors of Xtown.

I feel like this technical committee already exist in the form of persistent nixpkgs contributors who wants their opinion to count based on their experience and their persistence.

Furthermore, I do not know what is the best governance method here, I do not have that answer yet. That’s why I am not thrilled about a form of mayor of Xtown right away. I would like to organize more governance efforts to reach the point where we can discuss techniceal leadership and see how we can find a common ground on this.

Until then, the best we can have is temporary technical leadership and sometimes some project have none, I believe this is the case of OfBorg and the case for Hydra for example.

2 Likes

As the Nixpkgs Architecture Team lead, I fully support this effort! The Nix community is really struggling with a lot of problems that we can’t expect volunteers to fix, so any sort of effort to get people funded to work on these is a great step.

Focusing this on Ofborg specifically sounds great to me, since it’s a core part of the Nixpkgs automation infrastructure, saving us a ton of work. I also believe that more automation is the key to fixing Nixpkgs scaling issues and am working towards this in the Nixpkgs Architecture Team.

I can also vouch for @lilyinstarlight, she recently helped me with an odd OfBorg error and was able to quickly figure out the problem and fix it!

I’m also interested in taking on an administrative role for this to help out.

Edit: I’ll also personally contribute 50$ per month for this!

14 Likes

Ok, but I still read this as “there will be a group of volunteers, including myself, and they will decide how to spend the funds as they see fit”. Which is maybe not the worst way to manage it, but I would have loved to hear about e.g. community surveys, interviews, polls/forums/processes where community members can propose something, and so on.

Also it would be relevant how transparent the decision making process is. Will administrators just make a decision, or will someone estimate efforts and benefits, discuss these estimates before committing, and so on. I don’t want to create bureaucracy for this, but I also don’t want to have dramas like “this evil OC admin took the funds for my favourite project away”.

Let me attempt to work towards an answer. I’m not familiar with https://opencollective.com/, but it seems like one can support individual projects. So if there were not only an ofborg project, but also a, say, nixos-hardware project, I could decide whether I wanted to support those who work on ofborg or on nixos-hardware. Is this as fine grained as it gets for a community member to influence where funds go?

EDIT: Grammar, wording

1 Like

Right, but there’s no process at the moment that is dedicated or addressed to nixpkgs contributors, we have many processes for end-users, community members, etc. in many subjects. But no one is here collecting the data for nixpkgs contributors, building such a process is not totally out of scope, but is very hard. How would you do it?

Would you ask broad questions: what do you want to see? — how do you analyze this in a way that falls in the prerogatives of a “nixpkgs contributors” collective, for example: “it would be good if someone fund further the graphical installer”, this could be a valid community feedback, but this is a hard question: is the graphical installer holding nixos back for its daily operations?

In that sense, I believe that the feedback you want to provide as a nixpkgs contributor comes from a shared consciousness of what is blocking all of us (:= contributors) and as a result, all of us (:= everyone).

Right, I think there are multiple levels of decisionmaking:

  • opening new projects
  • tasking/introducing community members
  • approving “expenses plan”

I agree, I would like for the decision-making process to be transparent. I think we are still in the bootstrapping phase, so there’s a lot of “here I did this, let’s go”, but we do want to stabilize this right away.

As an administrator, the model I am thinking of is to create a venue to discuss: (a) new projects and prioritization (we don’t want to create all the projects at the same time, otherwise, we will just divide the fundraising efforts atm) (b) providing an expense plan containing necessarily exploration and unknowns (such are the things in nixpkgs, their state is unknown and requires re-investigation which should be paid as part of the work) (c) approving expense plan too

I agree I don’t want bureaucracy for this, I don’t want drama neither, and maybe it’s controversial a bit, but this initiative is direct targeted to contributors, so I would like to have feedback and inputs from contributors, sometimes active contributors as a priority, because those are the folks who are performing the daily operations. I would not discard opinion from a non-(active)-contributor, but I would not attempt to build consensus based on them, to be clear. Furthermore, I would enjoin anyone entitled to give their vision to join an active contribution role to also understand the situation.
Providing a solution to non-(active)-contributor feedback can come after we solve what I believe to be a lot of their root issues or can happen in parallel, my strategy here is to get a maximum of hanging fruits and move on to harder targets later.

Therefore, I would encourage again being strategic about how make decisions in order to avoid paralysis analysis or stuck consensus.

There could be definitely a nixos-hardware project (and honestly, it’s on my list!), though, I guess the important concept is the concept of “requirements”, certain projects maximize their funding opportunities when they are met with a certain number of requirements, e.g. privilege access, nixpkgs is ready, infra capacity is ready, etc., etc.

Someone has to come up with those requirements and analyze when it’s the right moment to launch a new project taking in account the existing ones as to not divide too much the attention and create too low stipends that will not create a big enough incentive for our community member to work on.

So here, the question would be: is it time to open a new project in the area of nixos-hardware? I believe the answer is no, as we are still figuring out a lot of stuff with this idea right now. In addition, we have lower hanging fruits for nixos-hardware that are still in reach for volunteers and people involved in the ecosystem of that repository.

How does a community member suggest a new project? I believe Discourse/Matrix is the right venue to talk about it.

In the next days/months (when I get more time in $LIFE), I would like to work on a “project proposal template” which enables us to discuss new projects in a GH issue or whatever and the idea is that it should be maximally frictionless while taking into account those subtleties. Though, even if a project has a green light, it does not mean this is the right time to post it as you can understand it. There’s also a question of scheduling and to pursue more fundraising in different forms, e.g. grants, potentially interested foundations, etc.

This is extra work that someone has to do and that’s why it may appear that everything is insufficient or imperfect, I apologize in advance. I think we ought to be… strategic (I say this too often but this is really the key) on when do we run a project, what do we fund, what do we choose, etc.

Investing in the right balance between ambition, sophistication, interesting byproducts, etc. is a task that requires, IMHO, a high level of exposure to the nixpkgs contribution ecosystem and its constellation.

This is the ambition of this Open Collective.

1 Like

Makes sense. Then the only remaining wish I have right now is that the OC has some kind of transparent, low-barrier “inbox”. For example a subforum or a thread on Discourse. There, people could come and discuss potential projects, or ask questions.

I’d assume it’s this very thread right here.

1 Like

Probably :slight_smile: some good strategical projects to consider for the future might be a lot of things CI related, like matching reviewers, code owners, and maintainers, or merging trivial PRs fast. Someone needs to write Typescript I assume, or find the right kind of CI bot, and that’s the kind of work people shy away from, because we all want to write Nix, right? :wink:

1 Like

I have been discussing and working on this on and off for the last year. :slight_smile:
I think someone may release something interesting by the end of this month possibly!

1 Like