You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2389: Convert DEVELOPING in to separate docs (ENG-1695) r=nickgerace a=nickgerace
## View The New Docs
[Click me!](https://github.com/systeminit/si/tree/nick/a72d7d8/docs)
## Commit Description
- Replace all test commands from cargo into buck2
- Replace all doc commands from cargo into buck2
- Expand DEVELOPING sections into different files
- Convert preparing changes file into rust tests file
- Create new preparing changes files and collapse squashing/rebasing docs into it
## GIF
<img src="https://media1.giphy.com/media/QAsHga1AB6dIGUsui6/giphy.gif"/>
Co-authored-by: Nick Gerace <nick@systeminit.com>
-[Learning About SI Concepts](#learning-about-si-concepts)
10
-
-[Repository Structure](#repository-structure)
11
-
-[Preparing Your Changes and Running Tests](#preparing-your-changes-and-running-tests)
12
-
13
-
## Development Environment
14
-
15
-
Developing SI locally can be done in a variety of ways, but the officially supported method is to use the [Nix Flake](flake.nix)
3
+
Developing SI locally can be done in a variety of ways, but the officially supported method is to use the [Nix Flake](../flake.nix)
16
4
at the root of the repository.
17
5
18
-
###Supported Platforms
6
+
## Supported Platforms
19
7
20
8
Using the flake requires using one of the below platforms.
21
9
It is possible that the System Initiative software can be developed on even more platforms, but these platforms have
22
10
been validated to work with `nix` and the corresponding flake.
23
11
24
-
####macOS
12
+
### macOS
25
13
26
14
macOS (Darwin) is officially supported on both x86_64 (amd64) (also known as "Intel") and aarch64 (arm64) (also known as
27
15
"Apple Silicon") architectures.
@@ -33,15 +21,15 @@ You can either install it via directions from the official support page or by ru
33
21
34
22
On macOS, you will likely hit the [file descriptor limit](#file-descriptor-limit) problem, which requires user intervention.
35
23
36
-
####Linux
24
+
### Linux
37
25
38
26
Linux (GNU) is officially supported on both x86_64 (amd64) and aarch64 (arm64) architectures.
39
27
[NixOS](https://nixos.org/) is not supported at this time, but may be desired in the future.
40
28
Linux with MUSL instead of GNU is also not currently supported.
41
29
For Fedora, RHEL-derivative and other [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) users, SELinux
42
30
will likely need to be set to `permissive` mode or configured to work with `nix`.
43
31
44
-
####Windows
32
+
### Windows
45
33
46
34
Using native Windows is not supported at this time, but may be desired in the future.
47
35
However, [WSL2](https://learn.microsoft.com/en-us/windows/wsl/) on Windows 10 and Windows 11 is officially supported on
@@ -50,7 +38,7 @@ In order to work with `nix`, `systemd` may need to be enabled in your WSL2 distr
50
38
51
39
On WSL2, you will likely hit the [file descriptor limit](#file-descriptor-limit) problem, which requires user intervention.
52
40
53
-
####File Descriptor Limit
41
+
### File Descriptor Limit
54
42
55
43
On some systems, you may need to significantly increasing the file descriptor limit for `buck2`.
56
44
This is because `buck2` opens many more files than either `cargo` or `pnpm` do.
@@ -69,11 +57,11 @@ Here is an example of a significant limit increase, where the argument provided
69
57
ulimit -n 10240
70
58
```
71
59
72
-
###Dependencies
60
+
## Dependencies
73
61
74
62
For all supported platforms, there are two dependencies that must be installed, `nix` (preferably from [Zero to Nix](https://zero-to-nix.com/start/install)) and `docker`.
75
63
76
-
####Nix
64
+
### Nix
77
65
78
66
We use `nix` as our package manager for the repository.
79
67
It ensures that our developers are all using the same versions of all packages and libraries for developing SI.
@@ -82,12 +70,12 @@ Regardless of how `nix` is installed, it must have the [flakes](https://nixos.wi
82
70
We highly recommend using the [Zero to Nix](https://zero-to-nix.com/start/install) installer over the
83
71
official installer; one reason being that the former will enable flakes by default.
84
72
85
-
> You can use `direnv` (version >= 2.30) with our [Nix flake](./flake.nix) for both ease of running commands
73
+
> You can use `direnv` (version >= 2.30) with our [Nix flake](../flake.nix) for both ease of running commands
86
74
> and for editor integration.
87
-
>
75
+
>
88
76
> For more information, see the **Direnv** section.
89
77
90
-
####Docker
78
+
### Docker
91
79
92
80
We use `docker` to run our dependent services for the SI stack.
93
81
It can either be installed via [Docker Desktop](https://www.docker.com/products/docker-desktop/) or
@@ -96,10 +84,10 @@ directly via [Docker Engine](https://docs.docker.com/engine/).
96
84
For Docker Desktop, the version corresponding to your native architecture should be used (e.g. install the aarch64
97
85
(arm64) version on a Apple-Silicon-equipped MacBook Pro).
98
86
99
-
WSL2 users should be able to use either Docker Desktop for WSL2 or Docker Engine (i.e. installing and using
87
+
WSL2 users should be able to use either Docker Desktop for WSL2 or Docker Engine (i.e. installing and using
100
88
`docker` within the distro and not interacting with the host).
101
89
102
-
####(Optional) Direnv
90
+
### (Optional) Direnv
103
91
104
92
[Direnv](https://direnv.net/) (version >= 2.30) with [nix-direnv](https://github.com/nix-community/nix-direnv) can
105
93
automatically set up your shell, which means you don't need to enter a subshell with `nix develop`, or prefix all
@@ -129,7 +117,7 @@ There are also plugins to integrate `direnv` with common editors.
|`app/`| Web front ends, GUIs, or other desktop applications |
196
-
|`bin/`| Backend programs, CLIs, servers, etc. |
197
-
|`component/`| Docker container images and other ancillary tooling |
198
-
|`lib/`| Supporting libraries and packages for services or applications ||
199
-
200
-
## Preparing Changes and Running Tests
201
-
202
-
We highly recommend following the [Convential Commits](https://www.conventionalcommits.org/en/v1.0.0/#specification) format when committing changes.
203
-
Our prefixes are derived from the official specification as well as the those found in [commitlint](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional), based on [Angular's commit conventions](https://github.com/angular/angular/blob/master/CONTRIBUTING.md).
204
-
When in doubt, use `feat`, `fix`, or `chore`!
205
-
206
-
Moreover, please sign your commits using `git commit -s`.
207
-
You can amend an existing commit with `git commit -s --amend`, if needed.
208
-
209
-
Please see [the relevant document](docs/PREPARING_CHANGES_AND_RUNNING_TESTS.md) for more information.
161
+
Using them you should be able to run the whole stack via CLion's Run tool window instead of using multiple shells!
0 commit comments