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

Define the role and organization of the foundation #32

Merged
merged 8 commits into from
Aug 4, 2023
14 changes: 3 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,7 @@
# NixOS Foundation

The NixOS Foundation's role is to support the infrastructure and development of
the NixOS project as a whole. The exact nature and scope of this might vary
over time.

## Current scope

* Maintain the core infrastructure (Hydra, binary cache, ...)
* Pay for projects that improve the open source nixos ecosystem (security patching, a designer, etc.) but not do private work
* Hold various properties related to the project (Internet domains, ...)
The NixOS Foundation's role is to support the infrastructure and development of the NixOS project as a whole.
The exact nature and scope of this might vary over time and are described in the [role and responsibilities](./role_and_responsibilities.md) document.

## About the foundation

Expand All @@ -33,7 +26,6 @@ voting powers.
* Graham Christensen (@grahamc)
* Jonas Chevalier (@zimbatm)


## Contact us

In order to bring items to our attention, you have the following mechanisms
Expand All @@ -49,4 +41,4 @@ available:

# Impressum

[impressum](impressum.md)
[impressum](impressum.md)
45 changes: 45 additions & 0 deletions role_and_responsibilities.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Roles and responsibilities of the Foundation and the Foundation board

## Role of the Foundation

The foundation is the legal entity that backs the project from an organizational, material, and social point of view.
thufschmitt marked this conversation as resolved.
Show resolved Hide resolved
Its goal is to set the Nix community up for long term and scalable success.

This means:

- Ensure the core infrastructure of the ecosystem
- Provide the necessary technical infrastructure (GitHub, Hydra, Binary cache, etc..)
- Provide the necessary financial and legal support
- Register and protect the trademark
- Handle the funding of the community, by both accepting external funding and by redistributing it where needed
- Provide the necessary human infrastructure
- Host and empower the community teams
- Provide a conflict moderation and resolution path
Comment on lines +15 to +17
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't exactly match the rest of the mission statement. The foundation cannot provide human resources, but support and arrange for people to get together. Conflict moderation is the moderation team's job, and you already covered the escalation capacity (which would be part of the board's job) at the bottom.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, I think we mean more about an escalation route if all other recommended/defined channels fails

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The foundation cannot provide human resources, but support and arrange for people to get together.

Yes, but it can (and I believe should) give the moderation team legitimity to do so. Would

Suggested change
- Provide the necessary human infrastructure
- Host and empower the community teams
- Provide a conflict moderation and resolution path
- Provide the necessary human infrastructure
- Host and empower the community teams
- Ensure the existence of a conflict moderation and resolution path

be better?

- Ensure the necessary security infrastructure

- Support the growth and functioning of the community
- Represent Nix in the world
- Create and maintain partnerships
- Organize or support Nix events (NixCon, Summer of Nix, hackathons, …)
- Maintain the community in a healthy state
- Enforce some needed rules to keep the community an open and welcoming place (with or without a code of conduct)
thufschmitt marked this conversation as resolved.
Show resolved Hide resolved
- Run regular community surveys to take the pulse of the community and share back the results
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Run regular community surveys to take the pulse of the community and share back the results

This is the marketing team's job.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course, but everything here is some team's job. But that doesn't mean that it's can't ultimately be the Foundation's responsibility (the same way that running the infrastructure is the infra team's job, but the Foundation is accountable for it).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe put it a bit more generally: gather data to take the pulse of the community and communicate the results.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll keep having conversations and updating the document. This doesn't need to be set in stone.


These responsibilities are carried out by the different teams that form the community (infrastructure team, security team, marketing team, community team, etc.).

## Role of the board

_Empower the community and stay out of the way_

The role of the board is to support the day-to-day operations of the community, help to structure it, and serve as a last-resort backup when things go wrong.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The role of the board is to support the day-to-day operations of the community, help to structure it, and serve as a last-resort backup when things go wrong.
The role of the board is to provide operational and organizational support to the NixOS project and community.
The board is not responsible for technical leadership, as this is left to the individual community teams.

I would like it if it was a bit more explicit that the board doesn't provide technical leadership, so that members can turn to the right people when looking to participate in the ecosystem.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would even expand that to make it clear that -> The board is not responsible for technical leadership, decisions or direction

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed. I've made that more explicit in ad5a6a779084159eb27d83fb6482357e434af667


In particular, its responsibilities are to:

- Handle the administrative, legal and financial tasks of the Foundation
- Serve as an interface between the community and the corporate/governmental world
- Handle sponsoring and donations
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Build and maintain beneficial and collaborative relationships (an example here would be Github and maybe other foundations for collaboration)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in ba75a95

- Organize the team structure
thufschmitt marked this conversation as resolved.
Show resolved Hide resolved
- Fund community events and efforts
- Unblock things that would be stuck otherwise
- Arbiter in case of conflicts
- Serve as a backup for critical tasks when needed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's missing here is handing out permissions and credentials. Someone has to hold and manage the keys.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in 4b6d915 (although I'm not entirely sure I've put it in the best possible place)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the Foundation members do not hold any critical security tokens, but have a good working relationship with and can delegate those tasks to the Infra team. Otherwise, it will be difficult for the infra team to guarantee the security of the infrastructure as a whole.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zimbatm I would argue that the infra team needs in practice to have access to most systems, but it shouldn't have the responsibility of delegating the access to other teams. Maybe that shouldn't be the foundation board either though, but then we don't have anybody in a good position for it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The board would still hold the power to instruct the infra team to delegate access, either directly, or by delegating some of that access further down to the community. For example by setting up an election system.

But this is more of a future statement. The current infra team needs more people and a better interface.