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

Release 8.0.0: upgrade to Puppeteer 21, require Node 16+ #204

Merged
merged 1 commit into from Sep 16, 2023
Merged

Conversation

Krinkle
Copy link
Contributor

@Krinkle Krinkle commented Jul 23, 2023

From grunt-contrib-connect 4.0.0:

gruntjs/grunt-contrib-connect#282

  • Fix deprecation warning about opn@6.

From puppeteer 20:

https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-v20.0.0

  • switch from Chromium to "Chrome for Testing".

From puppeteer 20.9.0:

https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v20.9.0

  • roll to Chrome 115

From puppeteer 21.1.0:

https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v21.1.0

  • roll to Chrome 116

General "Chrome for Testing" announcement at [1].
Based on reading the linked design document [2] [3], I believe
"Chrome for Testing" continues to be a build of open-source Chromium.
It is not compiled from or with proprietary Google Chrome components.
Rather, it is a Chromium build that is 1) compiled feature flags and
defaults settings as similar to Google Chrome as possible, and 2)
built and published from the same Chromium revisions and at the same
cadence as Chrome releases. This means, that anytime a Google Chrome
release happens for Stable or Beta channel, there is also a
Chrome for Testing release.

Having said that, the design document does acknowledge that a previous
proposal (nicknamed "Chrome-", meaning start with Chrome and subtract
unwanted features) did exist. This was rejected in favour of "Chromium+"
which works as above with the Chrome-like app icon injected from their
build system from outside the Chromium source tree.

[1] https://developer.chrome.com/blog/chrome-for-testing/
[2] https://docs.google.com/document/d/1XJvxyqAQjhPfJ0rX84PjfXXb5sBx3m8DXzMxR0ipQNs/edit
[3] http://web.archive.org/web/20230503104427/https://docs.google.com/document/d/1XJvxyqAQjhPfJ0rX84PjfXXb5sBx3m8DXzMxR0ipQNs/edit

From puppeteer 19.11:

https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v19.11.0

  • add warning for headless: true

There is no more pretending that Chrome Headless wasn't actually
"Chrome but headless" (like Firefox Headless), but a separate browser
implementation [4]. "Fake it until you make it". Starting in Chrome 112,
there is a "new" headless mode, which is now claimed to actually be
"Chrome, but headless". I propose that in grunt-contrib-qunit 8.0,
with the switch to "Chromium for Testing", we also switch to this
mode at the same time.

If we don't, Puppeteer prints the following warning on every CI build:

Puppeteer old Headless deprecation warning:
In the near feature headless: true will default to the new Headless mode
Consider opting in early by passing headless: "new" to puppeteer.launch()

[4] https://developer.chrome.com/articles/new-headless/

@Gabriel-Dias-Oliveira
Copy link

Gabriel-Dias-Oliveira commented Sep 2, 2023

@Krinkle, hey, how are you? Are the tests failing since now we are requesting a node version ≥16? Maybe we should update these tests. I opened an issue cause I'm facing a problem when installing Puppeteer and I think that you have the solution here! :D

package.json Outdated
@@ -18,12 +18,12 @@
"dependencies": {
"eventemitter2": "^6.4.9",
"p-each-series": "^2.2.0",
"puppeteer": "^19.7.0"
"puppeteer": "^20.9.0"

Choose a reason for hiding this comment

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

We already have the version 21.1.1 for Puppeteer

https://www.npmjs.com/package/puppeteer

package.json Outdated
},
"devDependencies": {
"difflet": "^1.0.1",
"grunt": "^1.6.1",
"grunt-contrib-connect": "^3.0.0",
"grunt-contrib-connect": "^4.0.0",
"grunt-contrib-internal": "^8.0.2",
Copy link

Choose a reason for hiding this comment

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

There is the version 9.0.0 to grunt-contrib-internal as well

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ack, I created this release at gruntjs/grunt-contrib-internal#57 after drafting this PR. The PR was blocked on 9.0.0 being released first, because grunt-contrib-internal is what manages our CI configuration. This PR raises the Node requirement to Node 16, which thus needs a change to the CI config to drop the Node 14 jobs.

From grunt-contrib-connect 4.0.0:
> gruntjs/grunt-contrib-connect#282
> * Fix deprecation warning about `opn@6`.

From puppeteer 20:
> https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-v20.0.0
> * switch from Chromium to "Chrome for Testing".

From puppeteer 20.9.0:
> https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v20.9.0
> * roll to Chrome 115

From puppeteer 21.1.0:
> https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v21.1.0
> * roll to Chrome 116

General "Chrome for Testing" announcement at [1].
Based on reading the linked design document [2] [3], I believe
"Chrome for Testing" continues to be a build of open-source Chromium.
It is not compiled from or with proprietary Google Chrome components.
Rather, it is a Chromium build that is 1) compiled feature flags and
defaults settings as similar to Google Chrome as possible, and 2)
built and published from the same Chromium revisions and at the same
cadence as Chrome releases. This means, that anytime a Google Chrome
release happens for Stable or Beta channel, there is also a
Chrome for Testing release.

Having said that, the design document does acknowledge that a previous
proposal (nicknamed "Chrome-", meaning start with Chrome and subtract
unwanted features) did exist. This was rejected in favour of "Chromium+"
which works as above with the Chrome-like app icon injected from their
build system from outside the Chromium source tree.

[1] https://developer.chrome.com/blog/chrome-for-testing/
[2] https://docs.google.com/document/d/1XJvxyqAQjhPfJ0rX84PjfXXb5sBx3m8DXzMxR0ipQNs/edit
[3] http://web.archive.org/web/20230503104427/https://docs.google.com/document/d/1XJvxyqAQjhPfJ0rX84PjfXXb5sBx3m8DXzMxR0ipQNs/edit

From puppeteer 19.11:
> https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v19.11.0
> * add warning for `headless: true`

There is no more pretending that Chrome Headless wasn't actually
"Chrome but headless" (like Firefox Headless), but a separate browser
implementation [4]. "Fake it until you make it". Starting in Chrome 112,
there is a "new" headless mode, which is now claimed to actually be
"Chrome, but headless". I propose that in grunt-contrib-qunit 8.0,
with the switch to "Chromium for Testing", we also switch to this
mode at the same time.

If we don't, Puppeteer prints the following warning on every CI build:

> Puppeteer old Headless deprecation warning:
> In the near feature `headless: true` will default to the new Headless mode
> Consider opting in early by passing `headless: "new"` to `puppeteer.launch()`

[4] https://developer.chrome.com/articles/new-headless/
@Krinkle Krinkle changed the title Release 8.0.0: upgrade to Puppeteer 20, require Node 16+ Release 8.0.0: upgrade to Puppeteer 21, require Node 16+ Sep 5, 2023
Copy link

@Gabriel-Dias-Oliveira Gabriel-Dias-Oliveira left a comment

Choose a reason for hiding this comment

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

This looks great to me, thanks! Do you have any idea when we gonna have a new npm version available for this package?

@Krinkle Krinkle merged commit 230cb03 into main Sep 16, 2023
12 checks passed
@Krinkle Krinkle deleted the release branch September 16, 2023 03:02
Krinkle added a commit to qunitjs/qunit that referenced this pull request Sep 16, 2023
Krinkle added a commit to qunitjs/qunit that referenced this pull request Sep 16, 2023
Krinkle added a commit to qunitjs/qunit that referenced this pull request Sep 16, 2023
Krinkle added a commit to qunitjs/qunit that referenced this pull request Sep 16, 2023
Krinkle added a commit to qunitjs/qunit that referenced this pull request Sep 16, 2023
@Krinkle
Copy link
Contributor Author

Krinkle commented Sep 16, 2023

This looks great to me, thanks! Do you have any idea when we gonna have a new npm version available for this package?

It's up on npm now :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants