Skip to content

Commit

Permalink
chore: 13.0.0 release (#27690)
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisbreiding committed Aug 29, 2023
1 parent b339f8b commit 91d2845
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 11 deletions.
6 changes: 3 additions & 3 deletions cli/CHANGELOG.md
@@ -1,7 +1,7 @@
<!-- See the ../guides/writing-the-cypress-changelog.md for details on writing the changelog. -->
## 13.0.0

_Released 08/22/2023 (PENDING)_
_Released 08/29/2023_

**Breaking Changes:**

Expand All @@ -10,7 +10,7 @@ _Released 08/22/2023 (PENDING)_
- The [`videoCompression`](https://docs.cypress.io/guides/references/configuration#Videos) configuration option now defaults to `false`. Addresses [#26160](https://github.com/cypress-io/cypress/issues/26160).
- The [`videoUploadOnPasses`](https://docs.cypress.io/guides/references/configuration#Videos) configuration option has been removed. Please see our [screenshots & videos guide](https://docs.cypress.io/guides/guides/screenshots-and-videos#Delete-videos-for-specs-without-failing-or-retried-tests) on how to accomplish similar functionality. Addresses [#26899](https://github.com/cypress-io/cypress/issues/26899).
- The current spec path is now passed from the AUT iframe using a query parameter rather than a path segment. This allows for requests for assets at relative paths to be correctly forwarded to the dev server. Fixes [#26725](https://github.com/cypress-io/cypress/issues/26725).
- The deprecated configuration option, `nodeVersion` has been removed. Addresses [#27016](https://github.com/cypress-io/cypress/issues/27016).
- The deprecated configuration option `nodeVersion` has been removed. Addresses [#27016](https://github.com/cypress-io/cypress/issues/27016).
- The properties and values returned by the [Module API](https://docs.cypress.io/guides/guides/module-api) and included in the arguments of handlers for the [`after:run`](https://docs.cypress.io/api/plugins/after-run-api) and [`after:spec`](https://docs.cypress.io/api/plugins/after-spec-api) have been changed to be more consistent. Addresses [#23805](https://github.com/cypress-io/cypress/issues/23805).
- For Cypress Cloud runs with Test Replay enabled, the Cypress Runner UI is now hidden during the run since the Runner will be visible during Test Replay. As such, if video is recorded (which is now defaulted to `false`) during the run, the Runner will not be visible. In addition, if a runner screenshot (`cy.screenshot({ capture: runner })`) is captured, it will no longer contain the Runner.
- Node 14 support has been removed and Node 16 support has been deprecated. Node 16 may continue to work with Cypress `v13`, but will not be supported moving forward to closer coincide with [Node 16's end-of-life](https://nodejs.org/en/blog/announcements/nodejs16-eol) schedule. It is recommended that users update to at least Node 18.
Expand All @@ -22,7 +22,7 @@ _Released 08/22/2023 (PENDING)_

**Bugfixes:**

- Only force CommonJS when running `ts-node` with a `TS_NODE_COMPILER` environment variable, such as when Cypress uses `ts-node` internally. This solves an issue where Cypress' internal `tsconfig` conflicts with properties set in the user's `tsconfig.json` such as `module` and `moduleResolution`. Fixes [#26308](https://github.com/cypress-io/cypress/issues/26308) and [#27448](https://github.com/cypress-io/cypress/issues/27448).
- Fixed an issue where Cypress's internal `tsconfig` would conflict with properties set in the user's `tsconfig.json` such as `module` and `moduleResolution`. Fixes [#26308](https://github.com/cypress-io/cypress/issues/26308) and [#27448](https://github.com/cypress-io/cypress/issues/27448).
- Clarified Svelte 4 works correctly with Component Testing and updated dependencies checks to reflect this. It was incorrectly flagged as not supported. Fixes [#27465](https://github.com/cypress-io/cypress/issues/27465).
- Resolve the `process/browser` global inside `@cypress/webpack-batteries-included-preprocessor` to resolve to `process/browser.js` in order to explicitly provide the file extension. File resolution must include the extension for `.mjs` and `.js` files inside ESM packages in order to resolve correctly. Fixes[#27599](https://github.com/cypress-io/cypress/issues/27599).
- Fixed an issue where the correct `pnp` process was not being discovered. Fixes [#27562](https://github.com/cypress-io/cypress/issues/27562).
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "cypress",
"version": "12.17.4",
"version": "13.0.0",
"description": "Cypress is a next generation front end testing tool built for the modern web",
"private": true,
"scripts": {
Expand Down
70 changes: 63 additions & 7 deletions scripts/semantic-commits/get-binary-release-data.js
@@ -1,3 +1,4 @@
const Bluebird = require('bluebird')
const childProcess = require('child_process')
const _ = require('lodash')
const { Octokit } = require('@octokit/core')
Expand Down Expand Up @@ -33,6 +34,66 @@ const getChangedFilesSinceLastRelease = (latestReleaseInfo) => {
return stdout.split('\n')
}

// returns number of milliseconds to wait for retry
const getRetryAfter = (headers) => {
// retry-after header is number of seconds to wait
if (headers['retry-after'] && headers['retry-after'] !== '0') {
return parseInt(headers['retry-after'], 10) * 1000
}

// x-ratelimit-reset header is the time in seconds since epoch after
// which to retry
if (headers['x-ratelimit-reset']) {
const epochSeconds = parseInt(headers['x-ratelimit-reset'], 10)

// turn it into milliseconds to wait and pad it by a second for good measure
return (epochSeconds - (Date.now() / 1000)) * 1000 + 1000
}

// otherwise, just wait a minute
return 6000
}

// https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#secondary-rate-limits
const parseRateLimit = (err) => {
if (err.status === 403 && err.response?.data?.message.includes('secondary rate limit')) {
const retryAfter = getRetryAfter(err.response?.headers)

return {
rateLimitHit: true,
retryAfter,
}
}

return {
rateLimitHit: false,
}
}

const fetchPullRequest = async (octokit, pullNumber) => {
try {
const { data: pullRequest } = await octokit.request('GET /repos/{owner}/{repo}/pulls/{pull_number}', {
owner: 'cypress-io',
repo: 'cypress',
pull_number: pullNumber,
})

return pullRequest
} catch (err) {
console.log(`Error while fetching PR #${pullNumber}:`, err)

const { rateLimitHit, retryAfter } = parseRateLimit(err)

if (rateLimitHit) {
console.log(`Rate limit hit - Retry fetching PR #${pullNumber} after ${retryAfter}ms`)

return Bluebird.delay(retryAfter).then(() => fetchPullRequest(octokit, pullNumber))
}

throw err
}
}

/**
* Get the next release version given the semantic commits in the git history. Then using the commit history,
* determine which files have changed, list of PRs merged and issues resolved since the latest tag was
Expand Down Expand Up @@ -61,7 +122,7 @@ const getReleaseData = async (latestReleaseInfo) => {
const prsInRelease = []
const commits = []

await Promise.all(semanticCommits.map(async (semanticResult) => {
await Bluebird.each(semanticCommits, (async (semanticResult) => {
if (!semanticResult) return

const { type: semanticType, references } = semanticResult
Expand All @@ -80,12 +141,7 @@ const getReleaseData = async (latestReleaseInfo) => {
return
}

const { data: pullRequest } = await octokit.request('GET /repos/{owner}/{repo}/pulls/{pull_number}', {
owner: 'cypress-io',
repo: 'cypress',
pull_number: ref.issue,
})

const pullRequest = await fetchPullRequest(octokit, ref.issue)
const associatedIssues = pullRequest.body ? getLinkedIssues(pullRequest.body) : []

commits.push({
Expand Down

5 comments on commit 91d2845

@cypress-bot
Copy link
Contributor

@cypress-bot cypress-bot bot commented on 91d2845 Aug 29, 2023

Choose a reason for hiding this comment

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

Circle has built the darwin arm64 version of the Test Runner.

Learn more about this pre-release build at https://on.cypress.io/advanced-installation#Install-pre-release-version

Run this command to install the pre-release locally:

npm install https://cdn.cypress.io/beta/npm/13.0.0/darwin-arm64/develop-91d2845a247300b081eab609a851a55e131c53ef/cypress.tgz

@cypress-bot
Copy link
Contributor

@cypress-bot cypress-bot bot commented on 91d2845 Aug 29, 2023

Choose a reason for hiding this comment

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

Circle has built the linux x64 version of the Test Runner.

Learn more about this pre-release build at https://on.cypress.io/advanced-installation#Install-pre-release-version

Run this command to install the pre-release locally:

npm install https://cdn.cypress.io/beta/npm/13.0.0/linux-x64/develop-91d2845a247300b081eab609a851a55e131c53ef/cypress.tgz

@cypress-bot
Copy link
Contributor

@cypress-bot cypress-bot bot commented on 91d2845 Aug 29, 2023

Choose a reason for hiding this comment

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

Circle has built the linux arm64 version of the Test Runner.

Learn more about this pre-release build at https://on.cypress.io/advanced-installation#Install-pre-release-version

Run this command to install the pre-release locally:

npm install https://cdn.cypress.io/beta/npm/13.0.0/linux-arm64/develop-91d2845a247300b081eab609a851a55e131c53ef/cypress.tgz

@cypress-bot
Copy link
Contributor

@cypress-bot cypress-bot bot commented on 91d2845 Aug 29, 2023

Choose a reason for hiding this comment

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

Circle has built the darwin x64 version of the Test Runner.

Learn more about this pre-release build at https://on.cypress.io/advanced-installation#Install-pre-release-version

Run this command to install the pre-release locally:

npm install https://cdn.cypress.io/beta/npm/13.0.0/darwin-x64/develop-91d2845a247300b081eab609a851a55e131c53ef/cypress.tgz

@cypress-bot
Copy link
Contributor

@cypress-bot cypress-bot bot commented on 91d2845 Aug 29, 2023

Choose a reason for hiding this comment

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

Circle has built the win32 x64 version of the Test Runner.

Learn more about this pre-release build at https://on.cypress.io/advanced-installation#Install-pre-release-version

Run this command to install the pre-release locally:

npm install https://cdn.cypress.io/beta/npm/13.0.0/win32-x64/develop-91d2845a247300b081eab609a851a55e131c53ef/cypress.tgz

Please sign in to comment.