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

Cacie/chore/upgrade electron 27 #28544

Closed
wants to merge 75 commits into from
Closed
Show file tree
Hide file tree
Changes from 66 commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
8a6c4ab
dependency: upgrades electron from 25 to 26
cacieprins Dec 11, 2023
a89659c
bump cache run ci
cacieprins Dec 11, 2023
139487b
fix docker img names
cacieprins Dec 11, 2023
f3229ed
ref electron upgrade branch
cacieprins Dec 11, 2023
3a453b0
chore: updating v8 snapshot cache
Dec 11, 2023
032a165
chore: updating v8 snapshot cache
Dec 11, 2023
185cf86
chore: updating v8 snapshot cache
Dec 11, 2023
45a220e
debug
cacieprins Dec 12, 2023
c1fcdb1
debug
cacieprins Dec 12, 2023
509e499
debug
cacieprins Dec 12, 2023
7912db2
update search string for resize observer error swallow
cacieprins Dec 12, 2023
f875b0a
debug
cacieprins Dec 12, 2023
b1c1d52
update integrity check
cacieprins Dec 12, 2023
58b1349
update electron readme with upgrade troubleshooting section
cacieprins Dec 13, 2023
b32a1e2
point to new publish binary workflow branch for electron 27
cacieprins Dec 13, 2023
3bb82dd
update electron readme with locations of chromium & node versions for…
cacieprins Dec 13, 2023
a0bd74d
update node versions and docker image refs
cacieprins Dec 13, 2023
1066e37
update electron version to 27.1.3
cacieprins Dec 13, 2023
acaaea6
fix db nativeBinding arg
cacieprins Dec 13, 2023
b76511d
chore: updating v8 snapshot cache
Dec 13, 2023
eae7513
install setuptools on mac when updating v8 snapshot cache
cacieprins Dec 13, 2023
a6ac000
chore: updating v8 snapshot cache
Dec 14, 2023
e7e48ad
chore: updating v8 snapshot cache
Dec 14, 2023
f843948
run workflows on this branch run ci
cacieprins Dec 14, 2023
6e64ceb
require addon directly and pass to better-sqlite3 init; debug
cacieprins Dec 14, 2023
9a3af58
rm debug
cacieprins Dec 14, 2023
a63fde1
try loading better-sqlite with a more dynamic filename
cacieprins Dec 14, 2023
3961271
bump electron version
ryanthemanuel Dec 14, 2023
4e0d91e
bump electron version
ryanthemanuel Dec 14, 2023
7d80f77
bump electron version -- run ci
ryanthemanuel Dec 15, 2023
f4fb6c4
bump electron version -- run ci
ryanthemanuel Dec 15, 2023
8dadce3
bump electron version -- run ci
ryanthemanuel Dec 15, 2023
016923e
bump electron version -- run ci
ryanthemanuel Dec 15, 2023
0d05c41
bump electron version -- run ci
ryanthemanuel Dec 15, 2023
4a4ae23
add a step to update workflows.yml to electron upgrade process
cacieprins Dec 15, 2023
8895708
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Dec 15, 2023
e091dfb
reduce retry limit on issue 1244 test to prevent circle from thinking…
cacieprins Dec 15, 2023
bfee9dd
target main branch of binary publish workflow? run ci
cacieprins Dec 15, 2023
665e81c
Update .node-version -- run ci
ryanthemanuel Dec 16, 2023
0c0ff5a
Update CHANGELOG.md
cacieprins Dec 18, 2023
a882362
Update module_api_spec.ts
cacieprins Dec 18, 2023
b55e8e0
point publish binary back to electron upgrade branch
cacieprins Dec 18, 2023
6475305
Adds some logging re: cachedDataVersion
cacieprins Dec 18, 2023
35e10a3
use precise electron version for better-sqlite3 for centos7
cacieprins Dec 19, 2023
4dbac8e
Update CHANGELOG.md
cacieprins Dec 19, 2023
2049685
chore: fix issue with bytenode (#28568)
ryanthemanuel Dec 21, 2023
98bf7b2
update electron upgrade steps
cacieprins Dec 19, 2023
42c115b
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Jan 9, 2024
8a99704
Update packages/electron/README.md
cacieprins Jan 9, 2024
3a02fec
Update cli/CHANGELOG.md
cacieprins Jan 9, 2024
a9ece8a
fix DebugEmptyStates component test
cacieprins Jan 9, 2024
ac7091d
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Jan 11, 2024
c1209c6
try to fix downstream build -- run ci (#28649)
ryanthemanuel Jan 12, 2024
a7a5a6b
point to consolidated binary publish branch
cacieprins Jan 12, 2024
4849187
revert webpack-preprocessor-awesome-typescript-loader update
cacieprins Jan 12, 2024
382dbc5
revert certain system tests
cacieprins Jan 16, 2024
fab6898
increase padding for module api system test duration window
cacieprins Jan 16, 2024
aa09aa8
account for differing screenshot sizes
cacieprins Jan 16, 2024
a4673ca
screenshot size differs locally vs ci
cacieprins Jan 16, 2024
9dd9ab1
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Jan 17, 2024
ab49bc1
update protocol snapshots
cacieprins Jan 19, 2024
f48e6f0
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Jan 19, 2024
fabb6a1
Update after-pack-hook.js
ryanthemanuel Jan 22, 2024
bb2a882
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Jan 22, 2024
219e4f6
fix flaky slideshow
cacieprins Jan 22, 2024
7468022
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Jan 23, 2024
d257809
correct the chromium version in changelog
cacieprins Jan 24, 2024
5816027
chore: update release process guide with refactored release-automatio…
AtofStryker Jan 23, 2024
e3eb46c
docs: add pnpm to readme (#28781)
MikeMcC399 Jan 23, 2024
71c1bf3
chore: Update Chrome (beta) to 121.0.6167.85 (#28778)
github-actions[bot] Jan 23, 2024
8d8a547
chore(deps): update dependency vite [security] (#28773)
renovate[bot] Jan 23, 2024
21977f8
fix: issue with service workers in test replay when they're initiated…
ryanthemanuel Jan 23, 2024
7c6646f
chore: update octokit and arm64 image to newest focal (#28754)
AtofStryker Jan 24, 2024
1f8bce9
use node 18.17.1 internal images
cacieprins Jan 24, 2024
307e709
Merge branch 'develop' into cacie/chore/upgrade-electron-27
cacieprins Jan 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 15 additions & 8 deletions .circleci/workflows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ mainBuildFilters: &mainBuildFilters
- develop
- /^release\/\d+\.\d+\.\d+$/
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- 'update-v8-snapshot-cache-on-develop'
- 'cacie/chore/upgrade-electron-27'


# usually we don't build Mac app - it takes a long time
# but sometimes we want to really confirm we are doing the right thing
Expand All @@ -40,7 +41,7 @@ macWorkflowFilters: &darwin-workflow-filters
- equal: [ develop, << pipeline.git.branch >> ]
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
- equal: [ 'mschile/protocol/proxy_correlation', << pipeline.git.branch >> ]
- equal: [ 'cacie/chore/upgrade-electron-27', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
Expand All @@ -51,7 +52,7 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters
- equal: [ develop, << pipeline.git.branch >> ]
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
- equal: [ 'mschile/protocol/proxy_correlation', << pipeline.git.branch >> ]
- equal: [ 'cacie/chore/upgrade-electron-27', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
Expand All @@ -74,7 +75,7 @@ windowsWorkflowFilters: &windows-workflow-filters
- equal: [ develop, << pipeline.git.branch >> ]
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
- equal: [ 'mschile/protocol/proxy_correlation', << pipeline.git.branch >> ]
- equal: [ 'cacie/chore/upgrade-electron-27', << pipeline.git.branch >> ]
- matches:
pattern: /^release\/\d+\.\d+\.\d+$/
value: << pipeline.git.branch >>
Expand All @@ -83,7 +84,7 @@ executors:
# the Docker image with Cypress dependencies and Chrome browser
cy-doc:
docker:
- image: cypress/browsers-internal:node18.15.0-chrome114-ff115
- image: cypress/browsers-internal:node18.17.0-chrome118-ff115
# by default, we use "medium" to balance performance + CI costs. bump or reduce on a per-job basis if needed.
resource_class: medium
environment:
Expand All @@ -93,7 +94,7 @@ executors:
# Docker image with non-root "node" user
non-root-docker-user:
docker:
- image: cypress/browsers-internal:node18.15.0-chrome114-ff115
- image: cypress/browsers-internal:node18.17.0-chrome118-ff115
user: node
environment:
PLATFORM: linux
Expand Down Expand Up @@ -546,7 +547,7 @@ commands:
if [[ ! -f better_sqlite3.node ]]; then
docker run -d --name centos7-builder centos7-builder /bin/bash -c "sleep 1000000000"
docker cp ~/cypress/node_modules/better-sqlite3 centos7-builder:/better-sqlite3
docker exec -it centos7-builder /bin/bash -c "cd /better-sqlite3 && source /root/.bashrc && chown -R root:root . && npm install --ignore-scripts && npx --no-install prebuild -r electron -t 25.0.0 --include-regex 'better_sqlite3.node$'"
docker exec -it centos7-builder /bin/bash -c "cd /better-sqlite3 && source /root/.bashrc && chown -R root:root . && npm install --ignore-scripts && npx --no-install prebuild -r electron -t 27.1.3 --include-regex 'better_sqlite3.node$'"
docker cp centos7-builder:/better-sqlite3/build/Release/better_sqlite3.node ~/cypress/node_modules/better-sqlite3/build/Release/better_sqlite3.node
docker rm -f centos7-builder
cp ~/cypress/node_modules/better-sqlite3/build/Release/better_sqlite3.node ~/cypress/better_sqlite3.node
Expand Down Expand Up @@ -1219,6 +1220,12 @@ commands:
else
yarn binary-package --version $(node ./scripts/get-next-version.js)
fi
- run:
name: Smoke Test the Cypress binary
command: |
source ./scripts/ensure-node.sh
node --version
yarn binary-smoke-test --version $(node ./scripts/get-next-version.js)
- run:
name: Zip the binary
command: |
Expand Down Expand Up @@ -2319,7 +2326,7 @@ jobs:
<<: *defaults
resource_class: small
docker:
- image: cypress/base-internal:18.15.0
- image: cypress/base-internal:18.17.0
steps:
- maybe_skip_binary_jobs
- restore_workspace_binaries
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/1-bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ body:
attributes:
label: Node version
description: What version of node.js are you using to run Cypress?
placeholder: ex. v18.15.0
placeholder: ex. v18.17.0
validations:
required: true
- type: input
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/2-memory-issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ body:
attributes:
label: Node version
description: What version of node.js are you using to run Cypress?
placeholder: ex. v18.15.0
placeholder: ex. v18.17.0
validations:
required: true
- type: input
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/3-install-issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ body:
attributes:
label: Node version
description: What version of node.js are you using to run Cypress?
placeholder: ex. v18.15.0
placeholder: ex. v18.17.0
validations:
required: true
- type: dropdown
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/update_v8_snapshot_cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ jobs:
- name: Determine snapshot files - Mac
if: ${{ matrix.platform == 'macos-latest' }}
run: echo "SNAPSHOT_FILES='tooling/v8-snapshot/cache/darwin/snapshot-meta.json'" >> $GITHUB_ENV
- name: Install setuptools - Mac
if: ${{ matrix.platform == 'macos-latest' }}
run: sudo -H pip install setuptools
- name: Checkout
uses: actions/checkout@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18.15.0
18.17.1
2 changes: 1 addition & 1 deletion centos7-builder.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM centos:7
# Install dependencies for re-building better-sqlite and setting devtoolset-8 as the default compiler
# Install dependencies for re-building better-sqlite and setting devtoolset-8 as the default compiler.
RUN yum -y install centos-release-scl curl python3 make atk-devel atk java-atk-wrapper at-spi2-atk gtk3 libXt libdrm mesa-libgbm Xvfb && yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++
RUN echo >> /etc/profile.d/devtoolset-8.sh 'source scl_source enable devtoolset-8'
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
Expand Down
10 changes: 10 additions & 0 deletions cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
<!-- See the ../guides/writing-the-cypress-changelog.md for details on writing the changelog. -->
## 13.6.4

_Released 1/30/2024 (PENDING)_

** Dependency Updates:**

- Updated `@cypress/unique-selector` to include a performance optimization. It's possible this could improve performance of the selector playground. Addressed in [#28571](https://github.com/cypress-io/cypress/pull/28571).
- Upgraded `electron` from `25.8.4` to `27.1.3`
- Upgraded bundled Node.js version from `18.15.0` to `18.17.0`
- Upgraded bundled Chromium version from `114.0.5735.289` to `116.0.5845.228`
Copy link
Member

Choose a reason for hiding this comment

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

Chromium version is v18.17 -- https://www.electronjs.org/docs/latest/tutorial/electron-timelines / showing in System Tests output as well


**Performance:**

- Fixed a performance regression from [`13.3.2`](https://docs.cypress.io/guides/references/changelog#13.3.2) where aborted requests may not correlate correctly. Fixes [#28734](https://github.com/cypress-io/cypress/issues/28734).
Expand Down Expand Up @@ -40,6 +49,7 @@ _Released 1/16/2024_
- Improved accessibility of some areas of the Cypress App. Addressed in [#28628](https://github.com/cypress-io/cypress/pull/28628).
- Updated some documentation links to go through on.cypress.io. Addressed in [#28623](https://github.com/cypress-io/cypress/pull/28623).


## 13.6.2

_Released 12/26/2023_
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ services:
- .:/opt/cypress
ci:
# This should mirror the image used in workflows.yml
image: cypress/browsers-internal:node18.15.0-chrome114-ff115
image: cypress/browsers-internal:node18.17.0-chrome118-ff115
ports:
- 5566:5566
- 5567:5567
Expand Down
6 changes: 6 additions & 0 deletions guides/building-release-artifacts.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,9 @@ You can build the Cypress binary locally by running `yarn binary-build`, then pa
If you're on macOS and building locally, you'll need a code-signing certificate in your keychain, which you can get by following the [instructions on Apple's website](https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html#//apple_ref/doc/uid/TP40005929-CH4-SW30). Also, you'll also most likely want to skip notarization since it requires an Apple Developer Program account - set `SKIP_NOTARIZATION=1` when building locally to do this. [More info about code signing in CI](./code-signing.md).

`yarn binary-zip` can be used to zip the built binary together.

### Tips

If you want to speed up the time it takes to package the binary, set `V8_SNAPSHOT_DISABLE_MINIFY=1`

If you are on an M1, you need to set `RESET_ADHOC_SIGNATURE=1` in order to be able to actually run the binary after packaging it.
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"binary-ensure": "node ./scripts/binary.js ensure",
"binary-purge": "node ./scripts/binary.js purge-version",
"binary-release": "node ./scripts/binary.js release",
"binary-smoke-test": "node ./scripts/binary.js smoke",
"binary-upload": "node ./scripts/binary.js upload",
"binary-zip": "node ./scripts/binary.js zip",
"binary-package": "cross-env NODE_OPTIONS=--max_old_space_size=8192 node ./scripts/binary.js package",
Expand Down Expand Up @@ -145,7 +146,7 @@
"dedent": "^0.7.0",
"del": "3.0.0",
"detect-port": "^1.3.0",
"electron": "25.8.4",
"electron": "27.1.3",
"electron-builder": "^23.6.0",
"enzyme-adapter-react-16": "1.12.1",
"eslint": "7.22.0",
Expand Down Expand Up @@ -211,7 +212,7 @@
"yarn-deduplicate": "3.1.0"
},
"engines": {
"node": ">=18.15.0",
"node": ">=18.17.0",
Copy link
Member

Choose a reason for hiding this comment

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

This would be non-passive to bump for yarn projects

Copy link
Member

Choose a reason for hiding this comment

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

wait -- my bad -- this is our for our development version. This is fine. I mistook this for cli/package.json.

"yarn": ">=1.17.3"
},
"productName": "Cypress",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/cypress/component/support/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,5 @@ registerMountFn({ plugins: [() => createRouter(), () => pinia] })

installCustomPercyCommand()

Cypress.on('uncaught:exception', (err) => !err.message.includes('ResizeObserver loop limit exceeded'))
Cypress.on('uncaught:exception', (err) => !err.message.includes('ResizeObserver loop completed with undelivered notifications.'))
Cypress.Commands.add('tabUntil', tabUntil)
4 changes: 2 additions & 2 deletions packages/app/src/components/Slideshow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<div class="relative">
<!-- leave-to classes are marked absolute to allow the entering component to
animate on top of the leaving component, creating a fading animation with no thrashing -->
<transition
<transition-group
enter-from-class="opacity-0"
enter-active-class="transition duration-300 ease-out"
enter-to-class="opacity-100"
Expand All @@ -18,7 +18,7 @@
:go-forward="increment"
:reset="reset"
/>
</transition>
</transition-group>
</div>
</template>

Expand Down
3 changes: 1 addition & 2 deletions packages/app/src/debug/empty/DebugEmptyStates.cy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,7 @@ describe('Debug page empty states', { defaultCommandTimeout: 250 }, () => {

// ensure the promos are done transitioning before clicking on the control
// since 2 buttons could display if both promos are easing in and out
cy.findByTestId('promo-action')
.should('not.have.class', 'ease-in')
cy.findAllByTestId('guide-card', { timeout: 350 }).should('not.have.class', 'ease-in')
.and('not.have.class', 'ease-out')

cy.findByTestId('promo-action-control').click()
Expand Down
3 changes: 3 additions & 0 deletions packages/app/src/debug/guide/DebugGuide.vue
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,17 @@
<GuideCard1
v-if="step === 0"
:action="goForward"
data-cy="guide-card"
/>
<GuideCard2
v-else-if="step === 1"
:action="goForward"
data-cy="guide-card"
/>
<GuideCard3
v-else-if="step === 2"
:action="reset"
data-cy="guide-card"
/>
</template>
</Promo>
Expand Down
Loading
Loading