In this repo, each flake's README.md
assumes that the directory of its flake.nix
is your current working directory in a terminal.
To de-duplicate the docs, one of the top sections of each README.md
here contains a Prerequisites
section. This section provides the links to other sections that possibly contain the relevant docs. Sometimes, you'll need to traverse multiple Prerequisites
before you achieve the relevant docs.
I inserted a number of binary caches into nixConfig
attribute of each flake.nix
.
These caches should accelerate builds.
You can add an accept-flake-config to your nix.conf.
Sometimes, I put dev tools into a nix-dev
directory.
Then, I enter a devshell as follows.
nix develop nix-dev/
All flakes in this repo access some other flakes from this repo via GitHub
URLs.
Let's consider two flakes from this repo, A
and B
, where A
is in inputs
of B
.
If I change the flake A
, I:
- push
A
changes to GitHub. - update
flake.lock
ofB
.
Whenever there's a push to the remote GitHub
repo, B
's flake.lock
is updated by a GitHub Action
.
That's why, if that action works, there's no need to commit and push flake.lock
changes.
After an update is complete, it's necessary to rebase local changes onto remote changes.
However, sometimes, there are local uncommitted changes already.
These changes should be git stash
ed before doing git rebase
.
After rebasing, they can be git stash pop
ped to continue the work.
Thus, the process is as follows:
# can be omitted in case of automatic fetches
git fetch
git rebase --autostash
git push
Each derivation that evaluates to an executable should have these attributes:
meta.description
- string written in
CommonMark
- This description will be rendered in devshells
- It should be a single-line brief description of this executable
- string written in
meta.longDescription
- string written in
CommonMark
- This description is used to generate
man
pages for executables - The format of a
longDescription
should be recognizable bypandoc
- Here's a sample input
- string written in