diff --git a/.github/workflows/editorconfig.yml b/.github/workflows/editorconfig.yml index 081bd6146af..ae411fefbe4 100644 --- a/.github/workflows/editorconfig.yml +++ b/.github/workflows/editorconfig.yml @@ -11,7 +11,7 @@ on: jobs: tests: runs-on: ubuntu-latest - if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip editorconfig]')" + if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')" steps: - name: Get list of changed files from PR env: diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 5f949ddc56b..35f5f24ce30 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -16,7 +16,7 @@ permissions: jobs: labels: runs-on: ubuntu-latest - if: github.repository_owner == 'NixOS' + if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')" steps: - uses: actions/labeler@v4 with: diff --git a/doc/hooks/postgresql-test-hook.section.md b/doc/hooks/postgresql-test-hook.section.md index 64f7fd415b1..c53d841883e 100644 --- a/doc/hooks/postgresql-test-hook.section.md +++ b/doc/hooks/postgresql-test-hook.section.md @@ -9,7 +9,7 @@ stdenv.mkDerivation { # ... - checkInputs = [ + nativeCheckInputs = [ postgresql postgresqlTestHook ]; diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 9c3ac6de620..f0b302bbc35 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -1,13 +1,13 @@ # Haskell {#haskell} -The Haskell infrastructure in nixpkgs has two main purposes: The primary purpose +The Haskell infrastructure in Nixpkgs has two main purposes: The primary purpose is to provide a Haskell compiler and build tools as well as infrastructure for packaging Haskell-based packages. -The secondary purpose is to provide support for Haskell development environment +The secondary purpose is to provide support for Haskell development environments including prebuilt Haskell libraries. However, in this area sacrifices have been -made due to self-imposed restrictions in nixpkgs, to lessen the maintenance -effort and improve performance. (More details in the subsection +made due to self-imposed restrictions in Nixpkgs, to lessen the maintenance +effort and to improve performance. (More details in the subsection [Limitations.](#haskell-limitations)) ## Available packages {#haskell-available-packages} @@ -18,17 +18,17 @@ The compiler and most build tools are exposed at the top level: * Language specific tools: `cabal-install`, `stack`, `hpack`, … Many “normal” user facing packages written in Haskell, like `niv` or `cachix`, -are also exposed at the top level, so there is nothing haskell specific to +are also exposed at the top level, and there is nothing Haskell specific to installing and using them. -All of these packages originally are defined in the `haskellPackages` package +All of these packages are originally defined in the `haskellPackages` package set and are re-exposed with a reduced dependency closure for convenience. (see `justStaticExecutables` below) The `haskellPackages` set includes at least one version of every package from Hackage as well as some manually injected packages. This amounts to a lot of packages, so it is hidden from `nix-env -qa` by default for performance reasons. -You can still list all packages in the set like this, though: +You can still list all packages in the set like this: ```console $ nix-env -f '' -qaP -A haskellPackages @@ -39,22 +39,22 @@ haskellPackages.abacate abac haskellPackages.abc-puzzle abc-puzzle-0.2.1 … ``` -Also the default set `haskellPackages` is included on [search.nixos.org]. +Also, the `haskellPackages` set is included on [search.nixos.org]. The attribute names in `haskellPackages` always correspond with their name on -Hackage. Since Hackage allows names that are not valid Nix without extra -escaping, you sometimes need to extra care when handling attribute names like -`3dmodels`. +Hackage. Since Hackage allows names that are not valid Nix without escaping, +you need to take care when handling attribute names like `3dmodels`. For packages that are part of [Stackage], we use the version prescribed by a Stackage solver (usually the current LTS one) as the default version. For all other packages we use the latest version from Hackage. See -[below](#haskell-available-versions) to learn which versions exactly are provided. +[below](#haskell-available-versions) to learn which versions are provided +exactly. Roughly half of the 16K packages contained in `haskellPackages` don't actually build and are marked as broken semi-automatically. Most of those packages are -deprecated or unmaintained, but sometimes packages that should, don't build. -Very often fixing them is not a lot of work. +deprecated or unmaintained, but sometimes packages that should build, do not +build. Very often fixing them is not a lot of work.