diff --git a/lib/src/language_version.dart b/lib/src/language_version.dart index 63ac0e13d..578744458 100644 --- a/lib/src/language_version.dart +++ b/lib/src/language_version.dart @@ -108,8 +108,7 @@ class LanguageVersion implements Comparable { static const defaultLanguageVersion = LanguageVersion(2, 7); static const firstVersionWithNullSafety = LanguageVersion(2, 12); static const firstVersionWithShorterHostedSyntax = LanguageVersion(2, 15); - // TODO(https://github.com/dart-lang/pub/issues/4127) update when we know actual version. - static const firstVersionWithWorkspaces = LanguageVersion(3, 7); + static const firstVersionWithWorkspaces = LanguageVersion(3, 5); /// Transform language version to string that can be parsed with /// [LanguageVersion.parse]. diff --git a/test/descriptor.dart b/test/descriptor.dart index 915082b8f..7749e92f5 100644 --- a/test/descriptor.dart +++ b/test/descriptor.dart @@ -117,7 +117,7 @@ FileDescriptor libPubspec( }) { var map = packageMap(name, version, deps, devDeps); if (resolutionWorkspace && sdk == null) { - sdk = '3.7.0'; + sdk = '3.5.0'; } if (sdk != null) { map['environment'] = {'sdk': sdk}; diff --git a/test/pubspec_test.dart b/test/pubspec_test.dart index e714f2e6f..cbbb0cf20 100644 --- a/test/pubspec_test.dart +++ b/test/pubspec_test.dart @@ -351,7 +351,7 @@ dependencies: Pubspec.parse( ''' environment: - sdk: ^3.7.0 + sdk: ^3.5.0 workspace: ['a', 'b', 'c'] ''', sources, @@ -366,7 +366,7 @@ workspace: ['a', 'b', 'c'] Pubspec.parse( ''' environment: - sdk: ^3.7.0 + sdk: ^3.5.0 resolution: workspace ''', sources, @@ -416,7 +416,7 @@ resolution: local expectPubspecException( ''' environment: - sdk: ^3.7.0 + sdk: ^3.5.0 workspace: 'a string' ''', (pubspec) => pubspec.workspace, @@ -427,7 +427,7 @@ workspace: 'a string' expectPubspecException( ''' environment: - sdk: ^3.7.0 + sdk: ^3.5.0 workspace: ['a string', 24] ''', (pubspec) => pubspec.workspace, @@ -438,7 +438,7 @@ workspace: ['a string', 24] expectPubspecException( ''' environment: - sdk: ^3.7.0 + sdk: ^3.5.0 resolution: "sometimes"''', (pubspec) => pubspec.resolution, ); diff --git a/test/workspace_test.dart b/test/workspace_test.dart index f78c514a0..4aca553b3 100644 --- a/test/workspace_test.dart +++ b/test/workspace_test.dart @@ -23,7 +23,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -37,7 +37,7 @@ void main() { ]), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains('+ dev_dep'), ); final lockfile = loadYaml( @@ -49,7 +49,7 @@ void main() { packageConfigEntry(name: 'dev_dep', version: '1.0.0'), packageConfigEntry(name: 'a', path: './pkgs/a'), ], - generatorVersion: '3.7.0', + generatorVersion: '3.5.0', ).validate(); }); @@ -64,7 +64,7 @@ void main() { extras: { 'workspace': ['pkgs/a', 'pkgs/b'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -87,7 +87,7 @@ void main() { ]), ]), ]).create(); - await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}); + await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}); final lockfile = loadYaml( File(p.join(sandbox, appPath, 'pubspec.lock')).readAsStringSync(), ); @@ -97,7 +97,7 @@ void main() { packageConfigEntry(name: 'a', path: './pkgs/a'), packageConfigEntry(name: 'b', path: './pkgs/b'), ], - generatorVersion: '3.7.0', + generatorVersion: '3.5.0', ).validate(); }); @@ -111,7 +111,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -136,7 +136,7 @@ void main() { ]), ]), ]).create(); - await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}); + await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}); final lockfile = loadYaml( File(p.join(sandbox, appPath, 'pubspec.lock')).readAsStringSync(), ); @@ -147,7 +147,7 @@ void main() { packageConfigEntry(name: 'a', path: './pkgs/a'), packageConfigEntry(name: 'example', path: './pkgs/a/example'), ], - generatorVersion: '3.7.0', + generatorVersion: '3.5.0', ).validate(); }); @@ -160,7 +160,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -174,7 +174,7 @@ void main() { ]), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains( 'Because myapp depends on a which depends on myapp ^0.2.3, myapp ^0.2.3 is required', ), @@ -191,7 +191,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -206,7 +206,7 @@ void main() { ]), ]), ]).create(); - await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}); + await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}); }); test('reports errors in workspace pubspec.yamls correctly', () async { @@ -217,7 +217,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -234,7 +234,7 @@ void main() { ]).create(); final s = p.separator; await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains( 'Error on line 1, column 118 of pkgs${s}a${s}pubspec.yaml: A dependency specification must be a string or a mapping.', ), @@ -250,7 +250,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -266,7 +266,7 @@ void main() { ]), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains( 'Because every version of a depends on foo from unknown source "posted", version solving failed.', ), @@ -281,7 +281,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -294,7 +294,7 @@ void main() { ]).create(); final s = p.separator; await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains( 'pkgs${s}a${s}pubspec.yaml is included in the workspace from .${s}pubspec.yaml, but does not have `resolution: workspace`.', ), @@ -309,7 +309,7 @@ void main() { extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -325,27 +325,27 @@ void main() { ]), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, workingDirectory: p.join(sandbox, appPath, 'pkgs'), output: contains('Resolving dependencies in `..`...'), ); final s = p.separator; await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, workingDirectory: p.join(sandbox, appPath, 'pkgs', 'a'), output: contains('Resolving dependencies in `..$s..`...'), ); await pubGet( args: ['-C$appPath/pkgs'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, workingDirectory: sandbox, output: contains('Resolving dependencies in `$appPath`...'), ); await pubGet( args: ['-C..'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, workingDirectory: p.join( sandbox, appPath, @@ -363,7 +363,7 @@ void main() { extras: { 'workspace': ['a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('a', [ libPubspec( @@ -377,7 +377,7 @@ void main() { ]), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains( 'Could not find a file named "pubspec.yaml" in "${p.join(sandbox, appPath, 'a', 'b')}".\n' 'That was included in the workspace of ${p.join('.', 'a', 'pubspec.yaml')}.\n' @@ -420,7 +420,7 @@ void main() { 'workspace': ['pkgs/a', 'pkgs/b'], }, deps: {'both': '^1.0.0', 'b': null}, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('bin', [file('myappmain.dart')]), dir('pkgs', [ @@ -447,10 +447,10 @@ void main() { ]).create(); await runPub( args: ['deps'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' -Dart SDK 3.7.0 +Dart SDK 3.5.0 a 1.1.1 ├── both... ├── foo 1.0.0 @@ -467,9 +467,9 @@ myapp 1.2.3 await runPub( args: ['deps', '--style=list', '--dev'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: ''' -Dart SDK 3.7.0 +Dart SDK 3.5.0 myapp 1.2.3 dependencies: @@ -504,9 +504,9 @@ transitive dependencies: await runPub( args: ['deps', '--style=list', '--no-dev'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: ''' -Dart SDK 3.7.0 +Dart SDK 3.5.0 myapp 1.2.3 dependencies: @@ -537,9 +537,9 @@ transitive dependencies: ); await runPub( args: ['deps', '--style=compact'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: ''' - Dart SDK 3.7.0 + Dart SDK 3.5.0 myapp 1.2.3 dependencies: @@ -566,7 +566,7 @@ transitive dependencies: ); await runPub( args: ['deps', '--executables'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: ''' myapp:myappmain both:bothmain @@ -577,7 +577,7 @@ foo:foomain''', test('`pub add` acts on the work package', () async { final server = await servePackages(); - server.serve('foo', '1.0.0', sdk: '^3.7.0'); + server.serve('foo', '1.0.0', sdk: '^3.5.0'); await dir(appPath, [ libPubspec( 'myapp', @@ -585,7 +585,7 @@ foo:foomain''', extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -598,13 +598,13 @@ foo:foomain''', ]), ]).create(); - await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}); + await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}); final aDir = p.join(sandbox, appPath, 'pkgs', 'a'); await pubAdd( args: ['foo'], output: contains('+ foo 1.0.0'), workingDirectory: aDir, - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, ); await dir(appPath, [ dir('pkgs', [ @@ -622,7 +622,7 @@ foo:foomain''', test('`pub remove` acts on the work package', () async { final server = await servePackages(); - server.serve('foo', '1.0.0', sdk: '^3.7.0'); + server.serve('foo', '1.0.0', sdk: '^3.5.0'); await dir(appPath, [ libPubspec( 'myapp', @@ -631,7 +631,7 @@ foo:foomain''', 'workspace': ['pkgs/a'], }, deps: {'foo': '^1.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir('a', [ @@ -645,13 +645,13 @@ foo:foomain''', ]), ]).create(); - await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}); + await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}); final aDir = p.join(sandbox, appPath, 'pkgs', 'a'); await pubRemove( args: ['foo'], output: isNot(contains('- foo 1.0.0')), workingDirectory: aDir, - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, ); await dir(appPath, [ dir('pkgs', [ @@ -669,7 +669,7 @@ foo:foomain''', args: ['foo'], output: contains('- foo 1.0.0'), workingDirectory: path(appPath), - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, ); }); @@ -682,7 +682,7 @@ foo:foomain''', extras: { 'workspace': ['pkgs/a'], }, - sdk: '^3.7.0', + sdk: '^3.5.0', ), dir('pkgs', [ dir( @@ -708,7 +708,7 @@ foo:foomain''', unmanagedPackageConfig.createSync(recursive: true); unmanagedLockFile.createSync(recursive: true); - await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}); + await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}); expect(strayLockFile.statSync().type, FileSystemEntityType.notFound); expect(strayPackageConfig.statSync().type, FileSystemEntityType.notFound); @@ -724,7 +724,7 @@ foo:foomain''', libPubspec( 'myapp', '1.2.3', - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['pkgs/a', 'pkgs'], }, @@ -754,7 +754,7 @@ Packages can only be included in the workspace once. `.${s}pkgs${s}a${s}pubspec.yaml` is included in the workspace, both from: * `.${s}pkgs${s}pubspec.yaml` and * .${s}pubspec.yaml.''', - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, ); }); @@ -765,14 +765,14 @@ Packages can only be included in the workspace once. libPubspec( 'myapp', '1.2.3', - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['../'], }, ), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains('"workspace" members must be subdirectories'), exitCode: DATA, ); @@ -783,14 +783,14 @@ Packages can only be included in the workspace once. libPubspec( 'myapp', '1.2.3', - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['.'], }, ), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains('"workspace" members must be subdirectories'), exitCode: DATA, ); @@ -802,14 +802,14 @@ Packages can only be included in the workspace once. libPubspec( 'myapp', '1.2.3', - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': [p.join(sandbox, appPath, 'a')], }, ), ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, error: contains('"workspace" members must be relative paths'), exitCode: DATA, ); @@ -824,7 +824,7 @@ Packages can only be included in the workspace once. 'myapp', '1.2.3', deps: {'foo': '^1.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a'], }, @@ -838,11 +838,11 @@ Packages can only be included in the workspace once. ), ]), ]).create(); - await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}); + await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}); server.serve('foo', '1.5.0'); server.serve('bar', '1.5.0'); await pubUpgrade( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' > bar 1.5.0 (was 1.0.0) @@ -862,7 +862,7 @@ Packages can only be included in the workspace once. 'myapp', '1.2.3', deps: {'foo': '^1.0.0', 'bar': '1.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a'], }, @@ -878,12 +878,12 @@ Packages can only be included in the workspace once. ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains('+ foo 1.5.0'), ); await pubUpgrade( args: ['--major-versions'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' Changed 2 constraints in pubspec.yaml: @@ -900,7 +900,7 @@ Changed 1 constraint in a${s}pubspec.yaml: 'myapp', '1.2.3', deps: {'foo': '^2.0.0', 'bar': '^2.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a'], }, @@ -927,7 +927,7 @@ Changed 1 constraint in a${s}pubspec.yaml: 'myapp', '1.2.3', deps: {'foo': '^1.0.0', 'bar': '1.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a'], }, @@ -943,12 +943,12 @@ Changed 1 constraint in a${s}pubspec.yaml: ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains('+ foo 1.5.0'), ); await pubUpgrade( args: ['--major-versions', 'foo'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' Changed 1 constraint in pubspec.yaml: @@ -961,7 +961,7 @@ Changed 1 constraint in a${s}pubspec.yaml: // Second run should mention "any pubspec.yaml". await pubUpgrade( args: ['--major-versions', 'foo'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' No changes to any pubspec.yaml!''', @@ -969,7 +969,7 @@ No changes to any pubspec.yaml!''', ); await pubUpgrade( args: ['--major-versions', 'foo', '--dry-run'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' No changes would be made to any pubspec.yaml!''', @@ -981,7 +981,7 @@ No changes would be made to any pubspec.yaml!''', 'myapp', '1.2.3', deps: {'foo': '^2.0.0', 'bar': '1.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a'], }, @@ -1006,7 +1006,7 @@ No changes would be made to any pubspec.yaml!''', 'myapp', '1.2.3', deps: {'foo': '^1.0.0', 'bar': '^1.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a', 'b'], }, @@ -1030,12 +1030,12 @@ No changes would be made to any pubspec.yaml!''', ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains('+ foo 1.5.0'), ); await pubUpgrade( args: ['--tighten'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' Changed 2 constraints in pubspec.yaml: @@ -1052,7 +1052,7 @@ Changed 1 constraint in a${s}pubspec.yaml: 'myapp', '1.2.3', deps: {'foo': '^1.5.0', 'bar': '^1.5.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a', 'b'], }, @@ -1086,7 +1086,7 @@ Changed 1 constraint in a${s}pubspec.yaml: 'myapp', '1.2.3', deps: {'foo': '^1.0.0', 'bar': '^1.0.0'}, - sdk: '^3.7.0', + sdk: '^3.5.0', extras: { 'workspace': ['a', 'b'], }, @@ -1110,12 +1110,12 @@ Changed 1 constraint in a${s}pubspec.yaml: ]).create(); await pubGet( - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains('+ foo 1.5.0'), ); await pubUpgrade( args: ['--tighten', '--major-versions'], - environment: {'_PUB_TEST_SDK_VERSION': '3.7.0'}, + environment: {'_PUB_TEST_SDK_VERSION': '3.5.0'}, output: contains( ''' Changed 2 constraints in pubspec.yaml: