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

Add nix community values #1541

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions src/components/ui/Citation.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
export interface Props {
id: number;
}

const { id } = Astro.props;
---

<span class="inline-block">
<details class="inline">
<summary class="inline-block cursor-pointer">
<sup class="text-nix-blue hover:text-nix-blue">[{id}]</sup>
</summary>
<div
class="absolute bg-white border border-gray-300 p-2 mt-1 rounded shadow-lg max-w-sm text-sm"
>
<slot />
</div>
</details>
</span>

<style>
details[open] > summary > sup {
@apply text-nix-blue;
}
</style>

<script>
// Optional: Close other open details when one is opened
document.addEventListener("click", (event) => {
if (
event.target instanceof HTMLElement &&
event.target.tagName === "SUMMARY"
) {
document.querySelectorAll("details[open]").forEach((detail) => {
if (detail !== event.target.parentElement) {
detail.removeAttribute("open");
}
});
}
});
</script>
11 changes: 11 additions & 0 deletions src/components/ui/Quotation.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
export interface Props {}

const {} = Astro.props;
---

<div
class="bg-nix-blue-extralight text-nix-blue-darker font-bold p-8 rounded-3xl m-8"
>
<slot />
</div>
209 changes: 199 additions & 10 deletions src/pages/community.astro
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import Container from "../components/layout/Container.astro";
import Divider from "../components/layout/Divider.astro";
import Button from "../components/ui/Button.astro";
import Banner from "../components/ui/Banner.astro";
import Citation from "../components/ui/Citation.astro";
import Quotation from "../components/ui/Quotation.astro";
import RfcDiagram from "../components/ui/RfcDiagram.astro";
import NixConEntry from "../components/pages/community/NixConEntry.astro";
import OfficialCommunityLink from "../components/pages/community/OfficialCommunityLink.astro";
Expand Down Expand Up @@ -190,17 +192,195 @@ import nixosFoundationLogo from "../assets/image/nixos-foundation-logo.svg";
</p>
</Container>
<Container>
<h2 class="text-4xl font-bold font-heading leading-none text-nix-blue mt-8">
Where to talk?
<h2
class="text-4xl font-bold font-heading leading-none text-nix-blue mt-8"
id="community-values"
>
<a href="#community-values">Community values</a>
</h2>
<div class="font-extralight leading-relaxed mt-2">
<h3
class="text-3xl font-bold font-heading text-nix-blue mt-4"
id="community-values-intro"
>
<a href="#community-values-intro">Introduction</a>
</h3>

<Quotation>
<p>
Communities form when different people unite around a common purpose.
Shared values guide decision making, and community goals supersede
individual interests and agendas.
</p>

<p class="text-right py-2 italic">
<a href="https://opensource.com/open-source-way"
>The Open Source Way</a
>
</p>
</Quotation>

Our common purpose is to develop, propagate, and promote the adoption of
the <a href="https://edolstra.github.io/pubs/phd-thesis.pdf"
>purely functional software deployment model</a
>. Our values help us achieve this purpose by guiding decisionmaking
across the community, keeping us moving in a common direction. This
document captures our core values so that they can be shared and
referenced by everyone in the community.

<h3
class="text-3xl font-bold font-heading text-nix-blue mt-4"
id="community-values-whatis"
>
<a href="#community-values-whatis">What is a value?</a>
</h3>

Values are <span class="italic">not</span> a Code of Conduct, they do not define
governance structures, and they do not provide specific policies. Instead,
values inform the decisions we make about these things. A good test for <a
href="https://medium.com/the-u-s-digital-service/our-values-1fc02b53598"
>whether something is a value</a
> is:

<Quotation>
If a statement can be invoked by anyone in an organization, and cause a
decision to be re-evaluated or changed, without regard to anyone’s rank
or title, then you have a bona fide [i.e. genuine] value. If it doesn’t
work that way, then it’s not a value.
</Quotation>

To apply in many situations, values must be high-level, abstract concepts.
Therefore, in the text below, each value is presented as a heading
followed by an elaboration of its meaning. This is meant as a starting
point for interpretation, not a comprehensive definition. The heading and
the elaboration have equal importance.

<h3
class="text-3xl font-bold font-heading text-nix-blue mt-4"
id="community-values-values"
>
<a href="#community-values-values">The values</a>
</h3>

<h4
class="text-2xl font-bold font-heading text-nix-blue mt-4"
id="community-values-respect"
>
<a href="#community-values-respect">Respect and civility</a>
</h4>

We treat each other with respect and civility. No matter one's individual
identity, circumstances, level of contribution to the project, or status,
everyone has the right to respect, and everyone has the duty to treat
others with respect. We prioritise project health over individual
interests. People with higher visibility within the project or towards the
public are subject to higher expectations for their conduct.

<h4
class="text-2xl font-bold font-heading text-nix-blue mt-4"
id="community-values-people"
>
<a href="#community-values-people">People come first</a>
</h4>

We are here, first and foremost, as individuals working together. Our
priority here is to work on Nix projects for the benefit of all their
contributors and users. We value building excellent software with a
vibrant and diverse community. Individuals gain trust and status by doing
the work. Organisations gain prestige by funding the work of individuals
and providing resources to support the project.

<h4
class="text-2xl font-bold font-heading text-nix-blue mt-4"
id="community-values-choice"
>
<a href="#community-values-choice"
>Free software and choice over lock-in</a
>
</h4>

Nix projects are and will always remain <a
href="https://www.gnu.org/philosophy/free-sw.en.html">free software</a
>. We value working together with the broader free software community.
Free software is our priority, but we also support our users' needs to use
non-free software, when practical.

<h4
class="text-2xl font-bold font-heading text-nix-blue mt-4"
id="community-values-decisionmaking"
>
<a href="#community-values-decisionmaking"
>Distribute decisionmaking widely</a
>
</h4>

We are a synthesis of varied but overlapping communities. We rely on
distributed approaches: asynchronous communication, clear ownership,
deep-dive taskforces, and local decisionmaking. We focus our attention on
working together on our shared goals and working separately in a
non-interfering way when our goals are independent. We build trust
primarily by working together on Nix projects.

<h4
class="text-2xl font-bold font-heading text-nix-blue mt-4"
id="community-values-automation"
>
<a href="#community-values-automation"
>Automation over process and toil</a
>
<Citation id={1}>
<a
href="https://web.archive.org/web/20240717145635/https://sre.google/sre-book/eliminating-toil/"
>Toil</a
> is work that tends to be manual, repetitive, automatable, interrupt-driven,
devoid of enduring value, and scaling linearly with growth.
</Citation>
</h4>

We are a global community, and disseminating information and maintaining
processes can be difficult. We are also a large project with a lot of hard
and repetitive work. Therefore, we value automation over toil, while
recognizing that not all toil can be automated. Automation reduces toil,
but people are still accountable. Adding new toil needs a very strong
justification. We build automation and processes that make the best use of
our contributors' limited time and energy.

<h4
class="text-2xl font-bold font-heading text-nix-blue mt-4"
id="community-values-stability"
>
<a href="#community-values-stability"
>Stable evolution over stagnation or chaos</a
>
</h4>

Openness to new ideas and evolution is part of what made Nix great. We
continue to foster that evolution while encouraging development of
re-usable building blocks and well-defined, stable interfaces. We value
experimenting with designs and concepts, and folding successful
experiments back into continuous improvement for stable components. The
larger the impact an action has, the more care and discussion is warranted
before taking the action. Our leaders have a duty to find, support, and
promote new contributors — and eventually step aside for new leaders.
</div>

<h2
class="text-4xl font-bold font-heading leading-none text-nix-blue mt-8"
id="community-talk"
>
<a href="#community-talk">Where to talk?</a>
</h2>
<p class="font-extralight leading-relaxed mt-2">
The Nix community is spread across various platforms. Here are the
official and unofficial spaces where you can find help, discuss
development, and chat with other users.
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="md:col-span-2">
<h3 class="text-3xl font-bold font-heading text-nix-blue mt-4">
Official spaces
<h3
class="text-3xl font-bold font-heading text-nix-blue mt-4"
id="community-talk-official-spaces"
>
<a href="#community-talk-official-spaces">Official spaces</a>
</h3>
<p class="text-gray-700">
These spaces are monitored and moderated by the NixOS Moderation
Expand All @@ -226,8 +406,11 @@ import nixosFoundationLogo from "../assets/image/nixos-foundation-logo.svg";
</p>
</div>
<div class="col-span-1">
<h3 class="text-3xl font-bold font-heading text-nix-blue mt-4">
Official social-media
<h3
class="text-3xl font-bold font-heading text-nix-blue mt-4"
id="community-talk-official-socials"
>
<a href="#community-talk-official-socials">Official social-media</a>
</h3>
<p class="text-gray-700">
These spaces are maintained by our NixOS Marketing Team though not
Expand All @@ -247,8 +430,11 @@ import nixosFoundationLogo from "../assets/image/nixos-foundation-logo.svg";
</p>
</div>
<div class="md:col-span-3">
<h3 class="text-3xl font-bold font-heading text-nix-blue mt-4">
Our calendars
<h3
class="text-3xl font-bold font-heading text-nix-blue mt-4"
id="community-talk-calendars"
>
<a href="#community-talk-calendars">Our calendars</a>
</h3>
<p class="text-gray-700">
We use these calendars to schedule events, meetings, and other.
Expand All @@ -266,8 +452,11 @@ import nixosFoundationLogo from "../assets/image/nixos-foundation-logo.svg";
</p>
</div>
</div>
<h3 class="text-3xl font-bold font-heading text-nix-blue mt-6">
Unofficial spaces
<h3
class="text-3xl font-bold font-heading text-nix-blue mt-6"
id="community-talk-unofficial-spaces"
>
<a href="#community-talk-unofficial-spaces">Unofficial spaces</a>
</h3>
<p class="text-gray-700">
These spaces are not monitored and not moderated by the NixOS Moderation
Expand Down