* front page: Who is Nix for?
For at least two years there were ongoing debates about the target
audience of the Nix ecosystem. Nix maintainers did not manage to
converge on a statement [0]. The marketing team is explicitly focusing
on software developers [1], and the documentation team was supposed to
align with that from the very beginning [2].
What was missing so far was what we mean by "software developers".
Arguably, it encompasses a particular mind set about how to deal with
computers and enough time to learn things.
And while for documentation it matters most *what* the software is doing
rather than *who* it is made for (or by), the ecosystem is a community
effort, and people matter [3]. So far, we haven't really identified the
(eventual) boundaries of this community (at least I don't know of any
serious attempt), which also plays into the definition of a target
audience. Yet, in practice, not every contribution, not every question
or comment is treated equally, and this has reasons in our implicit
assumptions about who belongs.
This is an attempt to draw such a boundary that is not arbitrary, and
neither to narrow nor too wide. The goal is, as always, to help
Nix beginners set realistic expectations for their journey.
The list of occupations/interests who may benefit from Nix is based on
the 2022 [4] and 2023 [5] community surveys.
[0]: https://github.com/NixOS/nix/pull/7156
[1]: 76d42a052d/community/teams/marketing.tt (L89)
[2]: https://discourse.nixos.org/t/2022-06-15-documentation-team-meeting-notes-1/20004
[3]: https://discourse.nixos.org/t/zurich-23-05-zhf-hackathon-and-workshop-report/29093#ux-workshop-21
[4]: https://discourse.nixos.org/t/2022-nix-survey-results/18983
[5]: https://discourse.nixos.org/t/nix-community-survey-2023-results/33124
Co-authored-by: Daniel Sidhion <DanielSidhion@users.noreply.github.com>
As it was written, I thought we'd have to do more work to supply fetchzip, but the next invokation of nix-build seems to call fetchzip without any definition errors so I assume the error is in the documentation.
* show nix-shell --run
it's quite useful and not necessarily obvious without reading reference documentation
Co-authored-by: Silvan Mosberger <github@infinisil.com>
historically it still points to Cachix and not to a community-owned
instance. at the moment there is no regular community newsletter, which
would certainly include updates about documentation. we can add it back
once such a thing exists.
I'm a newbie, so I might be missing something, but the use of an unquoted URL here seems like it goes against the "Best Practice" page (https://nix.dev/guides/best-practices#urls), which says to always quote URLs.
* tutorial: Propagate previous geocode changes
Propagate the changes made in a previous code snippet to this code
snippet. Primarily fixing the poorly referenced ``${geocode``.
* tutorial: Fix requestParams for path.nix
Adjust the functionality to reference geocode correctly and
also to make sure of the correct escaping formats.
Signed-off-by: Brian McGillion <bmg.avoin@gmail.com>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
* mv question -f faqs -t nix-recipes
* add nix-recipes to page index and fix hierarchy
* change question to statement
* rephrase a few sentences and add links
* move the question to troubleshooting
* fix broken link
---------
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
* shorten the sharing dependencies article to a guide
the contents do not really warrant a full-blown tutorial
* use an example with an explicit build-time dependency
* fix typo
* link `inputsFrom` to Nixpkgs manual
The current code has a number of issues.
1. realising the code results in:
``
markers=$(geocode 'New York') size=640x640 scale=2 zoom=7 ...
^-------------------^ SC2046 (warning): Quote this to prevent
word splitting.
``
2.
``
$(geocode ${lib.escapeShellArg marker.location})"
``
Assumes that geocode has been added to the PATH so replace with
``
${config.scripts.geocode}/bin/geocode
``
as per previous examples.
3.
``
in "markers=${ lib.concatStringsSep "\\|" attributes}";
in builtins.map paramForMarker config.map.markers;
``
The ordering of this actually creates multiple ``[markers =]``
parameters and does not use the concatenation string to join the
attributes together (in effect there is only 1 attribute per call) to
map, and 1 new ``marker`` created.
Signed-off-by: Brian McGillion <bmg.avoin@gmail.com>
* tutorials: fix passing paramaters to geocode
When running the package as-is the following error occurs
``geocode: line 7: $1: unbound``
This is caused because ``scripts.geocode`` does not pass the parameters
down to the wrapped script ``geocode``.
Signed-off-by: Brian McGillion <bmg.avoin@gmail.com>