Drop unsupported .NET Core versions and nearly-unsupported Python version (#3018)
This commit is contained in:
Родитель
38c8f682ef
Коммит
1576745478
|
@ -8,9 +8,9 @@ steps:
|
|||
condition: eq(variables['Agent.OS'], 'Linux')
|
||||
|
||||
- task: UsePythonVersion@0
|
||||
displayName: 'Use Python 3.6.x'
|
||||
displayName: 'Use Python 3.7.x'
|
||||
inputs:
|
||||
versionSpec: 3.6.x
|
||||
versionSpec: 3.7.x
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Use .NET sdk 6.0.x'
|
||||
|
|
|
@ -26,7 +26,7 @@ jobs:
|
|||
|
||||
- job: macOS
|
||||
pool:
|
||||
vmImage: macOS-10.14 # Using 10.14 instead of latest (10.15) because of "ENOTCONN" errors during tests
|
||||
vmImage: macOS-latest
|
||||
steps:
|
||||
- template: common/build.yml
|
||||
- template: common/package.yml
|
||||
|
|
Двоичный файл не отображается.
Двоичные данные
resources/dotnetJsonCli/net5.0/Newtonsoft.Json.dll
Двоичные данные
resources/dotnetJsonCli/net5.0/Newtonsoft.Json.dll
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -3,7 +3,7 @@
|
|||
"tfm": "net6.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "6.0.0-preview.7.21377.19"
|
||||
"version": "6.0.0"
|
||||
},
|
||||
"configProperties": {
|
||||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false
|
||||
|
|
Двоичные данные
resources/dotnetJsonCli/net6.0/Newtonsoft.Json.dll
Двоичные данные
resources/dotnetJsonCli/net6.0/Newtonsoft.Json.dll
Двоичный файл не отображается.
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "netcoreapp2.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "2.0.0"
|
||||
},
|
||||
"configProperties": {
|
||||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false
|
||||
}
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
resources/dotnetJsonCli/netcoreapp3.0/Newtonsoft.Json.dll
Двоичные данные
resources/dotnetJsonCli/netcoreapp3.0/Newtonsoft.Json.dll
Двоичный файл не отображается.
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v3.0",
|
||||
"name": ".NETCoreApp,Version=v3.1",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v3.0": {
|
||||
".NETCoreApp,Version=v3.1": {
|
||||
"Microsoft.TemplateEngine.JsonCli/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.TemplateEngine.Cli": "5.0.0-preview.6.20304.1",
|
Двоичный файл не отображается.
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "netcoreapp3.0",
|
||||
"tfm": "netcoreapp3.1",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "3.0.0"
|
||||
"version": "3.1.0"
|
||||
},
|
||||
"configProperties": {
|
||||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false
|
Двоичный файл не отображается.
|
@ -44,7 +44,7 @@ export class PythonAliasListStep extends AzureWizardPromptStep<IPythonVenvWizard
|
|||
async function getPicks(context: IPythonVenvWizardContext): Promise<IAzureQuickPickItem<string | boolean>[]> {
|
||||
const supportedVersions: string[] = await getSupportedPythonVersions(context, context.version);
|
||||
|
||||
const aliasesToTry: string[] = ['python3', 'python', 'py'];
|
||||
const aliasesToTry: string[] = ['python', 'python3', 'py'];
|
||||
for (const version of supportedVersions) {
|
||||
aliasesToTry.push(`python${version}`, `py -${version}`);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as path from 'path';
|
||||
import { coerce as semVerCoerce, SemVer } from 'semver';
|
||||
import { IActionContext } from 'vscode-azureextensionui';
|
||||
import { ext } from "../../extensionVariables";
|
||||
import { FuncVersion } from '../../FuncVersion';
|
||||
|
@ -60,25 +61,26 @@ async function getFramework(context: IActionContext, workingDirectory: string |
|
|||
}
|
||||
|
||||
// Prioritize "LTS", then "Current", then "Preview"
|
||||
const majorVersions: number[] = [3, 5, 6, 2];
|
||||
const netVersions: string[] = ['6.0', '5.0', '3.1'];
|
||||
const semVersions: SemVer[] = netVersions.map(v => semVerCoerce(v) as SemVer);
|
||||
|
||||
let pickedVersion: number | undefined;
|
||||
let pickedVersion: SemVer | undefined;
|
||||
|
||||
// Try to get a GA version first (i.e. "1.0.0")
|
||||
for (const majorVersion of majorVersions) {
|
||||
const regExp: RegExp = new RegExp(`^\\s*${majorVersion}\\.[0-9]+\\.[0-9]+(\\s|$)`, 'm');
|
||||
for (const semVersion of semVersions) {
|
||||
const regExp: RegExp = new RegExp(`^\\s*${semVersion.major}\\.${semVersion.minor}\\.[0-9]+(\\s|$)`, 'm');
|
||||
if (regExp.test(versions)) {
|
||||
pickedVersion = majorVersion;
|
||||
pickedVersion = semVersion;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise allow a preview version (i.e. "1.0.0-alpha")
|
||||
if (!pickedVersion) {
|
||||
for (const majorVersion of majorVersions) {
|
||||
const regExp: RegExp = new RegExp(`^\\s*${majorVersion}\\.`, 'm');
|
||||
for (const semVersion of semVersions) {
|
||||
const regExp: RegExp = new RegExp(`^\\s*${semVersion.major}\\.${semVersion.minor}\\.`, 'm');
|
||||
if (regExp.test(versions)) {
|
||||
pickedVersion = majorVersion;
|
||||
pickedVersion = semVersion;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -89,7 +91,7 @@ async function getFramework(context: IActionContext, workingDirectory: string |
|
|||
context.errorHandling.suppressReportIssue = true;
|
||||
throw new Error(localize('noMatchingFramework', 'You must have the [.NET Core SDK](https://aka.ms/AA4ac70) installed to perform this operation. See [here](https://aka.ms/AA1tpij) for supported versions.'));
|
||||
} else {
|
||||
cachedFramework = `net${pickedVersion < 4 ? 'coreapp' : ''}${pickedVersion}.0`;
|
||||
cachedFramework = `${pickedVersion.major < 4 ? 'netcoreapp' : 'net'}${pickedVersion.major}.${pickedVersion.minor}`;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ const testCases: CreateProjectAndDeployTestCase[] = [
|
|||
{ title: 'C# .NET 5', buildMachineOsToSkip: 'darwin', ...getCSharpValidateOptions('net5.0'), createProjectInputs: [/net.*5/i], deployInputs: [/net.*5/i], createFunctionInputs: ['Company.Function'] },
|
||||
{ title: 'C# .NET 6', buildMachineOsToSkip: ['darwin', 'win32'], ...getCSharpValidateOptions('net6.0', FuncVersion.v4), createProjectInputs: [/net.*6/i], deployInputs: [/net.*6/i], createFunctionInputs: ['Company.Function'] },
|
||||
{ title: 'PowerShell', ...getPowerShellValidateOptions(), deployInputs: [/powershell.*7/i] },
|
||||
{ title: 'Python', buildMachineOsToSkip: 'win32', ...getPythonValidateOptions('.venv'), createProjectInputs: [/3\.6/], deployInputs: [getRotatingPythonVersion()] }
|
||||
{ title: 'Python', buildMachineOsToSkip: 'win32', ...getPythonValidateOptions('.venv'), createProjectInputs: [/3\.7/], deployInputs: [getRotatingPythonVersion()] }
|
||||
]
|
||||
|
||||
const parallelTests: ParallelTest[] = [];
|
||||
|
|
|
@ -25,7 +25,7 @@ export function getRotatingNodeVersion(): RegExp {
|
|||
}
|
||||
|
||||
let pyVersionCount: number = getStartingIndex();
|
||||
const pyVersions: RegExp[] = [/python.*3\.6/i, /python.*3\.7/i, /python.*3\.8/i, /python.*3\.9/i];
|
||||
const pyVersions: RegExp[] = [/python.*3\.7/i, /python.*3\.8/i, /python.*3\.9/i];
|
||||
export function getRotatingPythonVersion(): RegExp {
|
||||
pyVersionCount += 1;
|
||||
return pyVersions[pyVersionCount % pyVersions.length];
|
||||
|
|
|
@ -38,7 +38,7 @@ for (const version of [FuncVersion.v2, FuncVersion.v3, FuncVersion.v4]) {
|
|||
|
||||
testCases.push({
|
||||
...getPythonValidateOptions('.venv', version),
|
||||
inputs: [/3\.6/]
|
||||
inputs: [/3\.7/]
|
||||
});
|
||||
|
||||
const appName: string = 'javaApp';
|
||||
|
|
|
@ -25,7 +25,7 @@ suite('Create New Python Project', () => {
|
|||
}
|
||||
this.timeout(2 * 60 * 1000);
|
||||
|
||||
const alias: string = process.platform === 'win32' ? 'py -3.6' : 'python3.6';
|
||||
const alias: string = process.platform === 'win32' ? 'py -3.7' : 'python3.7';
|
||||
await runWithTestActionContext('createProject', async context => {
|
||||
await createAndValidateProject(context, { ...getPythonValidateOptions('.venv', FuncVersion.v2), inputs: [/enter/i, alias] });
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче