w3c / spec-prod

GitHub Action to build ReSpec/Bikeshed specs, validate output and publish to GitHub pages or W3C
https://w3c.github.io/spec-prod/
MIT License
34 stars 21 forks source link

Deploy action broken because of new Puppeteer release #146

Closed whimboo closed 2 years ago

whimboo commented 2 years ago

As we have noticed for WebDriver BiDi the deploy action is currently broken: https://github.com/w3c/webdriver-bidi/issues/306

The failure is:

   [INFO] Build bikeshed document "index.bs" (common)…
    $ bikeshed --die-on=fatal spec "index.bs" "index.bs.built.html" 
    [INFO] Finding relevant assets…
      [INFO] From /index.bs.built.html…
      Timed out after 30000 ms while trying to connect to the browser! Only Chrome at revision r991974 is guaranteed to work.

I assume that the Puppeteer v18.1.0 release that was shipped today broke this action?

whimboo commented 2 years ago

Maybe Puppeteer should get a strict semver setting for a given minor release? Right now it's ^18 and that could cause breakage whenever a new minor release gets out that is broken.

whimboo commented 2 years ago

Is there a reason why Puppeteer has to be used at all? Why not using WebDriver which is based on a standardized protocol and is more stable?

whimboo commented 2 years ago

Or even better the parse5 node package. It works perfectly as it can be seen on the WebDriver BiDi repository where we retrieve all pre tags from the document.

sidvishnoi commented 2 years ago

Is there a reason why Puppeteer has to be used at all?

Puppeteer is used in ReSpec, and other packages we use: subresources, href-checker and also pubrules checker IIRC. Also, I don't have much experience with WebDriver, but we may consider using it in future.

parse5 seems good too. Even linkedom might work well, which seems much lighter. But they're additional dependencies given we already have puppeteer.

Right now it's ^18 and that could cause breakage whenever a new minor release gets out that is broken.

It's possible that I missed some major breaking change. Will investigate and lock puppeteer if needed.

The logs suggest the error happened with subresources package (that I maintain, and updated recently).

sidvishnoi commented 2 years ago

@whimboo I created a fork to test and it seems to be working fine. Can you re-run the action? It might be some temporary failure.

whimboo commented 2 years ago

We actually had a commit 3h ago for which the deploy action was running fine. So it seems to be working now again.

Happy to chat further to maybe get rid of the Puppeteer/Chrome dependency. I assume a discussion should happen on a new issue?

sidvishnoi commented 2 years ago

Happy to chat further to maybe get rid of the Puppeteer/Chrome dependency. I assume a discussion should happen on a new issue?

Indeed, let's file a new issue for that. I hope the integration would be as straight-forward like npm i puppeteer? Or are there Java dependencies?

If it works out well, we might even replace Puppeteer in ReSpec.