Skip to content

sonarr: avoid fetch-deps in updateScript#339220

Open
tie wants to merge 3 commits intoNixOS:masterfrom
tie:sonarr-update-script
Open

sonarr: avoid fetch-deps in updateScript#339220
tie wants to merge 3 commits intoNixOS:masterfrom
tie:sonarr-update-script

Conversation

@tie
Copy link
Member

@tie tie commented Sep 3, 2024

Description of changes

There seems to be something wrong with the performance of passthru.fetch-deps (perhaps after the recent refactors in #327651?). For sonarr package, we can avoid future regressions (and using nix build/nix develop from update script) by running nuget-to-nix directly since we already have an ad-hoc update script.

Before:

$ updateScript=$(nix build --no-link --print-out-paths --file . sonarr.updateScript)
$ time "$updateScript"
(output omitted, runs unrelated yarn hooks as well)
real    12m16.377s
user    1m59.283s
sys     0m57.620s

After:

$ updateScript=$(nix build --no-link --print-out-paths --file . sonarr.updateScript)
$ time "$updateScript"
(output omitted)
real    3m31.448s
user    1m33.406s
sys     0m36.634s

Related:

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

Suppresses log spam during build for the functionality that is not
available in the Nix sandbox.
@tie tie requested a review from corngood September 3, 2024 09:47
@tie tie marked this pull request as ready for review September 3, 2024 10:04
@tie tie force-pushed the sonarr-update-script branch from c01bed5 to 334cc75 Compare September 3, 2024 10:12
@tie tie requested a review from purcell September 3, 2024 10:13
@ofborg ofborg bot added 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. labels Sep 3, 2024
@ofborg ofborg bot requested a review from purcell September 3, 2024 10:52
@tie tie force-pushed the sonarr-update-script branch 3 times, most recently from 59d4053 to 6cb9e04 Compare September 3, 2024 12:09
Copy link
Contributor

@corngood corngood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think I like this idea. It makes the package much more of an outlier in terms of how it interacts with the dotnet infrastructure, and will be difficult to maintain.

I think what you're seeing with the timings is just the fact that by default, fetch-deps restores for all supported RIDs, and with your custom fetcher, it's only using one.

If that's not the case, I'd like to investigate the performance problem.

@tie tie force-pushed the sonarr-update-script branch 2 times, most recently from 8d0bb6a to e6824cc Compare September 3, 2024 18:59
Before:

	$ updateScript=$(nix build --no-link --print-out-paths --file . sonarr.updateScript)
	$ time "$updateScript"
	(output omitted, runs unrelated yarn hooks as well)
	real    12m16.377s
	user    1m59.283s
	sys     0m57.620s

After:

	$ updateScript=$(nix build --no-link --print-out-paths --file . sonarr.updateScript)
	$ time "$updateScript"
	(output omitted)
	real    3m31.448s
	user    1m33.406s
	sys     0m36.634s
@tie tie force-pushed the sonarr-update-script branch from e6824cc to 3368468 Compare September 3, 2024 19:45
@tie
Copy link
Member Author

tie commented Sep 3, 2024

If that's not the case, I'd like to investigate the performance problem.

@corngood, the performance regressions seems to be caused by --disable-parallel flag (we don’t inherit enableParallelBuilding argument in buildDotnetModule, but previous fetch-deps implementation was using it).

Details
$ git diff --no-ext-diff
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
index 418c90c64899..e36e339dfa7f 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
@@ -147,6 +147,8 @@ let
       dotnetUseAppHost = useAppHost;
       inherit useDotnetFromEnv;
 
+      inherit enableParallelBuilding;
+
       nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
         dotnetConfigureHook
         dotnetBuildHook
diff --git a/pkgs/by-name/so/sonarr/update.py b/pkgs/by-name/so/sonarr/update.py
index 195a2d5d05ac..9996e9cd3b22 100644
--- a/pkgs/by-name/so/sonarr/update.py
+++ b/pkgs/by-name/so/sonarr/update.py
@@ -152,7 +152,7 @@ with tempfile.TemporaryDirectory() as work_dir:
             fetch_deps,
             deps_file,
         ],
-        stdout=subprocess.DEVNULL,
+        # stdout=subprocess.DEVNULL,
         check=True,
     )
 
$ nix build --file . sonarr.updateScript
$ time ./result
structuredAttrs is enabled
Running phase: createNugetDirs
The template "NuGet Config" was created successfully.

Processing post-creation actions...


Package source with Name: _nix added successfully.
Running phase: unpackPhase
unpacking source archive /nix/store/y3qvfp3n67d2sm0xl9zfzdl3q2q759hf-source
source root is source
Running phase: patchPhase
applying patch /nix/store/gaf5kjl5nb2gqvcmwk12qv5ap8lra3rf-nuget-config.patch
patching file NuGet.Config (renamed from src/NuGet.Config)
Running phase: configureNuget
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
Executing dotnetConfigureHook
Package source with Name: _nix added successfully.
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.RuntimePatches/Sonarr.RuntimePatches.csproj (in 12.74 sec).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 22.78 sec).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 1.62 min).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 1.62 min).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 1.66 min).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 1.66 min).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Console/Sonarr.Console.csproj (in 1.66 min).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 1.66 min).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.RuntimePatches/Sonarr.RuntimePatches.csproj (in 377 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 377 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 387 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 387 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 425 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 426 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 426 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Console/Sonarr.Console.csproj (in 427 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.RuntimePatches/Sonarr.RuntimePatches.csproj (in 375 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 375 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 407 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 408 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 461 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 461 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 466 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Console/Sonarr.Console.csproj (in 469 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 404 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.RuntimePatches/Sonarr.RuntimePatches.csproj (in 405 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 425 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 425 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 492 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 495 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 497 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Console/Sonarr.Console.csproj (in 500 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 216 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 3.78 sec).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 248 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 248 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 267 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 267 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 267 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 267 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 360 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 380 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 380 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 431 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 431 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 2.94 sec).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Api.Test/Sonarr.Api.Test.csproj (in 6.25 sec).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 347 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 358 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 358 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 359 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 396 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Api.Test/Sonarr.Api.Test.csproj (in 396 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 397 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 380 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 395 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 395 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 399 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 448 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 450 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Api.Test/Sonarr.Api.Test.csproj (in 453 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 381 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 406 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 407 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 406 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 463 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 464 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Api.Test/Sonarr.Api.Test.csproj (in 463 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 272 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 411 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 503 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 510 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 513 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 638 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 647 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 653 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 657 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 294 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 329 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 362 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 363 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 362 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 396 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 400 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 399 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 400 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 279 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 346 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 395 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 395 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 400 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 449 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 453 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 453 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 457 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 294 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 353 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 409 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 410 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 409 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 463 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 465 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 466 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 466 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 295 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 313 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 315 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core.Test/Sonarr.Core.Test.csproj (in 359 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 299 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 309 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 312 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core.Test/Sonarr.Core.Test.csproj (in 331 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 316 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 338 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 339 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core.Test/Sonarr.Core.Test.csproj (in 375 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 314 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 336 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 339 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core.Test/Sonarr.Core.Test.csproj (in 374 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 378 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 406 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 406 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 406 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 470 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host.Test/Sonarr.Host.Test.csproj (in 471 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 477 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 480 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 418 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 412 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 416 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 422 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host.Test/Sonarr.Host.Test.csproj (in 459 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 461 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 461 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 460 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 394 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 424 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 421 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 421 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 492 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host.Test/Sonarr.Host.Test.csproj (in 491 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 494 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 495 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 431 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 451 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 451 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 453 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 501 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 503 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 502 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host.Test/Sonarr.Host.Test.csproj (in 502 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 303 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 330 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 331 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Libraries.Test/Sonarr.Libraries.Test.csproj (in 378 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 312 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 324 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 325 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Libraries.Test/Sonarr.Libraries.Test.csproj (in 346 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 317 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 337 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 337 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Libraries.Test/Sonarr.Libraries.Test.csproj (in 374 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 333 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 348 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 351 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Libraries.Test/Sonarr.Libraries.Test.csproj (in 389 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 304 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 483 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 489 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 576 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 583 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 591 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 744 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 769 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono.Test/Sonarr.Mono.Test.csproj (in 769 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 770 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 770 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 326 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 363 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 363 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 392 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 392 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 392 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 439 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 439 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 439 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono.Test/Sonarr.Mono.Test.csproj (in 439 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 439 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 312 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 389 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 390 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 435 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 436 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 441 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 506 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 509 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono.Test/Sonarr.Mono.Test.csproj (in 509 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 509 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 510 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Dummy/Sonarr.Test.Dummy.csproj (in 314 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono/Sonarr.Mono.csproj (in 390 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 399 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 437 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.SignalR/Sonarr.SignalR.csproj (in 438 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 445 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Http/Sonarr.Http.csproj (in 513 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj (in 508 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/Sonarr.Api.V3/Sonarr.Api.V3.csproj (in 514 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Host/Sonarr.Host.csproj (in 515 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Mono.Test/Sonarr.Mono.Test.csproj (in 508 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 305 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 319 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 322 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 275 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 286 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 287 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 299 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 313 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 315 ms).
  Determining projects to restore...
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Common/Sonarr.Common.csproj (in 325 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj (in 353 ms).
  Restored /tmp/tmp.Zis7TQuzD1/source/src/NzbDrone.Core/Sonarr.Core.csproj (in 354 ms).
yarn config v1.22.22
success Set "yarn-offline-mirror" to "/nix/store/c3r7901ccdnmcw23j735jn5igfgijxcb-offline".
Done in 0.04s.
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > [email protected]" has incorrect peer dependency "react@^16.13".
warning " > [email protected]" has incorrect peer dependency "react-dnd-html5-backend@^11.1.3".
warning " > [email protected]" has incorrect peer dependency "react-dnd-touch-backend@^11.1.3".
warning " > [email protected]" has incorrect peer dependency "react-dom@^16.13".
warning "react-dnd-multi-backend > [email protected]" has incorrect peer dependency "react@^16.13.1".
warning "react-dnd-multi-backend > [email protected]" has incorrect peer dependency "react-dnd@^11.1.3".
warning "react-document-title > [email protected]" has incorrect peer dependency "react@^0.13.0 || ^0.14.0 || ^15.0.0 || ^16.0.0".
warning " > [email protected]" has incorrect peer dependency "[email protected] || ^15.0.0 || ^16.0.0".
warning "react-popper > [email protected]" has incorrect peer dependency "react@^0.14.0 || ^15.0.0 || ^16.0.0".
warning " > [email protected]" has incorrect peer dependency "react@^15.3.0 || ^16.0.0-alpha".
warning " > [email protected]" has incorrect peer dependency "react-dom@^15.3.0 || ^16.0.0-alpha".
[4/4] Building fresh packages...
warning Ignored scripts due to flag.
Done in 12.60s.
patching script interpreter paths in node_modules
node_modules/@babel/helper-compilation-targets/node_modules/update-browserslist-db/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/@babel/helper-compilation-targets/node_modules/browserslist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/@babel/parser/bin/babel-parser.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/@typescript-eslint/typescript-estree/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/@typescript-eslint/utils/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/autoprefixer/node_modules/browserslist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/autoprefixer/node_modules/update-browserslist-db/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/autoprefixer/bin/autoprefixer: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/browserslist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/clipboard/.husky/pre-commit: interpreter directive changed from "#!/bin/sh" to "/nix/store/w7r5zwsyfrd99sbnfr7zrg7xhv8gq7nf-bash-5.2p32/bin/sh"
node_modules/core-js-compat/node_modules/browserslist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/core-js-compat/node_modules/update-browserslist-db/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/crc-32/bin/crc32.njs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/css-loader/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/css-modules-typescript-loader/node_modules/json5/lib/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/cssesc/bin/cssesc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/del/node_modules/rimraf/bin.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/envinfo/dist/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/errno/build.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/errno/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/eslint-config-prettier/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/eslint-plugin-react/node_modules/resolve/bin/resolve: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/flat-cache/node_modules/rimraf/bin.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/flat/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/fork-ts-checker-webpack-plugin/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/global-prefix/node_modules/which/bin/which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/he/bin/he: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/html-minifier-terser/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/image-size/bin/image-size.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/import-local/fixtures/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/jiti/bin/jiti.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/jsesc/bin/jsesc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/loose-envify/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/mime/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/json5/lib/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/less/node_modules/mime/src/build.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/less/node_modules/mime/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/less/node_modules/semver/bin/semver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/less/bin/lessc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/nanoid/bin/nanoid.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/needle/bin/needle: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/mkdirp/bin/cmd.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/normalize-package-data/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/postcss-loader/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/prettier/bin-prettier.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/read-pkg/node_modules/semver/bin/semver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/regjsparser/node_modules/jsesc/bin/jsesc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/regjsparser/bin/parser: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/resolve/bin/resolve: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/rgb/bin/rgb: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/rimraf/dist/cjs/src/bin.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/sass/sass.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/stylelint/bin/stylelint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/stylus/bin/stylus: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/terser/bin/terser: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/terser/bin/uglifyjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/ts-loader/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/tsconfig-paths/node_modules/json5/lib/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/update-browserslist-db/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/webpack/bin/webpack.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/webpack-cli/bin/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/rbv8jmnhifp2znxc4issvl7zgmy7f24j-nodejs-20.16.0/bin/node"
Finished dotnetConfigureHook
configurePhase completed in 2 minutes 43 seconds
Succesfully wrote lockfile to /tmp/tmpl4u98bmj/deps.nix

real    4m48.263s
user    2m21.308s
sys     1m0.759s

I don't think I like this idea. It makes the package much more of an outlier in terms of how it interacts with the dotnet infrastructure, and will be difficult to maintain.

Ideally, I’d like to use some prefetch-dotnet-deps script on the prefetched source (similar to prefetch-yarn-deps) instead of fetch-deps building all dependencies and starting an entire development shell with stdenv, phases, hooks and whatnot. E.g. the current fetch-deps implementation runs completely unrelated yarn postConfigure hook that we use for Sonarr frontend (see log above) and it’s hard to compose fetch-deps with different language ecosystems and tools in general. Running dotnet restore & nuget-to-nix decouples update process from Nix derivations, but some tool to encapsulate this would definitely be useful (parametrized by projects & runtime IDs).

I think what you're seeing with the timings is just the fact that by default, fetch-deps restores for all supported RIDs, and with your custom fetcher, it's only using one.

This shouldn’t be the case, updateScript is using the same list of projects, runtime IDs, and dotnet flags (but from nix eval instead of nix develop/nix-shell).

nix repl:

Details
nix repl
Nix 2.22.1
Type :? for help.
nix-repl> :l .                  
Added 22560 variables.

nix-repl> sonarr.meta.platforms
[
  "aarch64-darwin"
  "aarch64-linux"
  "x86_64-darwin"
  "x86_64-linux"
]

nix-repl> sonarr.dotnetProjectFiles ++ sonarr.dotnetTestProjectFiles
[
  "src/NzbDrone.Console/Sonarr.Console.csproj"
  "src/NzbDrone.Mono/Sonarr.Mono.csproj"
  "src/NzbDrone.Api.Test/Sonarr.Api.Test.csproj"
  "src/NzbDrone.Common.Test/Sonarr.Common.Test.csproj"
  "src/NzbDrone.Core.Test/Sonarr.Core.Test.csproj"
  "src/NzbDrone.Host.Test/Sonarr.Host.Test.csproj"
  "src/NzbDrone.Libraries.Test/Sonarr.Libraries.Test.csproj"
  "src/NzbDrone.Mono.Test/Sonarr.Mono.Test.csproj"
  "src/NzbDrone.Test.Common/Sonarr.Test.Common.csproj"
]

update.py:

Details

projects = p.dotnetProjectFiles ++ p.dotnetTestProjectFiles;
runtimes = map systemToDotnetRid p.meta.platforms;
dotnetFlags = p.dotnetFlags;

for runtime in package_runtimes:
for project in package_projects:
print(f"Running dotnet restore --runtime {runtime} {project}")
subprocess.run(
[
"dotnet",
"restore",
"--property:ContinuousIntegrationBuild=true",
"--property:Deterministic=true",
"--property:NuGetAudit=false",
f"--runtime={runtime}",
f"--packages={nuget_packages}",
*dotnet_flags,
project,
],

dotnet-configure-hook:

Details

for projectFile in "${dotnetProjectFilesArray[@]}" "${dotnetTestProjectFilesArray[@]}"; do
dotnetRestore "$projectFile"

for runtimeId in "${dotnetRuntimeIdsArray[@]}"; do
dotnet restore ${1+"$projectFile"} \

@corngood
Copy link
Contributor

corngood commented Sep 3, 2024

fetch-deps building all dependencies and starting an entire development shell with stdenv, phases, hooks and whatnot

Without doing this, it seems like it would be difficult to identify nuget package dependencies that are provided by those dependencies (buildInputs) and wired up with the dotnet hooks.

@wegank wegank added the 2.status: merge conflict This PR has merge conflicts with the target branch label Sep 27, 2024
@nixpkgs-ci nixpkgs-ci bot added 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 12.approvals: 1 This PR was reviewed and approved by one person. labels Jun 25, 2025
@nixpkgs-ci nixpkgs-ci bot added the 2.status: merge-bot eligible This PR can be merged by commenting "@NixOS/nixpkgs-merge-bot merge". label Nov 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.status: merge conflict This PR has merge conflicts with the target branch 2.status: merge-bot eligible This PR can be merged by commenting "@NixOS/nixpkgs-merge-bot merge". 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 12.approvals: 1 This PR was reviewed and approved by one person.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants