Open doronbehar opened 5 months ago
Is there a form of migration guide to use the new hooks?
I am using some scripted hacks to get the upstream yarn file, which also needs to be converted to the older v1 file to be used in nixpkgs. There are some dirty hacks involved, specific to pgadmin4
, which would have to be used in the main derivation and not in the seperate update.sh
script which right now will commit the fixed and ready to use yarn.lock
file.
(https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/admin/pgadmin/update.sh#L8-L16)
Also mkYarnModules
did not work for pgadmin4
which needed special treatment to build the frontend and also uses the yarn webpacker
. (https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/admin/pgadmin/default.nix#L110-L122)
Is there a way to not use the newly introduced hooks? Is this even desired? Or will I have to find some way to run my specially crafted update.sh
and preBuild
yarn magic with the hooks?
Thanks for willing to cooperate @gador . Indeed this can become complex... The new hooks I added indeed usually makes things a bit simpler, but in such a complex case as you describe, you will have to play with it yourself, and there is no migration guide. However, there are many migration examples in #318015 .
The non-trivial update scripts were discussed a bit in https://github.com/NixOS/nixpkgs/pull/318015 . I believe that with the new hooks you should be able to reach a point where you don't vendor any file (neither yarn.lock
or package.json
), and you should also be able to update your package with nix-update
which is capable of updating the hash of the offlineCache
by itself.
Thanks for all your work @doronbehar !
I looked through your examples. AFAI can see I could rely on my update script and build script as it is now and not use the newly introduced hooks and everything should continue to work fine. I don't use mkYarnPackage
anyway. However I will look into it if there is a way to use the hooks and maybe get rid of the packaged yarn.lock
file in the future!
I think we'll also need a yarnInstallHook: https://github.com/NixOS/nixpkgs/pull/328544
koodoo-reader
, listmonk
, spectral-language-server
, and treedome
were all migrated in #318015
Further, typst-preview
can be removed from the list, as it was removed in #325275.
thank you for migrating my package, sorry I didn't help in the migration
Do yarnConfigHook and yarnBuildHook support yarn v2 and up lockfiles?
Do yarnConfigHook and yarnBuildHook support yarn v2 and up lockfiles?
No, they rely on the same fetchYarnDeps
that was used by mkYarnPackage
.
Here's an issue about that: https://github.com/NixOS/nixpkgs/issues/254369
After https://github.com/NixOS/nixpkgs/pull/318015 will beNow that https://github.com/NixOS/nixpkgs/pull/318015 is merged, we should start deprecate the usage ofmkYarnPackage
, because it is too complex, and hard to maintain. It also requires to vendor into Nixpkgs apackage.json
file for each such package (to avoid IFD, see https://github.com/NixOS/nixpkgs/issues/296856 ).I'm opening this issue before #318015 is ready / merged to refer to this issue in a small documentation I will perform there.
The following list was generated with:
xplorer
: @dit7yakuro
: @LostAttractorzammad
: @n0emis @Radvendii @NetaliDevpowerdns-admin
: @Flakebi @zhaofenglimicropad
: @rhysmdnzauto-changelog
: @pyrox0codefresh
: @takacdiagnostic-languageserver
: @pyrox0dotenv-cli
: @pyrox0element-call
: @kilimnikget-graphql-schema
: @pyrox0gramma
: @pyrox0koodo-reader
: @TomaSajtlistmonk
: @RaitoBezariuspostlight-parser
: @viraptorspectral-language-server
: @momeemttreedome
: @tengkuizdihartypst-preview
: @berbermanvim-language-server
: @doronbeharyour_spotify
: @PatrickDaGyour_spotify
: @PatrickDaGzitadel
:devpod
: @maxbrunetyaml-language-server
:prettierd
: @NotAShelf @n3oneyreact-static
:yarn2nix
: no maintainers foundapache-airflow
: @bhipple @gbpdt @ingenieroarielbutton-card
: did not found attribute automatically, file ispkgs/servers/home-assistant/custom-lovelace-modules/button-card/default.nix
multiple-entity-row
: did not found attribute automatically, file ispkgs/servers/home-assistant/custom-lovelace-modules/multiple-entity-row/default.nix
zigbee2mqtt-networkmap
: did not found attribute automatically, file ispkgs/servers/home-assistant/custom-lovelace-modules/zigbee2mqtt-networkmap/default.nix
pomerium
: @lukegb @devusbjellyseerr
: @camillemndnmatrix-appservice-discord
: @pacienmatrix-appservice-slack
: @beardhatcode @chvpmatrix-hookshot
: @chvpmjolnir
: @jojoschgrafana-image-renderer
: @Ma27lemmy
: did not found attribute automatically, file ispkgs/servers/web-apps/lemmy/ui.nix
meshcentral
: @Ma27pgadmin
: @gadorsynapse-admin
: @mkg20001 @Ma27asar
: @xvapxnear-cli
: @Ekleogv2raya
: @LostAttractortop-level
: did not found attribute automatically, file ispkgs/top-level/all-packages.nix