Commit graph

288181 commits

Author SHA1 Message Date
Robert Hensing
7b0e0ca35e nixos-install-tools: init
The essential commands from the NixOS installer as a package

With this package, you get the commands like nixos-generate-config and
nixos-install that you would otherwise only find on a NixOS system, such
as an installer image.

This way, you can install NixOS using a machine that only has Nix.

It also includes the manpages, which are important because the commands
rely on those for providing --help.
2021-05-13 01:29:02 +02:00
Robert Hensing
75c4fc1c8b nixos/testing-python.nix: Move makeWrapper to nativeBuildInputs 2021-05-09 03:04:03 +02:00
R. RyanTM
5d9dc70c2f pony-corral: 0.4.1 -> 0.5.0 2021-05-08 17:45:16 -07:00
R. RyanTM
b8cf4172f2 gallery-dl: 1.17.1 -> 1.17.3 2021-05-08 17:45:05 -07:00
R. RyanTM
078e0b6f93 fcitx-engines.anthy: 0.2.3 -> 0.2.4 2021-05-08 17:42:11 -07:00
R. RyanTM
54933eeef0 ibus-engines.m17n: 1.4.4 -> 1.4.5 2021-05-08 17:39:30 -07:00
R. RyanTM
518269b7cb hydroxide: 0.2.17 -> 0.2.18 2021-05-08 17:39:08 -07:00
aszlig
34b467c4b0
Merge pull request #122201 (black -> pyflakes)
This switches the linting of the NixOS test driver script from Black
(which is a code *formatter*) to PyFlakes. Contrary to Black, which only
does formatting and a basic syntax check, PyFlakes actually performs
useful checks early on before spinning up VMs and evaluating the actual
test script and thus becomes actually useful in development rather than
an annoyance.

One of the reasons why Black has been an annoyance[1] was because it
assumed that the files that it's formatting aren't inlined inside
another programming language.

With NixOS VM tests however, we inline these Python scripts in the
testScript attribute. With some of them using string antiquotations,
things are getting rather ugly because Black now no longer formats
static code but generated code from Nix being used as a macro language.

This becomes especially annoying when an antiquotation contains an
option definition from the NixOS module system, since an unrelated
change might change its length or contents (eg. suddenly containing a
double quote) for which Black will report an error.

While issue #72964 has been sitting around for a while (and probably
annoyed everyone involved), nobody has actually proposed an
implementation until @roberth did a first pull request[2] yesterday
which added a "skipFormatter" attribute, which contrary to skipLint
silently disabled Black.

This has led to very legitimate opposition[3] from @flokli:

> As of now, this only adds an option that does exactly the same as the
> already existing one.
>
> black does more than linting, yes. Last September it was proposed to
> switch from black to to a more permissive (only-)linter.
>
> I don't think adding another option (skipFormatter) that currently
> does exactly the same as skipLint will help out of this confusion.
>
> IMHO, we should keep skipLint, but use a linter that doesn't format,
> at least not enforce the line length (due to the nix interpolation we
> do).

This was written while I was doing an alternative implementation and
pretty much sums up the work I'm merging here, which switches to
PyFlakes, which only checks for various errors in the code (eg.
undefined variables, shadowing, wrong comparisons and more) but does not
do *any* formatting.

Since Black didn't do any of the checks performed by PyFlakes (except a
basic syntax check), the existing test scripts needed to be fixed.

Thanks to @blaggacao, @Ma27 and @roberth for helping with testing and
fixing those scripts.

[1]: https://github.com/NixOS/nixpkgs/issues/72964
[2]: https://github.com/NixOS/nixpkgs/pull/122197
[3]: https://github.com/NixOS/nixpkgs/pull/122197#pullrequestreview-654997723
2021-05-09 02:36:00 +02:00
R. RyanTM
9a414c1488 libjwt: 1.12.1 -> 1.13.1 2021-05-08 17:34:13 -07:00
Robert T. McGibbon
0e0a10ceb6 python3Packages.pylint-django: 2.4.2 -> 2.4.3 2021-05-08 17:31:56 -07:00
R. RyanTM
bf8c4855e0 libmaxminddb: 1.5.2 -> 1.6.0 2021-05-08 17:31:04 -07:00
aszlig
54bc69637b
nixos/test/virtualbox: Fix linting errors
There were a bunch of unnecessary f-strings in there and I also removed
the "# fmt: on/off" comments, because we no longer use Black and thus
won't need those comments anymore.

Signed-off-by: aszlig <aszlig@nix.build>
2021-05-09 02:28:32 +02:00
aszlig
74bff4e667
nixos/tests/unbound: Remove unused 'json' import
Signed-off-by: aszlig <aszlig@nix.build>
2021-05-09 02:28:30 +02:00
David Arnold
6ad2e41269
nixos/testing: lint jellyfin test 2021-05-09 02:28:28 +02:00
aszlig
6c0ec527b9
nixos/tests/shadow: Fix linting errors
Linter errors reported:

  6:32 f-string is missing placeholders
  7:26 f-string is missing placeholders
  8:32 f-string is missing placeholders
  30:32 f-string is missing placeholders
  31:26 f-string is missing placeholders
  32:32 f-string is missing placeholders
  48:32 f-string is missing placeholders
  49:26 f-string is missing placeholders
  50:32 f-string is missing placeholders
  76:32 f-string is missing placeholders
  77:26 f-string is missing placeholders
  78:32 f-string is missing placeholders

Signed-off-by: aszlig <aszlig@nix.build>
2021-05-09 02:28:26 +02:00
aszlig
e157ad41cb
nixos/tests/printing: Remove unused 'sys' import
Signed-off-by: aszlig <aszlig@nix.build>
2021-05-09 02:28:23 +02:00
aszlig
c066cc3c0b
nixos/tests/networking: Fix str literal comparison
Linter error:

  use ==/!= to compare constant literals (str, bytes, int, float, tuple)

Signed-off-by: aszlig <aszlig@nix.build>
2021-05-09 02:28:20 +02:00
aszlig
62a518b904
nixos/tests/yggdrasil: Fix linting error
Linter error was: f-string is missing placeholders

Signed-off-by: aszlig <aszlig@nix.build>
2021-05-09 02:28:18 +02:00
Maximilian Bosch
b782440a62
nixosTests.custom-ca: lint 2021-05-09 02:28:16 +02:00
Maximilian Bosch
b4b5dcb669
nixosTests.containers-imperative: lint 2021-05-09 02:28:14 +02:00
Maximilian Bosch
fc76a44d0f
nixosTests.containers-custom-pkgs: lint
The new linter basically does

   def testScript
      # ...

before calling `pyflakes`. As this test-script is empty, it would lead
to a syntax-error unless `pass` is added.
2021-05-09 02:28:11 +02:00
Maximilian Bosch
774aba102a
nixosTests.chromium: lint
Note: I didn't execute it entirely because I'd have to build chromium
for this, but the diff appears fine.
2021-05-09 02:28:09 +02:00
Robert Hensing
b9e7fb14e2
nixos/tests/nfs: lint 2021-05-09 02:28:07 +02:00
Robert Hensing
06b070ffe7
nixosTests.acme: lint 2021-05-09 02:28:04 +02:00
Robert Hensing
56d9637119
nixos/testing: Set up scope for testScript linter
Our test driver exposes a bunch of variables and functions, which
pyflakes doesn't recognise by default because it assumes that the test
script is executed standalone. In reality however the test driver script
is using exec() on the testScript.

Fortunately pyflakes has $PYFLAKES_BUILTINS, which are the attributes
that are globally available on all modules to be checked. Since we only
have one module, using this environment variable is fine as opposed to
my first approach to this, which tried to use the unstable internal API
of pyflakes.

The attributes are gathered by the main derivation of the test driver,
because we don't want to end up defining a new attribute in the test
driver module just to being confused why using it in a test will result
in an error.

Another way we could have gathered these attributes would be in
mkDriver, which is where the linting takes place. However, we do have a
different set of Python dependencies in scope and duplicating these will
again just cause confusion over having it at one location only.

Signed-off-by: aszlig <aszlig@nix.build>
Co-Authored-By: aszlig <aszlig@nix.build>
2021-05-09 02:26:51 +02:00
Robert Hensing
71087b2bc4
nixos/testing-python.nix: Expose driver
(cherry picked from commit a2c9220568648b4528154ebd8e657add243ed0b4)
2021-05-09 02:26:40 +02:00
aszlig
c362a28fcf
nixos/testing: Switch from black to pyflakes
So far, we have used "black" for formatting the test code, which is
rather strict and opinionated and when used inline in Nix expressions it
creates all sorts of trouble.

One of the main annoyances is that when using strings coming from Nix
expressions (eg. store paths or option definitions from NixOS modules),
completely unrelated changes could cause tests to fail, since eg. black
wants lines to be broken.

Another downside of enforcing a certain kind of formatting is that it
makes the Nix expression code inconsistent because we're mixing two
spaces of indentation (common in nixpkgs) with four spaces of
indentation as defined in PEP-8. While this is perfectly fine for
standalone Python files, it really looks ugly and inconsistent IMO when
used within Nix strings.

What we actually want though is a linter that catches problems early on
before actually running the test, because this is *actually* helping in
development because running the actual VM test takes much longer.

This is the reason why I switched from black to pyflakes, because the
latter actually has useful checks, eg. usage of undefined variables,
invalid format arguments, duplicate arguments, shadowed loop vars and
more.

Signed-off-by: aszlig <aszlig@nix.build>
Closes: https://github.com/NixOS/nixpkgs/issues/72964
2021-05-09 02:26:37 +02:00
Jonathan Ringer
d76e167bd5 kronosnet: 1.20 -> 1.21 2021-05-08 17:26:06 -07:00
R. RyanTM
7c4e0e3a90 activemq: 5.16.1 -> 5.16.2 2021-05-08 17:15:13 -07:00
R. RyanTM
9a153cb280 eventstat: 0.04.11 -> 0.04.12 2021-05-08 17:14:59 -07:00
R. RyanTM
ed09e90e95 matio: 1.5.20 -> 1.5.21 2021-05-08 17:12:09 -07:00
R. RyanTM
5ab09faafb gretl: 2021a -> 2021b 2021-05-08 17:11:36 -07:00
Robert T. McGibbon
cba2ac2705 python3Packages.localzone: 0.9.7 -> 0.9.8 2021-05-08 17:10:23 -07:00
R. RyanTM
cb2604ae1a klibc: 2.0.8 -> 2.0.9 2021-05-08 17:09:38 -07:00
Robert T. McGibbon
da98a2dac8 python3Packages.crate: fix build 2021-05-08 17:09:01 -07:00
R. RyanTM
db770a84f1 lilypond: 2.22.0 -> 2.22.1 2021-05-08 17:06:50 -07:00
Robert T. McGibbon
dd7741f26e python3Packages.hyppo: fix build 2021-05-08 17:06:47 -07:00
Robert T. McGibbon
83fe0340fd python3Packages.ipympl: fix build 2021-05-08 17:05:07 -07:00
Robert T. McGibbon
b4640b3cfc python3Packages.pyaftership: fix build 2021-05-08 17:03:04 -07:00
Robert T. McGibbon
df68856b08 python3Packages.pyflume: fix build 2021-05-08 17:03:02 -07:00
R. RyanTM
2502b7cb91 libsolv: 0.7.17 -> 0.7.19 2021-05-08 17:01:00 -07:00
R. RyanTM
014d7ce377 liquibase: 4.3.2 -> 4.3.4 2021-05-08 16:59:51 -07:00
R. RyanTM
ce420d9792 libwpe: 1.8.0 -> 1.10.0 2021-05-08 16:57:35 -07:00
R. RyanTM
3a9d159ed1 libsForQt5.fcitx5-qt: 5.0.4 -> 5.0.6 2021-05-09 01:11:05 +02:00
Robert T. McGibbon
e7296ab998 python3Packages.pygmt: fix build 2021-05-08 15:52:02 -07:00
Léo Gaspard
08b00c20e0
Merge pull request #118442 from Ekleog/nixos-tests
Add nixos tests with names starting by A or B to all relevant packages
2021-05-09 00:37:26 +02:00
R. RyanTM
7f1a670e79 findomain: 4.0.1 -> 4.1.0 2021-05-08 15:35:50 -07:00
R. RyanTM
f0521b2416 codeql: 2.5.2 -> 2.5.3 2021-05-08 15:33:50 -07:00
R. RyanTM
49c8421f10 python38Packages.autopep8: 1.5.6 -> 1.5.7 2021-05-08 15:31:24 -07:00
Luke Granger-Brown
99f9c7c4d3 python3Packages.Markups: fix tests by providing PyYAML 2021-05-08 15:24:46 -07:00