-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
playwright: package with buildNpmPackage #302759
Conversation
@kalekseev Nice, thanks for working on this! The current implementation, using node2nix has the benefit of automatically updating the hashes. Could we do the same here? i.e. update them in updateScript? |
2557d20
to
4fd5530
Compare
we have to write a bunch of bash in update.sh |
Are you going to do so? Otherwise, I could take a look at it next week. |
@phaer don't know if I will have time to work on this PR this week, feel free to work on it. BTW After recent changes it looks like playwright, playwright-test, playwright-driver were unified as single package
|
195c2aa
to
429aae2
Compare
429aae2
to
5aed73f
Compare
5aed73f
to
fbc7571
Compare
@phaer I think I'm done with this one, updated update.sh with chatgpt help, not the best code but good enough for start. |
# Set the correct driver path with the help of a patch in patches | ||
substituteInPlace playwright/_impl/_driver.py \ | ||
--replace "@driver@" "${driver}/bin/playwright" | ||
--replace "@driver@" "${driver}/cli.js" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same
279e7af
to
84dce4a
Compare
Result of 52 packages built:
|
84dce4a
to
ff625d5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- I built this successfully on
aarch64-darwin
, with a disabled sandbox - but that's already been needed before that PR on darwin. - Some smaller style-related comments regarding update.sh. I also think that the update script could maybe be moved to
pkgs/development/web/playwright
, as it's mostly affecting the driver.nix file there? - I think the bundling solution works well, Thanks :)
- As this PR is more up-to-date now, I'll re-base & update Playwright: browser improvements, update #298944 once this one got merged.
update-source-version python3Packages.playwright "$version" | ||
|
||
# Update package-lock.json files for all npm deps that are built in playwright | ||
# TODO: skip if update-source-version reported the same version |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's not checked yet, I believe?
replace_sha() { | ||
sed -i "s|$1 = \".\{44,52\}\"|$1 = \"$2\"|" "$driver_file" | ||
# Function to download `package-lock.json` for a given source path and update hash | ||
update_hash() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
update_hash() { | |
update_npm_hash() { |
or something like this? Just to show that it's about npm/nodejs packages here, we are in ./pkgs/development/python-modules here.
@kalekseev is there anything one could do to to help pushing it forward? Or is it just waiting to a merge by a commuter. None of my comments should be blocking anything, this is definitely progress in my view! |
@phaer I believe it's ready to be merged, if someone sees any blockers I'm ready to fix them |
@teto This might be good to merge then, if you don't have any objections? I think you might be the only one with commit bit among the current reviewers :) |
@phaer yes I am interested in merging this. I want to test it first, most likely next monday. Could you rebase to fix the conflict please ? |
b8a8575
to
64de115
Compare
Can we update the playwright to 1.46? |
Thanks for rebasing. I am sorry it takes so long. Playwright is something I help with on the side and before merging the PR, I would like to test it on our infrastructure, which needs a patch in staging-next. Once my patch reaches nixos-unstable, I can check this with our playwright code and if all goes well I will merge. So this may take a few more days. Other nixpkgs contributors may merge it before me. I will rebase if need be so you dont spend more time on this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I couldn't find any removed deps in this commit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deps were removed in master, updated commit message
pname = "playwright"; | ||
inherit version src; | ||
|
||
sourceRoot = "${src.name}"; # update.sh depends on sourceRoot presence |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sourceRoot = "${src.name}"; # update.sh depends on sourceRoot presence | |
sourceRoot = src.name; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
update.sh script depends on this form.
64de115
to
0f341d6
Compare
playwright-driver: 1.40.0 -> 1.46.0 python3Packages.playwright: 1.44.0 -> 1.46.0
0f341d6
to
4519015
Compare
Updated to 1.46.0 and rebased. |
tested here. Looks good. I think we might want to expose more but this can be done later. Merging. |
Just pulled and ran this PR. The build passes fine but the runtime blows up with an error
Just reviewed the locations and code and it seems like The following is the fix in # Set the correct driver path with the help of a patch in patches
substituteInPlace playwright/_impl/_driver.py \
--replace-fail "@node@" "${lib.getExe nodejs}" \
- --replace-fail "@driver@" "${driver}/package/cli.js"
+ --replace-fail "@driver@" "${driver}/cli.js" maybe in the future we should add a simple test that runs |
this is python package not playwright itself so |
Not sure what you're referring to. The error above was triggered by simply doing |
Description of changes
@playwright/test
andplaywright-core
packages built from sourcepython3Packages.playwright
: 1.44.0 -> 1.45.1playwright
: 1.40.0 -> 1.45.3renamedplaywright-driver
intoplaywright-core
to match original name https://www.npmjs.com/package/playwright-core but we can left it as driver to not break things for usersremovedplaywright-test
, it's now replaced byplaywright
https://www.npmjs.com/package/@playwright/testmadeplaywright
js package a top level package (python version used previously is just a wrapper around js package)ref #298944
ref #229475
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.