Commit graph

288189 commits

Author SHA1 Message Date
R. RyanTM 69090bce70 sickgear: 0.23.15 -> 0.23.16 2021-05-08 17:59:54 -07:00
R. RyanTM 68155982fa kustomize-sops: 2.5.2 -> 2.5.5 2021-05-08 17:56:14 -07:00
R. RyanTM 6f09f253f5 birdfont: 2.29.1 -> 2.29.4 2021-05-08 17:52:20 -07:00
R. RyanTM c6dbb82d8c gmic: 2.9.6 -> 2.9.7 2021-05-08 17:51:07 -07:00
R. RyanTM 5fbb4944bc apt-cacher-ng: 3.6.1 -> 3.6.3 2021-05-08 17:50:59 -07:00
R. RyanTM 6d7d466423 cargo-fuzz: 0.10.0 -> 0.10.1 2021-05-08 17:50:21 -07:00
R. RyanTM b8016c6aa6 istioctl: 1.9.3 -> 1.9.4 2021-05-08 17:49:53 -07:00
R. RyanTM 577c3a5578 heimer: 2.4.0 -> 2.5.0 2021-05-08 17:47:03 -07:00
R. RyanTM 796208b8fc debootstrap: 1.0.123 -> 1.0.124 2021-05-08 17:46:08 -07:00
R. RyanTM b1d725d4d9 gcsfuse: 0.34.1 -> 0.35.0 2021-05-08 17:45:32 -07: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