diff --git a/.github/assign-by-files.yml b/.github/assign-by-files.yml new file mode 100644 index 000000000..f13b71776 --- /dev/null +++ b/.github/assign-by-files.yml @@ -0,0 +1,5 @@ +--- +# This files is used by https://github.com/marketplace/actions/auto-assign-reviewer-by-files +# to assign maintainers +"doc/**/*": + - fricklerhandwerk diff --git a/.github/workflows/assign-reviewer.yml b/.github/workflows/assign-reviewer.yml new file mode 100644 index 000000000..4371cbff4 --- /dev/null +++ b/.github/workflows/assign-reviewer.yml @@ -0,0 +1,12 @@ +name: "Auto Assign" +on: + - pull_request + +jobs: + assign_reviewer: + runs-on: ubuntu-latest + steps: + - uses: shufo/auto-assign-reviewer-by-files@v1.1.4 + with: + config: ".github/assign-by-files.yml" + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 75be788ef..7568145b6 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -21,7 +21,7 @@ jobs: fetch-depth: 0 - name: Create backport PRs # should be kept in sync with `version` - uses: zeebe-io/backport-action@v0.0.8 + uses: zeebe-io/backport-action@v0.0.9 with: # Config README: https://github.com/zeebe-io/backport-action#backport-action github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 505717921..dafba6d85 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: fetch-depth: 0 - uses: cachix/install-nix-action@v18 - run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV - - uses: cachix/cachix-action@v10 + - uses: cachix/cachix-action@v12 if: needs.check_secrets.outputs.cachix == 'true' with: name: '${{ env.CACHIX_NAME }}' @@ -59,7 +59,7 @@ jobs: fetch-depth: 0 - run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV - uses: cachix/install-nix-action@v18 - - uses: cachix/cachix-action@v10 + - uses: cachix/cachix-action@v12 with: name: '${{ env.CACHIX_NAME }}' signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' @@ -105,7 +105,7 @@ jobs: - uses: cachix/install-nix-action@v18 - run: echo CACHIX_NAME="$(echo $GITHUB_REPOSITORY-install-tests | tr "[A-Z]/" "[a-z]-")" >> $GITHUB_ENV - run: echo NIX_VERSION="$(nix --experimental-features 'nix-command flakes' eval .\#default.version | tr -d \")" >> $GITHUB_ENV - - uses: cachix/cachix-action@v10 + - uses: cachix/cachix-action@v12 if: needs.check_secrets.outputs.cachix == 'true' with: name: '${{ env.CACHIX_NAME }}' diff --git a/doc/manual/generate-builtins.nix b/doc/manual/generate-builtins.nix index 6c8b88da2..115bb3f94 100644 --- a/doc/manual/generate-builtins.nix +++ b/doc/manual/generate-builtins.nix @@ -1,16 +1,20 @@ -with builtins; -with import ./utils.nix; +builtinsDump: +let + showBuiltin = name: + let + inherit (builtinsDump.${name}) doc args; + in + '' +
${name} ${listArgs args}
+ ${name} "
- + concatStringsSep " " (map (s: "${s}") builtin.args)
- + "
+ Example + | ++ Description + | +
---|---|
+ + + *Basic values* + + + | ++ + + + | +
+ + `"hello world"` + + | ++ + A string + + | +
+ + ``` + '' + multi + line + string + '' + ``` + + | ++ + A multi-line string. Strips common prefixed whitespace. Evaluates to `"multi\n line\n string"`. + + | +
+ + `"hello ${ { a = "world" }.a }"` + + `"1 2 ${toString 3}"` + + `"${pkgs.bash}/bin/sh"` + + | +
+
+ String interpolation (expands to `"hello world"`, `"1 2 3"`, `"/nix/store/ |
+
+ + `true`, `false` + + | ++ + Booleans + + | +
+ + `null` + + | ++ + Null value + + | +
+ + `123` + + | ++ + An integer + + | +
+ + `3.141` + + | ++ + A floating point number + + | +
+ + `/etc` + + | ++ + An absolute path + + | +
+ + `./foo.png` + + | ++ + A path relative to the file containing this Nix expression + + | +
+ + `~/.config` + + | +
+
+ A home path. Evaluates to the `" |
+
+
+ |
+ + + Search path. Value determined by [`$NIX_PATH` environment variable](../command-ref/env-common.md#env-NIX_PATH). + + | +
+ + *Compound values* + + | ++ + + + | +
+ + `{ x = 1; y = 2; }` + + | ++ + A set with attributes named `x` and `y` + + | +
+ + `{ foo.bar = 1; }` + + | ++ + A nested set, equivalent to `{ foo = { bar = 1; }; }` + + | +
+ + `rec { x = "foo"; y = x + "bar"; }` + + | ++ + A recursive set, equivalent to `{ x = "foo"; y = "foobar"; }` + + | +
+ + `[ "foo" "bar" "baz" ]` + + `[ 1 2 3 ]` + + `[ (f 1) { a = 1; b = 2; } [ "c" ] ]` + + | ++ + Lists with three elements. + + | +
+ + *Operators* + + | ++ + + + | +
+ + `"foo" + "bar"` + + | ++ + String concatenation + + | +
+ + `1 + 2` + + | ++ + Integer addition + + | +
+ + `"foo" == "f" + "oo"` + + | ++ + Equality test (evaluates to `true`) + + | +
+ + `"foo" != "bar"` + + | ++ + Inequality test (evaluates to `true`) + + | +
+ + `!true` + + | ++ + Boolean negation + + | +
+ + `{ x = 1; y = 2; }.x` + + | ++ + Attribute selection (evaluates to `1`) + + | +
+ + `{ x = 1; y = 2; }.z or 3` + + | ++ + Attribute selection with default (evaluates to `3`) + + | +
+ + `{ x = 1; y = 2; } // { z = 3; }` + + | ++ + Merge two sets (attributes in the right-hand set taking precedence) + + | +
+ + *Control structures* + + | ++ + + + | +
+ + `if 1 + 1 == 2 then "yes!" else "no!"` + + | ++ + Conditional expression + + | +
+ + `assert 1 + 1 == 2; "yes!"` + + | ++ + Assertion check (evaluates to `"yes!"`). + + | +
+ + `let x = "foo"; y = "bar"; in x + y` + + | ++ + Variable definition + + | +
+ + `with builtins; head [ 1 2 3 ]` + + | ++ + Add all attributes from the given set to the scope (evaluates to `1`) + + | +
+ + *Functions (lambdas)* + + | ++ + + + | +
+ + `x: x + 1` + + | ++ + A function that expects an integer and returns it increased by 1 + + | +
+ + `x: y: x + y` + + | ++ + Curried function, equivalent to `x: (y: x + y)`. Can be used like a function that takes two arguments and returns their sum. + + | +
+ + `(x: x + 1) 100` + + | ++ + A function call (evaluates to 101) + + | +
+ + `let inc = x: x + 1; in inc (inc (inc 100))` + + | ++ + A function bound to a variable and subsequently called by name (evaluates to 103) + + | +
+ + `{ x, y }: x + y` + + | ++ + A function that expects a set with required attributes `x` and `y` and concatenates them + + | +
+ + `{ x, y ? "bar" }: x + y` + + | ++ + A function that expects a set with required attribute `x` and optional `y`, using `"bar"` as default value for `y` + + | +
+ + `{ x, y, ... }: x + y` + + | ++ + A function that expects a set with required attributes `x` and `y` and ignores any other attributes + + | +
+ + `{ x, y } @ args: x + y` + + `args @ { x, y }: x + y` + + | ++ + A function that expects a set with required attributes `x` and `y`, and binds the whole set to `args` + + | +
+ + *Built-in functions* + + | ++ + + + | +
+ + `import ./foo.nix` + + | ++ + Load and return Nix expression in given file + + | +
+ + `map (x: x + x) [ 1 2 3 ]` + + | ++ + Apply a function to every element of a list (evaluates to `[ 2 4 6 ]`) + + | +