[build-utils][node][python][ruby] Update error message for EOL runtimes (#8167)

This PR updates the error message when the runtime version detected is EOL
This commit is contained in:
Steven
2022-07-15 15:38:38 -04:00
committed by GitHub
parent 181a492d91
commit 4f4a42813f
8 changed files with 15 additions and 23 deletions

View File

@@ -33,9 +33,6 @@ function getHint(isAuto = false) {
: `Please set "engines": { "node": "${range}" } in your \`package.json\` file to use Node.js ${major}.`; : `Please set "engines": { "node": "${range}" } in your \`package.json\` file to use Node.js ${major}.`;
} }
const upstreamProvider =
'This change is the result of a decision made by an upstream infrastructure provider (AWS).';
export function getLatestNodeVersion() { export function getLatestNodeVersion() {
return allOptions[0]; return allOptions[0];
} }
@@ -75,7 +72,7 @@ export async function getSupportedNodeVersion(
throw new NowBuildError({ throw new NowBuildError({
code: 'BUILD_UTILS_NODE_VERSION_DISCONTINUED', code: 'BUILD_UTILS_NODE_VERSION_DISCONTINUED',
link: 'http://vercel.link/node-version', link: 'http://vercel.link/node-version',
message: `${intro} ${getHint(isAuto)} ${upstreamProvider}`, message: `${intro} ${getHint(isAuto)}`,
}); });
} }
@@ -86,9 +83,9 @@ export async function getSupportedNodeVersion(
console.warn( console.warn(
`Error: Node.js version ${ `Error: Node.js version ${
selection.range selection.range
} is deprecated. Deployments created on or after ${d} will fail to build. ${getHint( } has reached End-of-Life. Deployments created on or after ${d} will fail to build. ${getHint(
isAuto isAuto
)} ${upstreamProvider}` )}`
); );
} }

View File

@@ -387,10 +387,10 @@ it('should warn for deprecated versions, soon to be discontinued', async () => {
12 12
); );
expect(warningMessages).toStrictEqual([ expect(warningMessages).toStrictEqual([
'Error: Node.js version 10.x is deprecated. Deployments created on or after 2021-04-20 will fail to build. Please set "engines": { "node": "16.x" } in your `package.json` file to use Node.js 16. This change is the result of a decision made by an upstream infrastructure provider (AWS).', 'Error: Node.js version 10.x has reached End-of-Life. Deployments created on or after 2021-04-20 will fail to build. Please set "engines": { "node": "16.x" } in your `package.json` file to use Node.js 16.',
'Error: Node.js version 10.x is deprecated. Deployments created on or after 2021-04-20 will fail to build. Please set Node.js Version to 16.x in your Project Settings to use Node.js 16. This change is the result of a decision made by an upstream infrastructure provider (AWS).', 'Error: Node.js version 10.x has reached End-of-Life. Deployments created on or after 2021-04-20 will fail to build. Please set Node.js Version to 16.x in your Project Settings to use Node.js 16.',
'Error: Node.js version 12.x is deprecated. Deployments created on or after 2022-08-09 will fail to build. Please set "engines": { "node": "16.x" } in your `package.json` file to use Node.js 16. This change is the result of a decision made by an upstream infrastructure provider (AWS).', 'Error: Node.js version 12.x has reached End-of-Life. Deployments created on or after 2022-08-09 will fail to build. Please set "engines": { "node": "16.x" } in your `package.json` file to use Node.js 16.',
'Error: Node.js version 12.x is deprecated. Deployments created on or after 2022-08-09 will fail to build. Please set Node.js Version to 16.x in your Project Settings to use Node.js 16. This change is the result of a decision made by an upstream infrastructure provider (AWS).', 'Error: Node.js version 12.x has reached End-of-Life. Deployments created on or after 2022-08-09 will fail to build. Please set Node.js Version to 16.x in your Project Settings to use Node.js 16.',
]); ]);
global.Date.now = realDateNow; global.Date.now = realDateNow;

View File

@@ -25,9 +25,6 @@ const allOptions: PythonVersion[] = [
}, },
]; ];
const upstreamProvider =
'This change is the result of a decision made by an upstream infrastructure provider (AWS)';
function getDevPythonVersion(): PythonVersion { function getDevPythonVersion(): PythonVersion {
// Use the system-installed version of `python3` when running `vercel dev` // Use the system-installed version of `python3` when running `vercel dev`
return { return {
@@ -75,14 +72,14 @@ export function getSupportedPythonVersion({
throw new NowBuildError({ throw new NowBuildError({
code: 'BUILD_UTILS_PYTHON_VERSION_DISCONTINUED', code: 'BUILD_UTILS_PYTHON_VERSION_DISCONTINUED',
link: 'http://vercel.link/python-version', link: 'http://vercel.link/python-version',
message: `Python version "${selection.version}" detected in Pipfile.lock is discontinued and must be upgraded. ${upstreamProvider}.`, message: `Python version "${selection.version}" detected in Pipfile.lock is discontinued and must be upgraded.`,
}); });
} }
if (selection.discontinueDate) { if (selection.discontinueDate) {
const d = selection.discontinueDate.toISOString().split('T')[0]; const d = selection.discontinueDate.toISOString().split('T')[0];
console.warn( console.warn(
`Error: Python version "${selection.version}" detected in Pipfile.lock is deprecated. Deployments created on or after ${d} will fail to build. ${upstreamProvider}. http://vercel.link/python-version` `Error: Python version "${selection.version}" detected in Pipfile.lock has reached End-of-Life. Deployments created on or after ${d} will fail to build. http://vercel.link/python-version`
); );
} }

View File

@@ -5,7 +5,7 @@
{ {
"path": "/", "path": "/",
"mustContain": "wsgi:RANDOMNESS_PLACEHOLDER", "mustContain": "wsgi:RANDOMNESS_PLACEHOLDER",
"logMustContain": "Python version \"3.6\" detected in Pipfile.lock is deprecated. Deployments created on or after 2022-07-18 will fail to build" "logMustContain": "Python version \"3.6\" detected in Pipfile.lock has reached End-of-Life. Deployments created on or after 2022-07-18 will fail to build"
} }
] ]
} }

View File

@@ -8,7 +8,7 @@
{ {
"path": "/", "path": "/",
"mustContain": "RANDOMNESS_PLACEHOLDER:env", "mustContain": "RANDOMNESS_PLACEHOLDER:env",
"logMustContain": "Python version \"3.6\" detected in Pipfile.lock is deprecated. Deployments created on or after 2022-07-18 will fail to build" "logMustContain": "Python version \"3.6\" detected in Pipfile.lock has reached End-of-Life. Deployments created on or after 2022-07-18 will fail to build"
} }
] ]
} }

View File

@@ -58,7 +58,7 @@ it('should throw for discontinued versions', async () => {
expect(() => expect(() =>
getSupportedPythonVersion({ pipLockPythonVersion: '3.6' }) getSupportedPythonVersion({ pipLockPythonVersion: '3.6' })
).toThrow( ).toThrow(
'Python version "3.6" detected in Pipfile.lock is discontinued and must be upgraded. This change is the result of a decision made by an upstream infrastructure provider (AWS).' 'Python version "3.6" detected in Pipfile.lock is discontinued and must be upgraded.'
); );
expect(warningMessages).toStrictEqual([]); expect(warningMessages).toStrictEqual([]);
}); });
@@ -70,6 +70,6 @@ it('should warn for deprecated versions, soon to be discontinued', async () => {
getSupportedPythonVersion({ pipLockPythonVersion: '3.6' }) getSupportedPythonVersion({ pipLockPythonVersion: '3.6' })
).toHaveProperty('runtime', 'python3.6'); ).toHaveProperty('runtime', 'python3.6');
expect(warningMessages).toStrictEqual([ expect(warningMessages).toStrictEqual([
'Error: Python version "3.6" detected in Pipfile.lock is deprecated. Deployments created on or after 2022-07-18 will fail to build. This change is the result of a decision made by an upstream infrastructure provider (AWS). http://vercel.link/python-version', 'Error: Python version "3.6" detected in Pipfile.lock has reached End-of-Life. Deployments created on or after 2022-07-18 will fail to build. http://vercel.link/python-version',
]); ]);
}); });

View File

@@ -56,12 +56,10 @@ function getRubyPath(meta: Meta, gemfileContents: string) {
const latest = getLatestRubyVersion(); const latest = getLatestRubyVersion();
const intro = `Found \`Gemfile\` with discontinued Ruby version: \`${line}.\``; const intro = `Found \`Gemfile\` with discontinued Ruby version: \`${line}.\``;
const hint = `Please set \`ruby "~> ${latest.range}"\` in your \`Gemfile\` to use Ruby ${latest.range}.`; const hint = `Please set \`ruby "~> ${latest.range}"\` in your \`Gemfile\` to use Ruby ${latest.range}.`;
const upstream =
'This change is the result of a decision made by an upstream infrastructure provider (AWS).';
throw new NowBuildError({ throw new NowBuildError({
code: 'RUBY_DISCONTINUED_VERSION', code: 'RUBY_DISCONTINUED_VERSION',
link: 'http://vercel.link/ruby-version', link: 'http://vercel.link/ruby-version',
message: `${intro} ${hint} ${upstream}`, message: `${intro} ${hint}`,
}); });
} }
} }

View File

@@ -26,7 +26,7 @@ const fixturesPath = path.resolve(__dirname, 'fixtures');
const testsThatFailToBuild = new Map([ const testsThatFailToBuild = new Map([
[ [
'11-version-2-5-error', '11-version-2-5-error',
'Found `Gemfile` with discontinued Ruby version: `ruby "~> 2.5.x".` Please set `ruby "~> 2.7.x"` in your `Gemfile` to use Ruby 2.7.x. This change is the result of a decision made by an upstream infrastructure provider (AWS).', 'Found `Gemfile` with discontinued Ruby version: `ruby "~> 2.5.x".` Please set `ruby "~> 2.7.x"` in your `Gemfile` to use Ruby 2.7.x.',
], ],
]); ]);