Tests did not compile.
Message:
test/Servant/SwaggerSpec.hs:44:14: error:
• No instance for (HasSwagger
(Fragment Int :> Servant.Test.ComprehensiveAPI.GET))
arising from a use of ‘toSwagger’
• In the expression: toSwagger comprehensiveAPI
In an equation for ‘_x’: _x = toSwagger comprehensiveAPI
In the second argument of ‘($)’, namely
‘do let _x = toSwagger comprehensiveAPI
True `shouldBe` True’
|
44 | let _x = toSwagger comprehensiveAPI
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
By exporting it, we always make the new directories available
to subprocesses, regardless of whether the environment
variable existed before `nix-shell` was invoked.
This avoids the scenario where strictDeps is off and cross-compiled
XDG_DATA_DIRS content is brought into the environment.
While probably harmless for data like manpages and completion scripts,
this would cause issues when XDG_DATA_DIRS is used to find executables
or plugins. The Qt framework is known to behave like this and might
have run into incompatibilities.
XDG_DATA_DIRS is to /share as PATH is to /bin.
It was defined as part of the XDG basedir specification.
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
While it originated from the X Desktop Group, it is not limited to
the X11 ecosystem, as evidenced by its use in bash-completion.
The removal of ` && -d "$pkg/bin"` is ok, because this optimization is
already performed by `addToSearchPath`.
The default timeout is 10h on Hydra currently, so this timeout
setting is pointless or counterproductive.
This commit seems to have been made in error
https://github.com/NixOS/nixpkgs/pull/96767#issuecomment-724104413
This reverts commit c57fedb14b27292f6433287740e2eec303363ec3.
The timezone dumps have switched to a "slim" format since 2020b.
This has broken various packages, including
- go 1.4 (used for bootstrapping)
- haskellPackages.tz
- libical
The "fat" format can still be generated, as this commit shows.
It seems to create files that are *mostly* the slim versions with
some more data attached.
Not distributing dependencies via hydraPlatforms does not work,
so we keep meta simple.
(cherry picked from commit 4643796794897f2baa3a8015de5a9c9fd416f1ae)
Nix can perform static scope checking, but whenever code is inside
a `with` expression, the analysis breaks down, because it can't
know statically what's in the attribute set whose attributes were
brought into scope. In those cases, Nix has to assume that
everything works out.
Except it doesnt. Removing `with` from lib/ revealed an undefined
variable in an error message.
If that doesn't convince you that we're better off without `with`,
I can tell you that this PR results in a 3% evaluation performance
improvement because Nix can look up local variables by index.
This adds up with applications like the module system.
Furthermore, removing `with` makes the binding site of each
variable obvious, which helps with comprehension.
Discovered via https://github.com/NixOS/nixpkgs/pull/82743 which
improved option checking, causing an evaluation error that was
hard to understand without running the evaluation manually.
The image tag can be specified or generated from the output hash.
Previously, a generated tag could be recovered from the evaluated
image with some string operations.
However, with the introduction of streamLayeredImage, it's not
feasible to compute the generated tag yourself.
With this change, the imageTag attribute is set unconditionally,
for the buildImage, buildLayeredImage, streamLayeredImage functions.
Allow the darwin links code to overwrite libs that were already
copied, because C dependencies can occur multiple times.
Solves errors like
ln: failed to create symbolic link '/nix/store/higpc9xavwcjjzdipz7m9ly03bh7iy2z-hercules-ci-agent-source-0.7.0/lib/links/libboost_context.dylib': File exists
This is useful when buildLayeredImage is called in a generic way
that should allow simple (base) images to be built, which may not
reference any store paths.
This helps with troubleshooting exceptions in config values, which were hard
to track down for options with many definitions.
The trace will look like:
error: while evaluating the attribute 'config.foo' at undefined position:
[...]
while evaluating the option `foo':
[...]
while evaluating definitions from `/home/user/mymod.nix':
while evaluating 'dischargeProperties' at /home/user/nixpkgs/lib/modules.nix:464:25, called from /home/user/nixpkgs/lib/modules.nix:392:137:
while evaluating the attribute 'value' at /home/user/nixpkgs/lib/modules.nix:277:44:
Value error!
where the `/home/user/mymod.nix` module is
{ lib, ... }: {
options.foo = lib.mkOption {
type = lib.types.lines;
};
config.foo = builtins.throw "Value error!";
}
This adds me as a maintainer of arion-compose, which provides the
executable for the arion package (#71092).
Note that it has a different name because it was already taken on
Hackage before arion switched to Haskell.
This makes the function available without having to evaluate the
Nixpkgs fix-point, making it available in a more natural way for
code that deals with multiple Nixpkgs invocations.
Its definition is coupled to Nix rather than Nixpkgs, so it will
feel right at home in lib.
This change is API-compatible and hash-compatible with the previous
version.
At first I considered to write a rename function too, but adding
it name to cleanSourceWith was a no-brainer for ease of use. It
turns out that a rename function isn't any more useful than
cleanSourceWith.
To avoid having to write the identity predicate when renaming,
the filter is now optional.
builtins.path is supported since Nix 2.0 which is required by nixpkgs
The pkgs.nixos used to only expose system.build, which kind of made
sense in theory, but asking everyone to write modules when to want
to pull something out of a NixOS configuration is just not realistic.
In fact it's very inconvenient when you're trying to debug something.
This adds the config, options and anything that eval-config.nix
produces. Although this introduces the potential for attributes
of eval-config.nix output to shadow system.build, I don't expect
naming collisions to be commonplace, or to remain undetected during
evaluation. Also such an error should be easy to resolve, by explicitly
querying (pkgs.nixos {}).config.system.build.X, or by renaming X
to something other than config, options, extraArgs.
For historical reasons, self was ill-named. This removes its usages
from all-packages.nix and provides a deprecation message for those
who use a patched Nixpkgs.
Some packages seem to depend on the peculiarities of res, as can
be seen by making res into an alias of pkgs (normally "self").
The super variable doesn't have all that is needed.
Therefore the simple fix is not guaranteed to work and as such,
usages of res need to be changed to pkgs or super, case by case.
This is something that I have found useful in tests. In practice
I recommend that people call Nixpkgs once for performance and
simplicity. The inline documentation mentions this too.
The required argument 'hostPlatform' was missing from linuxPackages_custom's
call to linuxManualConfig.
In order to prevent this in the future, this commit adds
linuxPackages_custom_tinyconfig_kernel so linuxPackages_custom gets tested.
This also adds linuxConfig, to derivate default linux configurations
via make defconfig, make tinyconfig, etc.
Closes#38034.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Currently, when building NixOS from a git clone, Nix has to copy
the entire repo at >1GB into the store by default. That is not
necessary and causes a dumping large path message.
If you need the old behaviour for some reason, you will have to
specify it by passing the path to your repo explicitly as the
nixpkgs argument like this:
--arg nixpkgs '{outPath = ./.; revCount = 56789; shortRev = "gfedcba"; }'
The tasty-discover test suite depends on tasty-discover in $PATH during
test-suite compilation. Adding an untested build of itself to build
tools fixes the problem, without putting the untested version in
the package set.