From e671d3bbbda9b2bec8fa119aa1ff46499118ef17 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Wed, 6 Mar 2024 08:51:54 -0300 Subject: [PATCH] Nix docs: remove `with lib;` from example code Following [Best Practices](https://nix.dev/guides/best-practices#with-scopes), `with` is a problematic language construction and should be avoided. Usually it is employed like a "factorization": `[ X.A X.B X.C X.D ]` is written `with X; [ A B C D ]`. However, as shown in the link above, the syntatical rules of `with` are not so intuitive, and this "distributive rule" is very selective, in the sense that `with X; [ A B C D ]` is not equivalent to `[ X.A X.B X.C X.D ]`. However, this factorization is still useful to "squeeze" some code, especially in lists like `meta.maintainers`. On the other hand, it becomes less justifiable in bigger scopes. This is especially true in cases like `with lib;` in the top of expression and in sets like `meta = with lib; { . . . }`. That being said, this patch removes most of example code in the current documentation. The exceptions are, for now - doc/functions/generators.section.md - doc/languages-frameworks/coq.section.md because, well, they are way more complicated, and I couldn't parse them mentally - yet another reason why `with` should be avoided! --- doc/languages-frameworks/dotnet.section.md | 6 +-- doc/languages-frameworks/go.section.md | 6 +-- doc/languages-frameworks/idris.section.md | 6 +-- .../javascript.section.md | 6 +-- doc/languages-frameworks/lua.section.md | 4 +- doc/languages-frameworks/maven.section.md | 6 +-- doc/languages-frameworks/ocaml.section.md | 6 +-- doc/languages-frameworks/python.section.md | 38 +++++++++---------- doc/languages-frameworks/rust.section.md | 10 ++--- doc/languages-frameworks/texlive.section.md | 8 ++-- doc/stdenv/meta.chapter.md | 8 ++-- 11 files changed, 52 insertions(+), 52 deletions(-) diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md index 7987aa41636c..7466c8cdc228 100644 --- a/doc/languages-frameworks/dotnet.section.md +++ b/doc/languages-frameworks/dotnet.section.md @@ -210,11 +210,11 @@ buildDotnetGlobalTool { nugetSha256 = "sha256-ZG2HFyKYhVNVYd2kRlkbAjZJq88OADe3yjxmLuxXDUo="; - meta = with lib; { + meta = { homepage = "https://cmd.petabridge.com/index.html"; changelog = "https://cmd.petabridge.com/articles/RELEASE_NOTES.html"; - license = licenses.unfree; - platforms = platforms.linux; + license = lib.licenses.unfree; + platforms = lib.platforms.linux; }; } ``` diff --git a/doc/languages-frameworks/go.section.md b/doc/languages-frameworks/go.section.md index 7f151c76129f..369eb88d331f 100644 --- a/doc/languages-frameworks/go.section.md +++ b/doc/languages-frameworks/go.section.md @@ -51,11 +51,11 @@ pet = buildGoModule rec { vendorHash = "sha256-ciBIR+a1oaYH+H1PcC8cD8ncfJczk1IiJ8iYNM+R6aA="; - meta = with lib; { + meta = { description = "Simple command-line snippet manager, written in Go"; homepage = "https://github.com/knqyf263/pet"; - license = licenses.mit; - maintainers = with maintainers; [ kalbasit ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ kalbasit ]; }; } ``` diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md index 447a3e7bb8a3..e30a849dd456 100644 --- a/doc/languages-frameworks/idris.section.md +++ b/doc/languages-frameworks/idris.section.md @@ -93,11 +93,11 @@ build-idris-package { hash = "sha256-h28F9EEPuvab6zrfeE+0k1XGQJGwINnsJEG8yjWIl7w="; }; - meta = with lib; { + meta = { description = "Idris YAML lib"; homepage = "https://github.com/Heather/Idris.Yaml"; - license = licenses.mit; - maintainers = [ maintainers.brainrape ]; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.brainrape ]; }; } ``` diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 5d2a6413e104..4dc207f79847 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -184,11 +184,11 @@ buildNpmPackage rec { NODE_OPTIONS = "--openssl-legacy-provider"; - meta = with lib; { + meta = { description = "A modern web UI for various torrent clients with a Node.js backend and React frontend"; homepage = "https://flood.js.org"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ winter ]; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ winter ]; }; } ``` diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md index 23c40409eaa0..136c7194e5cd 100644 --- a/doc/languages-frameworks/lua.section.md +++ b/doc/languages-frameworks/lua.section.md @@ -193,10 +193,10 @@ luaposix = buildLuarocksPackage { disabled = (luaOlder "5.1") || (luaAtLeast "5.4"); propagatedBuildInputs = [ bit32 lua std_normalize ]; - meta = with lib; { + meta = { homepage = "https://github.com/luaposix/luaposix/"; description = "Lua bindings for POSIX"; - maintainers = with maintainers; [ vyp lblasc ]; + maintainers = with lib.maintainers; [ vyp lblasc ]; license.fullName = "MIT/X11"; }; }; diff --git a/doc/languages-frameworks/maven.section.md b/doc/languages-frameworks/maven.section.md index b86733a75898..2ec419e010eb 100644 --- a/doc/languages-frameworks/maven.section.md +++ b/doc/languages-frameworks/maven.section.md @@ -34,11 +34,11 @@ maven.buildMavenPackage rec { --add-flags "-jar $out/share/jd-cli/jd-cli.jar" ''; - meta = with lib; { + meta = { description = "Simple command line wrapper around JD Core Java Decompiler project"; homepage = "https://github.com/intoolswetrust/jd-cli"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ majiir ]; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ majiir ]; }; }: ``` diff --git a/doc/languages-frameworks/ocaml.section.md b/doc/languages-frameworks/ocaml.section.md index cbdc64bf5dd3..4f3b6e0264f7 100644 --- a/doc/languages-frameworks/ocaml.section.md +++ b/doc/languages-frameworks/ocaml.section.md @@ -110,11 +110,11 @@ buildDunePackage rec { hash = "sha256-d5/3KUBAWRj8tntr4RkJ74KWW7wvn/B/m1nx0npnzyc="; }; - meta = with lib; { + meta = { homepage = "https://github.com/flowtype/ocaml-wtf8"; description = "WTF-8 is a superset of UTF-8 that allows unpaired surrogates."; - license = licenses.mit; - maintainers = [ maintainers.eqyiel ]; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.eqyiel ]; }; } ``` diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 4938d3c96616..fa7f3eddf72c 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -130,12 +130,12 @@ buildPythonPackage rec { hypothesis ]; - meta = with lib; { + meta = { changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; description = "Framework for writing tests"; homepage = "https://github.com/pytest-dev/pytest"; - license = licenses.mit; - maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ domenkozar lovek323 madjar lsix ]; }; } ``` @@ -312,7 +312,7 @@ python3Packages.buildPythonApplication rec { python-daemon ]; - meta = with lib; { + meta = { # ... }; } @@ -899,12 +899,12 @@ buildPythonPackage rec { "toolz.dicttoolz" ]; - meta = with lib; { + meta = { changelog = "https://github.com/pytoolz/toolz/releases/tag/${version}"; homepage = "https://github.com/pytoolz/toolz"; description = "List processing tools and functional utilities"; - license = licenses.bsd3; - maintainers = with maintainers; [ fridh ]; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ fridh ]; }; } ``` @@ -1034,12 +1034,12 @@ buildPythonPackage rec { pytest ]; - meta = with lib; { + meta = { changelog = "https://github.com/blaze/datashape/releases/tag/${version}"; homepage = "https://github.com/ContinuumIO/datashape"; description = "A data description language"; - license = licenses.bsd2; - maintainers = with maintainers; [ fridh ]; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ fridh ]; }; } ``` @@ -1084,12 +1084,12 @@ buildPythonPackage rec { libxslt ]; - meta = with lib; { + meta = { changelog = "https://github.com/lxml/lxml/releases/tag/lxml-${version}"; description = "Pythonic binding for the libxml2 and libxslt libraries"; homepage = "https://lxml.de"; - license = licenses.bsd3; - maintainers = with maintainers; [ sjourdois ]; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ sjourdois ]; }; } ``` @@ -1155,12 +1155,12 @@ buildPythonPackage rec { # Tests cannot import pyfftw. pyfftw works fine though. doCheck = false; - meta = with lib; { + meta = { changelog = "https://github.com/pyFFTW/pyFFTW/releases/tag/v${version}"; description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms"; homepage = "http://hgomersall.github.com/pyFFTW"; - license = with licenses; [ bsd2 bsd3 ]; - maintainers = with maintainers; [ fridh ]; + license = with lib.licenses; [ bsd2 bsd3 ]; + maintainers = with lib.maintainers; [ fridh ]; }; } ``` @@ -1530,12 +1530,12 @@ buildPythonPackage rec { wheel ]; - meta = with lib; { + meta = { changelog = "https://github.com/pytoolz/toolz/releases/tag/${version}"; homepage = "https://github.com/pytoolz/toolz/"; description = "List processing tools and functional utilities"; - license = licenses.bsd3; - maintainers = with maintainers; [ fridh ]; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ fridh ]; }; } ``` diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 4ba556c69d5a..75e57a8bb574 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -35,10 +35,10 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-jtBw4ahSl88L0iuCXxQgZVm1EcboWRJMNtjxLVTtzts="; - meta = with lib; { + meta = { description = "A fast line-oriented regex search tool, similar to ag and ack"; homepage = "https://github.com/BurntSushi/ripgrep"; - license = licenses.unlicense; + license = lib.licenses.unlicense; maintainers = []; }; } @@ -923,11 +923,11 @@ rustPlatform.buildRustPackage rec { doCheck = false; - meta = with lib; { + meta = { description = "A fast line-oriented regex search tool, similar to ag and ack"; homepage = "https://github.com/BurntSushi/ripgrep"; - license = with licenses; [ mit unlicense ]; - maintainers = with maintainers; []; + license = with lib.licenses; [ mit unlicense ]; + maintainers = with lib.maintainers; []; }; } ``` diff --git a/doc/languages-frameworks/texlive.section.md b/doc/languages-frameworks/texlive.section.md index 01b59f6f34a9..b6fb1099a4a4 100644 --- a/doc/languages-frameworks/texlive.section.md +++ b/doc/languages-frameworks/texlive.section.md @@ -181,11 +181,11 @@ let runHook postInstall ''; - meta = with lib; { + meta = { description = "A LaTeX2e class for overhead transparencies"; - license = licenses.unfreeRedistributable; - maintainers = with maintainers; [ veprbl ]; - platforms = platforms.all; + license = lib.licenses.unfreeRedistributable; + maintainers = with lib.maintainers; [ veprbl ]; + platforms = lib.platforms.all; }; }; diff --git a/doc/stdenv/meta.chapter.md b/doc/stdenv/meta.chapter.md index c187f0602a1e..4a3b04b8f6e4 100644 --- a/doc/stdenv/meta.chapter.md +++ b/doc/stdenv/meta.chapter.md @@ -3,16 +3,16 @@ Nix packages can declare *meta-attributes* that contain information about a package such as a description, its homepage, its license, and so on. For instance, the GNU Hello package has a `meta` declaration like this: ```nix -meta = with lib; { +meta = { description = "A program that produces a familiar, friendly greeting"; longDescription = '' GNU Hello is a program that prints "Hello, world!" when you run it. It is fully customizable. ''; homepage = "https://www.gnu.org/software/hello/manual/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ eelco ]; - platforms = platforms.all; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ eelco ]; + platforms = lib.platforms.all; }; ```