diff --git a/doc/build-helpers/dev-shell-tools.chapter.md b/doc/build-helpers/dev-shell-tools.chapter.md index 0168ea39f7aa..bfaeab0fee1b 100644 --- a/doc/build-helpers/dev-shell-tools.chapter.md +++ b/doc/build-helpers/dev-shell-tools.chapter.md @@ -20,12 +20,12 @@ Converts Nix values to strings in the way the [`derivation` built-in function](h ```nix devShellTools.valueToString (builtins.toFile "foo" "bar") -=> "/nix/store/...-foo" +# => "/nix/store/...-foo" ``` ```nix devShellTools.valueToString false -=> "" +# => "" ``` ::: @@ -47,11 +47,11 @@ devShellTools.unstructuredDerivationInputEnv { args = [ "-c" "${./builder.sh}" ]; }; } -=> { - name = "foo"; - buildInputs = "/nix/store/...-hello /nix/store/...-figlet"; - builder = "/nix/store/...-bash"; -} +# => { +# name = "foo"; +# buildInputs = "/nix/store/...-hello /nix/store/...-figlet"; +# builder = "/nix/store/...-bash"; +#} ``` Note that `args` is not included, because Nix does not added it to the builder process environment. diff --git a/doc/build-helpers/special/makesetuphook.section.md b/doc/build-helpers/special/makesetuphook.section.md index 179d8d456372..7b83653296eb 100644 --- a/doc/build-helpers/special/makesetuphook.section.md +++ b/doc/build-helpers/special/makesetuphook.section.md @@ -9,7 +9,7 @@ pkgs.makeSetupHook { name = "something-hook"; propagatedBuildInputs = [ pkgs.commandsomething ]; depsTargetTargetPropagated = [ pkgs.libsomething ]; -} ./script.sh; +} ./script.sh ``` ### setup hook that depends on the hello package and runs hello and @shell@ is substituted with path to bash {#sec-pkgs.makeSetupHook-usage-example} @@ -42,7 +42,7 @@ pkgs.makeSetupHook } preConfigureHooks+=(_printHelloHook) '' - ); + ) ``` ## Attributes {#sec-pkgs.makeSetupHook-attributes} diff --git a/doc/hooks/memcached-test-hook.section.md b/doc/hooks/memcached-test-hook.section.md index 6820cec20a1c..03fc91ab4bf0 100644 --- a/doc/hooks/memcached-test-hook.section.md +++ b/doc/hooks/memcached-test-hook.section.md @@ -20,13 +20,15 @@ stdenv.mkDerivation { If you use a custom `checkPhase`, remember to add the `runHook` calls: ```nix - checkPhase '' +{ + checkPhase = '' runHook preCheck # ... your tests runHook postCheck - '' + ''; +} ``` ## Variables {#sec-memcachedTestHook-variables} @@ -48,6 +50,6 @@ stdenv.mkDerivation { ]; preCheck = '' - memcachedTestPort=1234 - '' + memcachedTestPort=1234; + ''; } diff --git a/doc/hooks/redis-test-hook.section.md b/doc/hooks/redis-test-hook.section.md index b14d29801a0e..c01f6c33f44a 100644 --- a/doc/hooks/redis-test-hook.section.md +++ b/doc/hooks/redis-test-hook.section.md @@ -21,13 +21,15 @@ stdenv.mkDerivation { If you use a custom `checkPhase`, remember to add the `runHook` calls: ```nix - checkPhase '' +{ + checkPhase = '' runHook preCheck # ... your tests runHook postCheck - '' + ''; +} ``` ## Variables {#sec-redisTestHook-variables} @@ -55,6 +57,6 @@ stdenv.mkDerivation { ]; preCheck = '' - redisTestPort=6390 - '' + redisTestPort=6390; + ''; } diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md index b640ba8d5011..95800f95351a 100644 --- a/doc/languages-frameworks/android.section.md +++ b/doc/languages-frameworks/android.section.md @@ -8,23 +8,29 @@ supporting features. Use the `android-studio-full` attribute for a very complete Android SDK, including system images: ```nix +{ buildInputs = [ android-studio-full ]; +} ``` This is identical to: ```nix +{ buildInputs = [ androidStudioPackages.stable.full ]; +} ``` Alternatively, you can pass composeAndroidPackages to the `withSdk` passthru: ```nix +{ buildInputs = [ (android-studio.withSdk (androidenv.composeAndroidPackages { includeNDK = true; }).androidsdk) ]; +} ``` These will export `ANDROID_SDK_ROOT` and `ANDROID_NDK_ROOT` to the SDK and NDK directories diff --git a/doc/languages-frameworks/astal.section.md b/doc/languages-frameworks/astal.section.md index 34022b9c5850..9b2d59a1c009 100644 --- a/doc/languages-frameworks/astal.section.md +++ b/doc/languages-frameworks/astal.section.md @@ -11,7 +11,9 @@ ags.bundle { pname = "hyprpanel"; version = "1.0.0"; - src = fetchFromGitHub { ... }; + src = fetchFromGitHub { + #... + }; # change your entry file (default is `app.ts`) entry = "app.ts"; @@ -32,7 +34,9 @@ ags.bundle { # GTK 4 support is opt-in enableGtk4 = true; - meta = { ... }; + meta = { + #... + }; } ``` diff --git a/doc/languages-frameworks/factor.section.md b/doc/languages-frameworks/factor.section.md index 62db50e1ff6a..0d67eede4d34 100644 --- a/doc/languages-frameworks/factor.section.md +++ b/doc/languages-frameworks/factor.section.md @@ -125,7 +125,7 @@ factorPackages.buildFactorApplication (finalAttrs: { version = "1.0"; src = fetchurl { - url = "https://some-forge.org/foo-${finalAttrs.version}.tar.gz" + url = "https://some-forge.org/foo-${finalAttrs.version}.tar.gz"; }; }) ``` diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 9acfd4181108..655f5f9db435 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -323,7 +323,7 @@ buildNpmPackage { npmRoot = ./.; fetcherOpts = { # Pass 'curlOptsList' to 'pkgs.fetchurl' while fetching 'axios' - { "node_modules/axios" = { curlOptsList = [ "--verbose" ]; }; } + "node_modules/axios" = { curlOptsList = [ "--verbose" ]; }; }; }; @@ -410,7 +410,9 @@ stdenv.mkDerivation (finalAttrs: { pname = "foo"; version = "0-unstable-1980-01-01"; - src = ...; + src = { + #... + }; nativeBuildInputs = [ nodejs @@ -439,7 +441,9 @@ stdenv.mkDerivation (finalAttrs: { pname = "foo"; version = "0-unstable-1980-01-01"; - src = ...; + src = { + # ... + }; pnpmInstallFlags = [ "--shamefully-hoist" ]; @@ -466,14 +470,16 @@ Assuming the following directory structure, we can define `sourceRoot` and `pnpm ``` ```nix - ... +{ + # ... pnpmDeps = pnpm.fetchDeps { - ... + # ... sourceRoot = "${finalAttrs.src.name}/frontend"; }; # by default the working directory is the extracted source pnpmRoot = "frontend"; +} ``` #### PNPM Workspaces {#javascript-pnpm-workspaces} @@ -484,11 +490,13 @@ which will make PNPM only install dependencies for those workspace packages. For example: ```nix -... +{ +# ... pnpmWorkspaces = [ "@astrojs/language-server" ]; pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pnpmWorkspaces; - ... + #... +}; } ``` @@ -498,6 +506,7 @@ Note that you do not need to set `sourceRoot` to make this work. Usually in such cases, you'd want to use `pnpm --filter= build` to build your project, as `npmHooks.npmBuildHook` probably won't work. A `buildPhase` based on the following example will probably fit most workspace projects: ```nix +{ buildPhase = '' runHook preBuild @@ -505,6 +514,7 @@ buildPhase = '' runHook postBuild ''; +} ``` #### Additional PNPM Commands and settings {#javascript-pnpm-extraCommands} @@ -513,13 +523,15 @@ If you require setting an additional PNPM configuration setting (such as `dedupe set `prePnpmInstall` to the right commands to run. For example: ```nix +{ prePnpmInstall = '' pnpm config set dedupe-peer-dependants false ''; pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) prePnpmInstall; - ... + # ... }; +} ``` In this example, `prePnpmInstall` will be run by both `pnpm.configHook` and by the `pnpm.fetchDeps` builder. diff --git a/doc/languages-frameworks/maven.section.md b/doc/languages-frameworks/maven.section.md index 88fe4d0c9224..548e2162484d 100644 --- a/doc/languages-frameworks/maven.section.md +++ b/doc/languages-frameworks/maven.section.md @@ -91,7 +91,7 @@ jd-cli.overrideMavenAttrs (old: rec { # old mvnHash of 1.2.0 maven dependencies mvnHash = "sha256-N9XC1pg6Y4sUiBWIQUf16QSXCuiAPpXEHGlgApviF4I="; -}); +}) ``` ::: @@ -129,7 +129,7 @@ maven.buildMavenPackage rec { "org.apache.maven.surefire:surefire-junit-platform:3.1.2" "org.junit.platform:junit-platform-launcher:1.10.0" ]; -}; +} ``` ::: diff --git a/doc/languages-frameworks/neovim.section.md b/doc/languages-frameworks/neovim.section.md index 1c58170e3fe6..5e2cc00c43d6 100644 --- a/doc/languages-frameworks/neovim.section.md +++ b/doc/languages-frameworks/neovim.section.md @@ -116,9 +116,11 @@ top-level while luarocks installs them in various subfolders by default. For instance: ```nix +{ rtp-nvim = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.rtp-nvim; }; +} ``` To update these packages, you should use the lua updater rather than vim's. @@ -164,16 +166,19 @@ The check hook will fail the build if any modules cannot be loaded. This encoura To only check a specific module, add it manually to the plugin definition [overrides](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix). ```nix +{ gitsigns-nvim = super.gitsigns-nvim.overrideAttrs { dependencies = [ self.plenary-nvim ]; nvimRequireCheck = "gitsigns"; }; +} ``` Some plugins will have lua modules that require a user configuration to function properly or can contain optional lua modules that we dont want to test requiring. We can skip specific modules using `nvimSkipModules`. Similar to `nvimRequireCheck`, it accepts a list of strings. - `nvimSkipModules = [ MODULE1 MODULE2 ];` ```nix +{ asyncrun-vim = super.asyncrun-vim.overrideAttrs { nvimSkipModules = [ # vim plugin with optional toggleterm integration @@ -181,14 +186,17 @@ We can skip specific modules using `nvimSkipModules`. Similar to `nvimRequireChe "asyncrun.toggleterm2" ]; }; +} ``` In rare cases, we might not want to actually test loading lua modules for a plugin. In those cases, we can disable `neovimRequireCheck` with `doCheck = false;`. This can be manually added through plugin definition overrides in the [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix). ```nix +{ vim-test = super.vim-test.overrideAttrs { # Vim plugin with a test lua file doCheck = false; }; +} ```