Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Funding]: Develop a spending plan #129

Open
fricklerhandwerk opened this issue Apr 3, 2024 · 8 comments
Open

[Funding]: Develop a spending plan #129

fricklerhandwerk opened this issue Apr 3, 2024 · 8 comments

Comments

@fricklerhandwerk
Copy link
Contributor

fricklerhandwerk commented Apr 3, 2024

Description

The NGI0 grant agreements provide the foundation with financial means to sustain its operation. Concretely this amounts to a total of ca. 120 000 EUR between mid 2022 and mid 2027, which means ca. 24 000 EUR per year. This money could be invested in maintaining and developing critical code that helps keep the ecosystem afloat.

See the breakdown in an NGI-related Discourse post.

Judging from experience, the board does not have the time to make spending decisions at that granularity, which would also often involve technical decisions; not even speaking of seeing projects through to the end.

My proposal is to gather projects to be funded from that budget, including people to implement them, and present the board with a big-picture recommendation to sign off. This would happen in a similar manner as it did with the STF proposal in 2023, probably even more transparent because less rushed.

Technically the budget is already in scope of my current responsibilities under the NGI project manager contract, so in principle I could just go ahead and do it. But I'd like to have a clear stance from the board on that issue, since it's a strategic one, and ideally also feedback from the contributor community.

Budget amount

3 000 EUR (from the NGI0 grants)

Budget description

Paid time for me to do the work. We can specify a deadline, a format of the proposal, and other boundary conditions, if the general direction is agreeable.

PS: This effort could also involve planning or already doing some fundraising.

PPS: There is of course a short-cut where we simply divide the money across community teams as proposed in NixOS/teams-collaboration#2

@zimbatm
Copy link
Member

zimbatm commented Apr 3, 2024

If we are starting to receive more grants, it would be good to have a central place where people can make propositions for projects and check which grants are available. Then, have the Nix community team members help pick the candidates. Until then, I think your proposal makes sense to me.

From the board's perspective, it keeps us away from making technical decisions when picking which project is worthwhile or not. On more practical terms, we have to be able to know which project maps to which funds when receiving the invoices.

@fricklerhandwerk
Copy link
Contributor Author

If we are starting to receive more grants

This is, in my humble opinion, merely a matter of will. Someone has to put in the work, and funding will come. I probably don't have to convince anyone here that there's enough potential. It's only a question of whether we, collectively, want that enough to make it happen.

@Janik-Haag
Copy link
Member

Janik-Haag commented Apr 13, 2024

The NGI0 grant agreements provide the foundation with financial means to sustain its operation. Concretely this amounts to ca. 35 000 EUR just this year, and a total of ca. 120 000 EUR until end of 2026. This money could be invested in maintaining and developing critical code that helps keep the ecosystem afloat.

This sounds very reasonable to me, there are multiple areas in the project that are figuratively speaking on fire and reaching from just a small dumpster fire to forest fire.
Aiding them with funding can be a good way to mitigate those issues.

Judging from experience, the board does not have the time to make spending decisions at that granularity, which would also often involve technical decisions; not even speaking of seeing projects through to the end.

Can you elaborate on the granularity? As far as I know the board just barely gets Project proposals so having an official process for submitting projects would be nice.

My proposal is to gather projects to be funded from that budget, including people to implement them, and present the board with a big-picture recommendation to sign off. This would happen in a similar manner as it did with the STF proposal in 2023, probably even more transparent because less rushed.

Do you have anything in particular in mind for your "big-picture"?

Why would you want to gather the projects and people to do so if we could work on a self-sustaining process that shift's the responsibility of collecting this information to the teams/people interested in getting funding. Another organization where this appears to work well would be the FreeBSD Foundation
We can ask teams to rank their proposal by importance and then have the foundation make the call.

Technically the budget is already in scope of my current responsibilities under the NGI project manager contract, so in principle I could just go ahead and do it. But I'd like to have a clear stance from the board on that issue, since it's a strategic one, and ideally also feedback from the contributor community.

If you actually want feedback from the community you have to go and get it, just opening an issue in the foundation repo probably won't do anything.
As I already told you with the proposal for #37 if you want involvement, just do a discourse post looking for interested people.

PS: This effort could also involve planning or already doing some fundraising.

On the topic of fundraising we should try to take some inspirations from other Projects like Debian.

CC @refroni since you already had some ideas for fundraising and have it on your priority list.
CC @arianvp since you offered some help on that topic in the past

PPS: There is of course a short-cut where we simply divide the money across community teams as proposed in NixOS/teams-collaboration#2

No need for taking short-cut's here since we have enough time to take a cautions decision.


Thinking about this a bit a few Projects that would be interesting to fund:

Hydra frontend

The infra team expressed their interest to rewrite the hydra frontend in Django cleaning up old Perl code and making it easier to maintain.
Some discussion on this can be found on matrix in #infra:nixos.org

cc @delroth since you initiated the discussion and are part of the infra team.

Nix source tree modification tool

In nixpkgs doing tree wide changes is a huge pain and doesn't get done as often as it should.
I have recently learned about nixq but am unfamiliar how far the development process on it is and what might be potential pain points.
It was already used for two nixpkgs prs. 1 2

cc @stuebinm since you are the author of nixq
cc @teto since you expressed interest in writing such a tool a while ago in #dev:nixos.org

Ofborg improvements

Ofborg has sever testability issues and some other things.
IIRC it was already discussed as a project for STF but since round two didn't happen the project didn't happen either.
I assume there already is a fairly concrete proposal for this because of the STF history.

cc @lilyinstarlight

Mod team Code of Conduct (CoC) training

The moderation team has been struggling a lot with member retention and burnout.
This is in part due to uncertainty of how to enforce our Code of Conduct and has become more apparent in the light of the sponsorship discussion.
An example for such a training would be: https://otter.technology/code-of-conduct-training/
Note that this might also be an interesting coaching for the foundation board itself.

Hardware for releases.nixos.org and ceph hosting

In an effort to reduce the S3 AWS cost it was talked about self-hosting cache.nixos.org
There already have been a bunch of discussion around self-hosting and releases.nixos.org would be a good testbed while reducing AWS bandwidth cost.

nixpkgs observability tools

In nixpkgs currently we have the issue of people often repeating work already done by others, e.g. packaging the same thing multiple times.
Tools for finding issues and PRs and being able to query them directly would be very helpful here since GitHub's search already isn't the best.
And the current search experience will only become worse once we have a merge bot and can't see who merged what which could also be mitigated using a tool like this.

@fricklerhandwerk
Copy link
Contributor Author

fricklerhandwerk commented Apr 18, 2024

Can you elaborate on the granularity? As far as I know the board just barely gets Project proposals so having an official process for submitting projects would be nice.

I imagine a 3000-5000 EUR granularity, which is larger than event funding, but requires coordination to avoid redundancy and optimise for impact.

Do you have anything in particular in mind for your "big-picture"?

There are multiple avenues, not necessarily mutually exclusive:

  • Directly fund teams and distribute the responsibility, as proposed in Decide on a funding scheme for the teams teams-collaboration#2
  • Drive the process of collecting, curating, and coordinating project proposals with stakeholders, and see implementation through to the end
  • Leverage the budget for fundraising, to enable much bigger projects
  • Support independent contributors to do their own fundraising
  • Run around and grease the gears, ensuring that are happening keep happening and stay on track, and help with money where needed

As far as I can tell, that's literally management. But all of that needs to be bootstrapped: to build trust, show that it works, and grow the budget. Because obviously you can't do all of that to an interesting extent, or any of that for prolonged time, with only 3 000 EUR (assuming NGI0 compensation levels in Europe). And we have to think in terms of half-years, considering how long non-trivial changes take to get established in practice.

Strategy-wise I'd focus on securing and driving down the (human) cost of continued maintenance for critical components, as well as improving separation of concerns, so it gets easier to get a handle on what's going on in the ecosystem.

Why would you want to gather the projects and people to do so if we could work on a self-sustaining process that shift's the responsibility of collecting this information to the teams/people interested in getting funding.

I'm all for distributing responsibility, but I don't believe in self-sustaining processes. In my experience, there has to be continuous baseline availability in order to preserve and share organisational knowledge. Otherwise things will peter out or have to be re-learned from scratch over and over. And a large part of organisational knowledge is inevitably tacit, as much as I'd like to make everything explicit and independent of any particular individual. That stuff just takes time and is unexciting work that doesn't look like it creates immediate value.

In any case, even if I'm too pessimistic, such self-sustaining processes have to be grown. My inquiry is about providing the means to do that.

We can ask teams to rank their proposal by importance and then have the foundation make the call.

That would be great. But to be honest, and that's been the premise of the broader discussion for more than a year, I don't see the foundation board having the capacity to make the number of calls that would be necessary to effectively support such activities.

If you actually want feedback from the community you have to go and get it, just opening an issue in the foundation repo probably won't do anything.

In this issue, I'm not asking for community feedback. I'm asking to allocate funding to put in the time to make something of that community feedback. I can't afford volunteering continuous availability over the course of months, and I don't believe all that many people can. Empirically, this work is currently not being done. I'd be glad if it was, then I could focus on other things, so this is why I'm asking in the first place.

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/is-summer-of-nix-worth-the-money/43856/1

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/2023-summer-of-nix-program-updates/30376/18

@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/2024-06-13-nix-teams-gathering-meeting-minutes/46976/1

@fricklerhandwerk
Copy link
Contributor Author

fricklerhandwerk commented Feb 13, 2025

After discussing the matter with various people I suggest we use the operational budget for the following:

tl;dr Use the funds for 3 paid part-time contributors in admin, infra, and outreach. I offer to do the supervision.

  • Improving accounting, budgeting, and reporting

    The current setup is, in my humble opinion, quite the mess. Some of that can't go away and we just have to deal with it, but it's hard to keep track of things. We're wasting substantial human time on manual reconciliation of accounting information, part of which is due to an organically grown information architecture (my diplomatic term for "ball of yarn"). This can be fixed with additional focus time by the foundation's admin assistant @kpark955, who would work together with the board, the SC, and the teams.

  • Building organisation-level infrastructure to be able to better handle ongoing and future projects

    The other part of messiness is due to our tooling being limited in various ways. This can be fixed by

    • Setting up open source tools for various purposes

      In particular that would be for accounting, but also video calls, calendaring, private notes, etc. After years, we still rely on @Lassulus generous support allowing us to use his Jitsi and Hedgedoc servers.

    • Improving automation to aggregate or synchronise accounting data from various sources.

      It's already evident that we would benefit a lot from a server to run periodic tasks against a couple of interfaces, or calling web hooks in existing platforms. Many teams could benefit from the general availability of such infrastructure that they could hook into or build upon. I can imagine e.g. the marketing team to benefit from some automation with regards to outreach activities and data aggregation, or @nixos/org to implement some desirable abilities to communicate responsibilities and permissions (such as using GitHub team membership information in various locations).

    Concretely, and I've discussed this with @nixos/infra for the past half year, I suggest funding time for @Erethon to support the infra team as an on-call devops to triage issues, review PRs to https:/github.com/nixos/infra, and work with community teams to make sure they have all the tools they need.

  • Fundraising and partnerships

    On request of @tomberek from the SC, Kate @idabzo and I started hashing out how to improve our handling of partnerships (such as with Framework, GitHub, Google Summer of Code, etc. -- a lot of that stuff flies under the radar or tends to slip through the cracks if there's no paper trail) and improve effectiveness of fundraising, e.g. via Open Collective. The number of opportunities to get in-kind donations or other tangible benefits through partnerships is rising steadily, but someone needs to handle those contacts, follow up timely, communicate requirements to teams and results to the public. All this requires availability and time, and funding that would help improve our ability e.g. to keep operating mission-critical infrastructure.

  • Outreach

    In order to demonstrate that we're actually doing something -- oftentimes amazing work is simply not particularly visible -- we could put more emphasis on structuring and streamlining our broadcast communication. The marketing team already agreed to have a dedicated team lead with @idabzo, and funding regular activities would make a huge difference in the team's effectiveness and quality of life for volunteers. There's also useful work that could be done to keep improving the visual presentation @avocadoom has been working on in the past year.

    Both would help with fundraising and partnership activities, if we could more easily point at evidence of past success stories.

@NixOS/steering @NixOS/foundation what do we need to get an approval?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants