Skip to content
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: download browsers for darwin #349469

Merged
merged 2 commits into from
Jan 23, 2025
Merged

Conversation

kalekseev
Copy link
Contributor

@kalekseev kalekseev commented Oct 18, 2024

Things done

Download browsers for Mac OS, fixes #267894
Updated playwright to latest version, fixes #348930

  • 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.

@kalekseev
Copy link
Contributor Author

for webkit mac os version specific archives provided in playwright https://github.com/microsoft/playwright/blob/29c84a33c386e10dd294a5bcf9f24b9988d1777c/packages/playwright-core/src/server/registry/index.ts#L212-L221
update script uses nix store prefetch-file that produce different hash than fetchzip with stripRoot = false

@phaer @teto do you have any ideas how to solve the problems?

@ofborg ofborg bot added the 6.topic: darwin Running or building packages on Darwin label Oct 18, 2024
@@ -37,10 +37,15 @@ update_browser() {
name="$1"
suffix="$2"
arm64_suffix="${3:-$2-arm64}"
if [ "$suffix" = "mac" ]; then
Copy link
Member

Choose a reason for hiding this comment

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

nit: maybe we can inverse that, i.e. call "update_browser firefox darwin"?

aarch64-darwin = browsers-mac;
x86_64-linux = browsers { };
aarch64-linux = browsers { };
x86_64-darwin = browsers { withWebkit = false; };
Copy link
Member

Choose a reason for hiding this comment

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

Is there something blocking webkit on darwin? If so, we should probably document that at least in a comment or so. Otherwise: lets enable it ;)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Mac OS has downloads for each os version, eg. mac-14-arm, mac-15-arm etc, I'm not sure from which archive should we provide webkit in nixpkgs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

enabled using mac-14 build, works on my macos 15 as well

@ofborg ofborg bot added 11.by: package-maintainer This PR was created by the maintainer of the package it changes 10.rebuild-darwin: 1-10 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux labels Oct 18, 2024
@kalekseev kalekseev force-pushed the playwright-mac-zips branch 3 times, most recently from 1b74a13 to 227ecd2 Compare October 23, 2024 08:30
@kalekseev kalekseev marked this pull request as ready for review October 23, 2024 09:12
@kalekseev kalekseev requested review from phaer and teto October 23, 2024 09:13
@ofborg ofborg bot requested review from yrd and techknowlogick October 23, 2024 10:02
@ofborg ofborg bot added 10.rebuild-darwin: 11-100 10.rebuild-linux: 11-100 and removed 10.rebuild-darwin: 1-10 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux labels Oct 23, 2024
@kalekseev kalekseev force-pushed the playwright-mac-zips branch from 227ecd2 to d63a016 Compare October 23, 2024 12:20
Copy link
Member

@phaer phaer left a comment

Choose a reason for hiding this comment

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

Commented on code again :)

Have not tested anything yet, but will do so with a medium-size real-world deployment later this week.
Also didn't test the update script or check hashes so far.

Sorry for the slow reviews, just came home from NixCon 😅

arm64_suffix="${3:-$2-arm64}"
platform="$2"
stripRoot="false"
if [ "$platform" = "darwin" ]; then
Copy link
Member

Choose a reason for hiding this comment

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

I think we need to handle browsers.webkit.revisionOverrides either here or below ? At least for darwin, but the logic would probably be the same for all platforms.

Otherwise we might regress on older darwin releases compared to the current, impure approach on master (=unsandboxed playwright install).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't see any reason to do this in this pr, it won't affect anything at the moment

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Otherwise we might regress on older darwin releases compared to the current

Can you elaborate on this, I don't quite understand how can we support old macos versions?
Maybe we can leave existing browsers-mac for such setups, but it doesn't work on intel cpu anyway and on aarch it's browser version for macos on CI server I guess.

Copy link
Member

Choose a reason for hiding this comment

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

Can you elaborate on this, I don't quite understand how can we support old macos versions?

Sure, could have phrased this better! My line of thinking was: The current, impure playwright install probably handles revisionOverrides correctly, i.e. downloads a different binary on older macos releases.
If we don't handle this here, we always default to the binary for the latest macos supported in browser.json, no?

Copy link
Contributor Author

@kalekseev kalekseev Nov 4, 2024

Choose a reason for hiding this comment

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

The current, impure playwright install probably handles revisionOverrides correctly, i.e. downloads a different binary on older macos releases.

Only if nixpkgs binary cache is not used, otherwise browser build for os from nix build machine will be downloaded.

For now revision overrides really used only for webkit on eol macos versions

    "webkit": {
      "revision": "2083",
      "revisionOverrides": {
        "mac10.14": "1446",
        "mac10.15": "1616",
        "mac11": "1816",
        "mac11-arm64": "1816",
        "mac12": "2009",
        "mac12-arm64": "2009"
      },
      "browserVersion": "18.0"
    },

In this pr browser build for macos-14 is used that's why I said that implementing support in the pr won't make any difference. For now I don't even know how to make builds for different macos versions in nix, so supporting overrides for something that can't be built in nixpkgs doesn't make much sense to me.

If you think we should make this deriviation depend on host machine macos version (and know how to implement this) then please let me know, I may consider adding support for this along with revisionOverrides.

suffix="ubuntu-22.04"
fi
fi
arm64_suffix="$suffix-arm64"
Copy link
Member

Choose a reason for hiding this comment

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

nit: might have introduced this myself, not sure - but now that i notice: the variable name could use the same convention as system, so aarch64

Suggested change
arm64_suffix="$suffix-arm64"
aarch64_suffix="$suffix-arm64"

@@ -196,28 +192,7 @@ let
};
});

browsers-mac = stdenv.mkDerivation {
Copy link
Member

Choose a reason for hiding this comment

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

Love having this removed soon, but I think we should keep the impure builder available behind a flag for one release or so.

The reason is that we don't really have enough real-world testing for users on different darwin setups and we don't want to break working workflows if not needed. I don't think it's needed here and defaulting to your new approach while allowing opt-in to the old one would be perfect :)

Might as well call bin/playwright instead of cli.js

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The reason is that we don't really have enough real-world testing for users on different darwin

we use it on darwin aarch64 so I considered it covered and ready to fix problem reports asap, x86 doesn't work anyway because of #267894

Copy link
Member

Choose a reason for hiding this comment

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

Thought about this and agree. I think removing this now is reasonable as users could still just call playwright install outside the sandbox, and we don't even set PLAYWRIGHT_BROWSERS_PATH yet.

@phaer
Copy link
Member

phaer commented Oct 29, 2024

@ofborg test playwright-python

@kalekseev
Copy link
Contributor Author

@phaer btw webkit doesn't work on linux in master, I was manage to start it only when I set PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=1 but after that it fails anyway, probably some dependencies were missed.

@wegank wegank added the 2.status: merge conflict This PR has merge conflicts with the target branch label Nov 1, 2024
@phaer
Copy link
Member

phaer commented Nov 4, 2024

This works for me on both, x86_64-linux and aarch64-darwin 🎉 (after a tiny rebase)

Still think revisionOverrides would be a good addition, but that could be done in an follow up PR. Another thing we should consider is to wrap python3.pkgs.playwright with PLAYWRIGHT_BROWSERS_PATH by default. I currently have to specify those manually, i.e.:

export PLAYWRIGHT_BROWSERS_PATH=$(nix build --no-link --print-out-paths .\#legacyPackages.x86_64-linux.playwright-driver.browsers)
nix run .\#legacyPackages.x86_64-linux.python3.pkgs.playwright -- open nixos.org -b ff

@kalekseev kalekseev force-pushed the playwright-mac-zips branch 2 times, most recently from ffa68d5 to 5e94d14 Compare November 4, 2024 11:45
@ofborg ofborg bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Nov 4, 2024
@kubkon
Copy link
Contributor

kubkon commented Nov 20, 2024

Hi y'all! I would very much like to see 1.47.0 -> 1.48.1 available in the unstable channel, any chance we could expedite merging of this PR, or extract 5e94d14 into a separate PR?

@kalekseev kalekseev marked this pull request as ready for review November 23, 2024 13:38
@kalekseev
Copy link
Contributor Author

Updated pr with latest playwright version.

@phaer btw webkit doesn't work on linux in master, I was manage to start it only when I set PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=1 but after that it fails anyway, probably some dependencies were missed.

@phaer made some progress with this webkit problem, now PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=1 playwright test --trace=on --project=webkit carsh with:

    [pid=599960][err] /nix/store/br98y1pf5ynfkqj9gn52a64fkdad1qmc-playwright-webkit/minibrowser-wpe/bin/MiniBrowser: symbol lookup error: /nix/store/rpjlbqnllfg01142cgpa1c4sis2ijqsl-at-spi2-core-2.54.0/lib/libatk-bridge-2.0.so.0: undefined symbol: atk_object_get_help_text
    Call log:
      - <launching> /nix/store/09vyx204ccvdbmsl62ydwxv1fc1z7i1c-playwright-browsers/webkit-2104/pw_run.sh --inspector-pipe --headless --no-startup-window
      - <launched> pid=599960
      - [pid=599960][err] /nix/store/br98y1pf5ynfkqj9gn52a64fkdad1qmc-playwright-webkit/minibrowser-wpe/bin/MiniBrowser: symbol lookup error: /nix/store/rpjlbqnllfg01142cgpa1c4sis2ijqsl-at-spi2-core-2.54.0/lib/libatk-bridge-2.0.so.0: undefined symbol: atk_object_get_help_text

@kalekseev kalekseev mentioned this pull request Nov 24, 2024
13 tasks
@kalekseev
Copy link
Contributor Author

Reverted back to 1.48 because of breaking changes in playwright, the 1.49 changes are in #358638

@phaer
Copy link
Member

phaer commented Nov 24, 2024

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 349469


x86_64-linux

✅ 84 packages built:
  • changedetection-io
  • changedetection-io.dist
  • lacus
  • lacus.dist
  • pentestgpt
  • pentestgpt.dist
  • pinnwand
  • pinnwand.dist
  • playwright-driver
  • playwright-test
  • python311Packages.batchspawner
  • python311Packages.batchspawner.dist
  • python311Packages.django-filingcabinet
  • python311Packages.django-filingcabinet.dist
  • python311Packages.dockerspawner
  • python311Packages.dockerspawner.dist
  • python311Packages.great-tables
  • python311Packages.great-tables.dist
  • python311Packages.jupyterhub
  • python311Packages.jupyterhub-ldapauthenticator
  • python311Packages.jupyterhub-ldapauthenticator.dist
  • python311Packages.jupyterhub-systemdspawner
  • python311Packages.jupyterhub-systemdspawner.dist
  • python311Packages.jupyterhub-tmpauthenticator
  • python311Packages.jupyterhub-tmpauthenticator.dist
  • python311Packages.jupyterhub.dist
  • python311Packages.lacuscore
  • python311Packages.lacuscore.dist
  • python311Packages.oauthenticator
  • python311Packages.oauthenticator.dist
  • python311Packages.playwright
  • python311Packages.playwright-stealth
  • python311Packages.playwright-stealth.dist
  • python311Packages.playwright.dist
  • python311Packages.playwrightcapture
  • python311Packages.playwrightcapture.dist
  • python311Packages.pycookiecheat
  • python311Packages.pycookiecheat.dist
  • python311Packages.pytest-playwright
  • python311Packages.pytest-playwright.dist
  • python311Packages.reflex
  • python311Packages.reflex.dist
  • python311Packages.shiny
  • python311Packages.shiny.dist
  • python312Packages.batchspawner
  • python312Packages.batchspawner.dist
  • python312Packages.django-filingcabinet
  • python312Packages.django-filingcabinet.dist
  • python312Packages.dockerspawner
  • python312Packages.dockerspawner.dist
  • python312Packages.great-tables
  • python312Packages.great-tables.dist
  • python312Packages.jupyterhub
  • python312Packages.jupyterhub-ldapauthenticator
  • python312Packages.jupyterhub-ldapauthenticator.dist
  • python312Packages.jupyterhub-systemdspawner
  • python312Packages.jupyterhub-systemdspawner.dist
  • python312Packages.jupyterhub-tmpauthenticator
  • python312Packages.jupyterhub-tmpauthenticator.dist
  • python312Packages.jupyterhub.dist
  • python312Packages.lacuscore
  • python312Packages.lacuscore.dist
  • python312Packages.oauthenticator
  • python312Packages.oauthenticator.dist
  • python312Packages.playwright
  • python312Packages.playwright-stealth
  • python312Packages.playwright-stealth.dist
  • python312Packages.playwright.dist
  • python312Packages.playwrightcapture
  • python312Packages.playwrightcapture.dist
  • python312Packages.pycookiecheat
  • python312Packages.pycookiecheat.dist
  • python312Packages.pytest-playwright
  • python312Packages.pytest-playwright.dist
  • python312Packages.reflex
  • python312Packages.reflex.dist
  • python312Packages.shiny
  • python312Packages.shiny.dist
  • shot-scraper
  • shot-scraper.dist
  • theharvester
  • theharvester.dist
  • urlwatch
  • urlwatch.dist

@phaer
Copy link
Member

phaer commented Nov 25, 2024

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 349469


aarch64-darwin

⏩ 28 packages marked as broken and skipped:
  • python311Packages.batchspawner
  • python311Packages.batchspawner.dist
  • python311Packages.dockerspawner
  • python311Packages.dockerspawner.dist
  • python311Packages.jupyterhub
  • python311Packages.jupyterhub-ldapauthenticator
  • python311Packages.jupyterhub-ldapauthenticator.dist
  • python311Packages.jupyterhub-systemdspawner
  • python311Packages.jupyterhub-systemdspawner.dist
  • python311Packages.jupyterhub-tmpauthenticator
  • python311Packages.jupyterhub-tmpauthenticator.dist
  • python311Packages.jupyterhub.dist
  • python311Packages.oauthenticator
  • python311Packages.oauthenticator.dist
  • python312Packages.batchspawner
  • python312Packages.batchspawner.dist
  • python312Packages.dockerspawner
  • python312Packages.dockerspawner.dist
  • python312Packages.jupyterhub
  • python312Packages.jupyterhub-ldapauthenticator
  • python312Packages.jupyterhub-ldapauthenticator.dist
  • python312Packages.jupyterhub-systemdspawner
  • python312Packages.jupyterhub-systemdspawner.dist
  • python312Packages.jupyterhub-tmpauthenticator
  • python312Packages.jupyterhub-tmpauthenticator.dist
  • python312Packages.jupyterhub.dist
  • python312Packages.oauthenticator
  • python312Packages.oauthenticator.dist
❌ 12 packages failed to build:
  • python311Packages.django-filingcabinet
  • python311Packages.django-filingcabinet.dist
  • python311Packages.great-tables
  • python311Packages.great-tables.dist
  • python311Packages.shiny
  • python311Packages.shiny.dist
  • python312Packages.django-filingcabinet
  • python312Packages.django-filingcabinet.dist
  • python312Packages.great-tables
  • python312Packages.great-tables.dist
  • python312Packages.shiny
  • python312Packages.shiny.dist
✅ 42 packages built:
  • changedetection-io
  • changedetection-io.dist
  • lacus
  • lacus.dist
  • pentestgpt
  • pentestgpt.dist
  • playwright-driver
  • playwright-test
  • python311Packages.lacuscore
  • python311Packages.lacuscore.dist
  • python311Packages.playwright
  • python311Packages.playwright-stealth
  • python311Packages.playwright-stealth.dist
  • python311Packages.playwright.dist
  • python311Packages.playwrightcapture
  • python311Packages.playwrightcapture.dist
  • python311Packages.pycookiecheat
  • python311Packages.pycookiecheat.dist
  • python311Packages.pytest-playwright
  • python311Packages.pytest-playwright.dist
  • python311Packages.reflex
  • python311Packages.reflex.dist
  • python312Packages.lacuscore
  • python312Packages.lacuscore.dist
  • python312Packages.playwright
  • python312Packages.playwright-stealth
  • python312Packages.playwright-stealth.dist
  • python312Packages.playwright.dist
  • python312Packages.playwrightcapture
  • python312Packages.playwrightcapture.dist
  • python312Packages.pycookiecheat
  • python312Packages.pycookiecheat.dist
  • python312Packages.pytest-playwright
  • python312Packages.pytest-playwright.dist
  • python312Packages.reflex
  • python312Packages.reflex.dist
  • shot-scraper
  • shot-scraper.dist
  • theharvester
  • theharvester.dist
  • urlwatch
  • urlwatch.dist

@wegank wegank added the 12.approvals: 1 This PR was reviewed and approved by one reputable person label Nov 25, 2024
@teto
Copy link
Member

teto commented Dec 30, 2024

looks overall ok. Mind rebasing so I can run a nixpkgs-review on it ?

@kalekseev
Copy link
Contributor Author

@teto rebased

@teto
Copy link
Member

teto commented Dec 30, 2024

Result of nixpkgs-review pr 349469 run on x86_64-linux 1

20 packages failed to build:
  • lacus
  • lacus.dist
  • python313Packages.batchspawner
  • python313Packages.batchspawner.dist
  • python313Packages.django-filingcabinet
  • python313Packages.django-filingcabinet.dist
  • python313Packages.dockerspawner
  • python313Packages.dockerspawner.dist
  • python313Packages.jupyterhub
  • python313Packages.jupyterhub-ldapauthenticator
  • python313Packages.jupyterhub-ldapauthenticator.dist
  • python313Packages.jupyterhub-systemdspawner
  • python313Packages.jupyterhub-systemdspawner.dist
  • python313Packages.jupyterhub-tmpauthenticator
  • python313Packages.jupyterhub-tmpauthenticator.dist
  • python313Packages.jupyterhub.dist
  • python313Packages.oauthenticator
  • python313Packages.oauthenticator.dist
  • python313Packages.reflex
  • python313Packages.reflex.dist
62 packages built:
  • changedetection-io
  • changedetection-io.dist
  • pentestgpt
  • pentestgpt.dist
  • pinnwand
  • pinnwand.dist
  • playwright-driver
  • playwright-test
  • python312Packages.batchspawner
  • python312Packages.batchspawner.dist
  • python312Packages.django-filingcabinet
  • python312Packages.django-filingcabinet.dist
  • python312Packages.dockerspawner
  • python312Packages.dockerspawner.dist
  • python312Packages.great-tables
  • python312Packages.great-tables.dist
  • python312Packages.jupyterhub
  • python312Packages.jupyterhub-ldapauthenticator
  • python312Packages.jupyterhub-ldapauthenticator.dist
  • python312Packages.jupyterhub-systemdspawner
  • python312Packages.jupyterhub-systemdspawner.dist
  • python312Packages.jupyterhub-tmpauthenticator
  • python312Packages.jupyterhub-tmpauthenticator.dist
  • python312Packages.jupyterhub.dist
  • python312Packages.lacuscore
  • python312Packages.lacuscore.dist
  • python312Packages.oauthenticator
  • python312Packages.oauthenticator.dist
  • python312Packages.playwright
  • python312Packages.playwright-stealth
  • python312Packages.playwright-stealth.dist
  • python312Packages.playwright.dist
  • python312Packages.playwrightcapture
  • python312Packages.playwrightcapture.dist
  • python312Packages.pycookiecheat
  • python312Packages.pycookiecheat.dist
  • python312Packages.pytest-playwright
  • python312Packages.pytest-playwright.dist
  • python312Packages.reflex
  • python312Packages.reflex.dist
  • python312Packages.shiny
  • python312Packages.shiny.dist
  • python313Packages.great-tables
  • python313Packages.great-tables.dist
  • python313Packages.playwright
  • python313Packages.playwright-stealth
  • python313Packages.playwright-stealth.dist
  • python313Packages.playwright.dist
  • python313Packages.playwrightcapture
  • python313Packages.playwrightcapture.dist
  • python313Packages.pycookiecheat
  • python313Packages.pycookiecheat.dist
  • python313Packages.pytest-playwright
  • python313Packages.pytest-playwright.dist
  • python313Packages.shiny
  • python313Packages.shiny.dist
  • shot-scraper
  • shot-scraper.dist
  • theharvester
  • theharvester.dist
  • urlwatch
  • urlwatch.dist

@wegank wegank removed the 12.approvals: 1 This PR was reviewed and approved by one reputable person label Dec 31, 2024
@phaer
Copy link
Member

phaer commented Dec 31, 2024

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 349469


aarch64-darwin

⏩ 32 packages marked as broken and skipped:
  • froide
  • froide.dist
  • python312Packages.batchspawner
  • python312Packages.batchspawner.dist
  • python312Packages.dockerspawner
  • python312Packages.dockerspawner.dist
  • python312Packages.froide
  • python312Packages.froide.dist
  • python312Packages.jupyterhub
  • python312Packages.jupyterhub-ldapauthenticator
  • python312Packages.jupyterhub-ldapauthenticator.dist
  • python312Packages.jupyterhub-systemdspawner
  • python312Packages.jupyterhub-systemdspawner.dist
  • python312Packages.jupyterhub-tmpauthenticator
  • python312Packages.jupyterhub-tmpauthenticator.dist
  • python312Packages.jupyterhub.dist
  • python312Packages.oauthenticator
  • python312Packages.oauthenticator.dist
  • python313Packages.batchspawner
  • python313Packages.batchspawner.dist
  • python313Packages.dockerspawner
  • python313Packages.dockerspawner.dist
  • python313Packages.jupyterhub
  • python313Packages.jupyterhub-ldapauthenticator
  • python313Packages.jupyterhub-ldapauthenticator.dist
  • python313Packages.jupyterhub-systemdspawner
  • python313Packages.jupyterhub-systemdspawner.dist
  • python313Packages.jupyterhub-tmpauthenticator
  • python313Packages.jupyterhub-tmpauthenticator.dist
  • python313Packages.jupyterhub.dist
  • python313Packages.oauthenticator
  • python313Packages.oauthenticator.dist
❌ 16 packages failed to build:
  • lacus
  • lacus.dist
  • python312Packages.django-filingcabinet
  • python312Packages.django-filingcabinet.dist
  • python312Packages.great-tables
  • python312Packages.great-tables.dist
  • python312Packages.shiny
  • python312Packages.shiny.dist
  • python313Packages.django-filingcabinet
  • python313Packages.django-filingcabinet.dist
  • python313Packages.great-tables
  • python313Packages.great-tables.dist
  • python313Packages.reflex
  • python313Packages.reflex.dist
  • python313Packages.shiny
  • python313Packages.shiny.dist
✅ 36 packages built:
  • changedetection-io
  • changedetection-io.dist
  • pentestgpt
  • pentestgpt.dist
  • playwright-driver
  • playwright-test
  • python312Packages.lacuscore
  • python312Packages.lacuscore.dist
  • python312Packages.playwright
  • python312Packages.playwright-stealth
  • python312Packages.playwright-stealth.dist
  • python312Packages.playwright.dist
  • python312Packages.playwrightcapture
  • python312Packages.playwrightcapture.dist
  • python312Packages.pycookiecheat
  • python312Packages.pycookiecheat.dist
  • python312Packages.pytest-playwright
  • python312Packages.pytest-playwright.dist
  • python312Packages.reflex
  • python312Packages.reflex.dist
  • python313Packages.playwright
  • python313Packages.playwright-stealth
  • python313Packages.playwright-stealth.dist
  • python313Packages.playwright.dist
  • python313Packages.playwrightcapture
  • python313Packages.playwrightcapture.dist
  • python313Packages.pycookiecheat
  • python313Packages.pycookiecheat.dist
  • python313Packages.pytest-playwright
  • python313Packages.pytest-playwright.dist
  • shot-scraper
  • shot-scraper.dist
  • theharvester
  • theharvester.dist
  • urlwatch
  • urlwatch.dist

@teto
Copy link
Member

teto commented Dec 31, 2024

can you comment on the failed nixpkgs-review packages ? are failurs present on master already ?
I find surprising that jupyterhub is impacted. lacus seems to directly depend on playwright @fabaff . can we fix it in PR or followup PR ?

@wegank wegank added 12.approvals: 1 This PR was reviewed and approved by one reputable person 2.status: merge conflict This PR has merge conflicts with the target branch labels Jan 1, 2025
@kalekseev
Copy link
Contributor Author

can you comment on the failed nixpkgs-review packages ? are failurs present on master already ? I find surprising that jupyterhub is impacted. lacus seems to directly depend on playwright @fabaff . can we fix it in PR or followup PR ?

@teto jupyterhub is broken in master for independent reasons. But right now all packages that depends on playwright+chromium should fail in master. Playwright uses chromium from nixpkgs and chromium was updated to latest version as a result it doesn't work with playwright because of new headless mode that supported by playwright from version 1.49

Example of the problem this #375005

build log https://cache.nixos.org/log/4pqd1na1ci7gwn6lgzry4yaxhp9af6cb-python3.12-django-filingcabinet-0-unstable-2024-11-15.drv

E           playwright._impl._errors.TargetClosedError: BrowserType.launch: Target page, context or browser has been closed
E           Browser logs:
E           
E           <launching> /nix/store/xk1a4d0dxprcvhrippsh6bxwvnxk60wk-playwright-browsers/chromium-1134/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate,HttpsUpgrades,PaintHolding,PlzDedicatedWorker --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --headless=old --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/build/playwright_chromiumdev_profile-hqmPJl --remote-debugging-pipe --no-startup-window
E           <launched> pid=1388
E           [pid=1388][err] Old Headless mode has been removed from the Chrome binary. Please use the new Headless mode (https://developer.chrome.com/docs/chromium/new-headless) or the chrome-headless-shell which is a standalone implementation of the old Headless mode (https://developer.chrome.com/blog/chrome-headless-shell).
E           [pid=1388][err] 
E           Call log:
E           <launching> /nix/store/xk1a4d0dxprcvhrippsh6bxwvnxk60wk-playwright-browsers/chromium-1134/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate,HttpsUpgrades,PaintHolding,PlzDedicatedWorker --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --headless=old --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/build/playwright_chromiumdev_profile-hqmPJl --remote-debugging-pipe --no-startup-window
E             - <launched> pid=1388
E             - [pid=1388][err] Old Headless mode has been removed from the Chrome binary. Please use the new Headless mode (https://developer.chrome.com/docs/chromium/new-headless) or the chrome-headless-shell which is a standalone implementation of the old Headless mode (https://developer.chrome.com/blog/chrome-headless-shell).
E             - [pid=1388][err]

@kalekseev kalekseev force-pushed the playwright-mac-zips branch from 697c4c3 to aeba1dd Compare January 22, 2025 21:02
@ofborg ofborg bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Jan 22, 2025
@phaer
Copy link
Member

phaer commented Jan 23, 2025

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 349469


aarch64-darwin

⏩ 32 packages marked as broken and skipped:
  • froide
  • froide.dist
  • python312Packages.batchspawner
  • python312Packages.batchspawner.dist
  • python312Packages.dockerspawner
  • python312Packages.dockerspawner.dist
  • python312Packages.froide
  • python312Packages.froide.dist
  • python312Packages.jupyterhub
  • python312Packages.jupyterhub-ldapauthenticator
  • python312Packages.jupyterhub-ldapauthenticator.dist
  • python312Packages.jupyterhub-systemdspawner
  • python312Packages.jupyterhub-systemdspawner.dist
  • python312Packages.jupyterhub-tmpauthenticator
  • python312Packages.jupyterhub-tmpauthenticator.dist
  • python312Packages.jupyterhub.dist
  • python312Packages.oauthenticator
  • python312Packages.oauthenticator.dist
  • python313Packages.batchspawner
  • python313Packages.batchspawner.dist
  • python313Packages.dockerspawner
  • python313Packages.dockerspawner.dist
  • python313Packages.jupyterhub
  • python313Packages.jupyterhub-ldapauthenticator
  • python313Packages.jupyterhub-ldapauthenticator.dist
  • python313Packages.jupyterhub-systemdspawner
  • python313Packages.jupyterhub-systemdspawner.dist
  • python313Packages.jupyterhub-tmpauthenticator
  • python313Packages.jupyterhub-tmpauthenticator.dist
  • python313Packages.jupyterhub.dist
  • python313Packages.oauthenticator
  • python313Packages.oauthenticator.dist
❌ 10 packages failed to build:
  • python312Packages.great-tables
  • python312Packages.great-tables.dist
  • python312Packages.shiny
  • python312Packages.shiny.dist
  • python313Packages.django-filingcabinet
  • python313Packages.django-filingcabinet.dist
  • python313Packages.great-tables
  • python313Packages.great-tables.dist
  • python313Packages.shiny
  • python313Packages.shiny.dist
✅ 42 packages built:
  • changedetection-io
  • changedetection-io.dist
  • lacus
  • lacus.dist
  • pentestgpt
  • pentestgpt.dist
  • playwright (playwright-driver)
  • playwright-test
  • python312Packages.django-filingcabinet
  • python312Packages.django-filingcabinet.dist
  • python312Packages.lacuscore
  • python312Packages.lacuscore.dist
  • python312Packages.playwright
  • python312Packages.playwright-stealth
  • python312Packages.playwright-stealth.dist
  • python312Packages.playwright.dist
  • python312Packages.playwrightcapture
  • python312Packages.playwrightcapture.dist
  • python312Packages.pycookiecheat
  • python312Packages.pycookiecheat.dist
  • python312Packages.pytest-playwright
  • python312Packages.pytest-playwright.dist
  • python312Packages.reflex
  • python312Packages.reflex.dist
  • python313Packages.playwright
  • python313Packages.playwright-stealth
  • python313Packages.playwright-stealth.dist
  • python313Packages.playwright.dist
  • python313Packages.playwrightcapture
  • python313Packages.playwrightcapture.dist
  • python313Packages.pycookiecheat
  • python313Packages.pycookiecheat.dist
  • python313Packages.pytest-playwright
  • python313Packages.pytest-playwright.dist
  • python313Packages.reflex
  • python313Packages.reflex.dist
  • shot-scraper
  • shot-scraper.dist
  • theharvester
  • theharvester.dist
  • urlwatch
  • urlwatch.dist

@teto teto merged commit d668fb8 into NixOS:master Jan 23, 2025
25 of 27 checks passed
@teto
Copy link
Member

teto commented Jan 23, 2025

ok let's unblock the next playwright bump

@teto teto mentioned this pull request Jan 23, 2025
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: darwin Running or building packages on Darwin 6.topic: python 10.rebuild-darwin: 11-100 10.rebuild-linux: 11-100 11.by: package-maintainer This PR was created by the maintainer of the package it changes 12.approvals: 1 This PR was reviewed and approved by one reputable person
Projects
None yet
5 participants