Skip to content

Commit aa8a016

Browse files
authored
Merge pull request #783 from fricklerhandwerk/remove-vision
remove the vision outline
2 parents 7499e8e + 8346ccd commit aa8a016

File tree

1 file changed

+2
-173
lines changed

1 file changed

+2
-173
lines changed

CONTRIBUTING.md

+2-173
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,12 @@
22

33
nix.dev is a community effort to collect, create, and maintain world-class learning resources for Nix.
44

5-
It is supposed to fit between first impressions on the [Nix web site](https://nixos.org) and the reference manuals for [Nix][nix manual] ([source][nix manual src]), [Nixpkgs][nixpkgs manual] ([source][nixpkgs manual src]), and [NixOS][nixos manual] ([source][nixos manual src]).
6-
See the [vision](#vision) and [textual outline](#outline) for an idea of a desired end state.
7-
8-
[nix manual]: https://nixos.org/manual/nix
9-
[nix manual src]: https://github.com/NixOS/nix/tree/master/doc/manual
10-
[nixpkgs manual]: https://nixos.org/manual/nixpkgs
11-
[nixpkgs manual src]: https://github.com/NixOS/nixpkgs/tree/master/doc
12-
[nixos manual]: https://nixos.org/manual/nixos
13-
[nixos manual src]: https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual
14-
155
We strongly encourage everyone interested to contribute by asking informed questions or directly proposing changes.
166

17-
Make a [pull request] if you want to introduce an incremental change.
7+
Make a [pull request](https://github.com/NixOS/nix.dev/pulls) if you want to introduce an incremental change.
188
Note our [considerations on licensing and attribution](#licensing-and-attribution).
199

20-
Open an [issue] if you want to clarify something not evident from what is provided in this repository, or if you want to discuss a significant change before starting to work on it.
21-
22-
[issue]: https://github.com/NixOS/nix.dev/issues
23-
[pull request]: https://github.com/NixOS/nix.dev/pulls
10+
Open an [issue](https://github.com/NixOS/nix.dev/issues) if you want to clarify something not evident from what is provided in this repository, or if you want to discuss a significant change before starting to work on it.
2411

2512
## Code of conduct
2613

@@ -80,164 +67,6 @@ We would be glad to incorporate your insights.
8067

8168
Please read [Contributing Documentation](https://nix.dev/contributing/documentation).
8269

83-
# Vision
84-
85-
This is our vision for the journey into Nix, Nixpkgs, and NixOS.
86-
We want to create and collect learning resources for mastering the ecosystem step by step.
87-
88-
Use it as a scaffold to to find a place for your ideas on new tutorials and guides.
89-
It is still subject to change and refinement as we find out more about learners' needs, but already proved helpful for orienting beginners.
90-
91-
```mermaid
92-
flowchart TB
93-
subgraph install[install Nix]
94-
direction TB
95-
Linux
96-
macOS
97-
Windows
98-
Docker
99-
end
100-
subgraph first-steps[run any program]
101-
run[ad hoc environments]
102-
findpkgs[find packages]
103-
scripts[reproducible scripts]
104-
gc[garbage collection]
105-
end
106-
subgraph imperative[imperative package management]
107-
install-imperative[install packages]
108-
upgrade[upgrade packages]
109-
rollback[rollback packages]
110-
pinning[pin package version]
111-
end
112-
subgraph lang[Nix language]
113-
basics
114-
debugging
115-
best-practices[best practices]
116-
tooling
117-
end
118-
subgraph declarative[declarative environments]
119-
shell[declarative shells]
120-
pin[pinning dependencies]
121-
adapt[package variants and patches]
122-
end
123-
subgraph configuration[declarative configuration management]
124-
user[declarative user environments]
125-
nixos[declarative operating systems]
126-
nixos-contrib[contributing to NixOS]
127-
end
128-
subgraph pkgs[declarative package management]
129-
trivial[creating simple packages]
130-
ecosystems[language ecosystems]
131-
nixpkgs[contributing to Nixpkgs]
132-
end
133-
subgraph dev[software development lifecycle]
134-
tests
135-
caching[build caching]
136-
deployment
137-
ci[continuous integration]
138-
distributed[distributed builds]
139-
cross-compilation
140-
bundling[bundling build results]
141-
nixos-tests[testing distributed systems with NixOS]
142-
nix[contributing to Nix]
143-
end
144-
install --> first-steps
145-
first-steps --> lang & imperative
146-
lang --> declarative
147-
declarative --> configuration & pkgs
148-
configuration --> dev
149-
pkgs --> dev
150-
```
151-
152-
# Outline
153-
154-
See [Vision](#vision) for a graphical outline that illustrates the intended learning journey.
155-
156-
## Install Nix
157-
158-
Instructions for the various installation methods.
159-
160-
## Build and run software
161-
162-
Here we show how existing build plans are used to produce working software.
163-
164-
- Find packaged software
165-
- Run software from existing packages
166-
- Set up a temporary environment
167-
168-
The next chapter chapter is about how to hold onto the ephemeral examples from the previous chapter, and how to create more complex environments by composing existing packages.
169-
170-
## Imperative package management
171-
172-
Describes a straightforward transition from temporary environments using existing packages.
173-
174-
- Persist packages in the file system
175-
- Updates, rollbacks, pinning
176-
- Garbage collection
177-
178-
Imperative package management's unique feature is that it allows updating each package independently to the most recent available version without touching the rest of the system.
179-
180-
## Nix language
181-
182-
Leveraging the full power of Nix requires understanding the Nix language, and eventually learning to write Nix expressions.
183-
184-
- Syntax and semantics
185-
- Attribute sets
186-
- Functions
187-
- Debugging
188-
- Best practices
189-
- Tooling
190-
- Syntax highlighting
191-
- Linters
192-
- Formatters
193-
194-
## Declarative environments
195-
196-
While imperative package management supports "generations", it does not have proper change management, "profiles" are not portable, and it is not immediately obvious how to compose packages into a larger unit.
197-
This section shows how to have all of that by declaring a Nix expression in a file that can be used on any system that supports Nix.
198-
199-
- Declare a reproducible environment
200-
- Pinning dependencies
201-
- Adapt packages to your needs
202-
203-
## Declarative package management
204-
205-
Here we show how existing packages come into being, and how to modify and create packages.
206-
207-
- Modifying existing packages
208-
- Creating new packages
209-
- Language ecosystems
210-
- Contribute to Nixpkgs
211-
212-
Creating packages and contributing are advanced topics that require much more detail (especially langauge specifics), and are partially covered in the Nixpkgs manual already.
213-
In this context they are intended to demonstrate Nixpkgs architecture and design, to enable readers to navigate existing code, assess pull requests, and create or maintain their own packages.
214-
This should be fairly superficial, otherwise it would duplicate much of the Nixpkgs manual.
215-
216-
Alternatively these sections could be dropped entirely, or moved to their own chapter and reference or reuse much of the Nixpkgs manual.
217-
This is subject to refinement.
218-
219-
## Declarative configuration management
220-
221-
This section shows how the disconnected packages from previous examples can be wired up into a consistent and persistent user environment or operating system configuration.
222-
223-
- Declarative user environments with Home Manager
224-
- Declarative operating systems with NixOS
225-
- Contributing to NixOS
226-
227-
## Software development lifecycle
228-
229-
- Caching
230-
- Deployment
231-
- Continuous integration
232-
- Distributed builds
233-
- Cross-compilation
234-
- Bundling build results
235-
- Virtual machines
236-
- Docker containers
237-
- Contributing to Nix
238-
239-
# Contributor notes
240-
24170
## GitHub heading anchors fails linkcheck
24271

24372
Due to a [Sphinx bug][linkcheck gh bug], linkcheck fails when it verifies the

0 commit comments

Comments
 (0)