mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-10 12:57:47 +00:00
[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:
@@ -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}`
|
)}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
8
packages/build-utils/test/unit.test.ts
vendored
8
packages/build-utils/test/unit.test.ts
vendored
@@ -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;
|
||||||
|
|||||||
@@ -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`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
4
packages/python/test/unit.test.ts
vendored
4
packages/python/test/unit.test.ts
vendored
@@ -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',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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}`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
packages/ruby/test/test.js
vendored
2
packages/ruby/test/test.js
vendored
@@ -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.',
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user