chore: 13.0.0 release (#27690)

This commit is contained in:
Chris Breiding
2023-08-29 09:43:43 -04:00
committed by GitHub
parent b339f8b349
commit 91d2845a24
3 changed files with 67 additions and 11 deletions

View File

@@ -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:**
@@ -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.
@@ -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).

View File

@@ -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": {

View File

@@ -1,3 +1,4 @@
const Bluebird = require('bluebird')
const childProcess = require('child_process')
const _ = require('lodash')
const { Octokit } = require('@octokit/core')
@@ -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
@@ -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
@@ -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({