diff --git a/lib/src/sdk_source.dart b/lib/src/sdk_source.dart
deleted file mode 100644
index c02a172814089fc81805f3a18a74b268246fd5fa..0000000000000000000000000000000000000000
--- a/lib/src/sdk_source.dart
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library sdk_source;
-
-import 'dart:async';
-
-import '../../pkg/pathos/lib/path.dart' as path;
-
-import 'io.dart';
-import 'package.dart';
-import 'pubspec.dart';
-import 'sdk.dart' as sdk;
-import 'source.dart';
-import 'utils.dart';
-import 'version.dart';
-
-/// A package source that uses libraries from the Dart SDK.
-class SdkSource extends Source {
-  final String name = "sdk";
-  final bool shouldCache = false;
-
-  /// SDK packages are not individually versioned. Instead, their version is
-  /// inferred from the revision number of the SDK itself.
-  Future<Pubspec> describe(PackageId id) {
-    return defer(() {
-      var packageDir = _getPackagePath(id);
-      // TODO(rnystrom): What if packageDir is null?
-      var pubspec = new Pubspec.load(id.name, packageDir, systemCache.sources);
-      // Ignore the pubspec's version, and use the SDK's.
-      return new Pubspec(id.name, sdk.version, pubspec.dependencies,
-          pubspec.devDependencies, pubspec.environment);
-    });
-  }
-
-  /// Since all the SDK files are already available locally, installation just
-  /// involves symlinking the SDK library into the packages directory.
-  Future<bool> install(PackageId id, String destPath) {
-    return defer(() {
-      var path = _getPackagePath(id);
-      if (path == null) return false;
-
-      return createPackageSymlink(id.name, path, destPath).then((_) => true);
-    });
-  }
-
-  /// Gets the path in the SDK's "pkg" directory to the directory containing
-  /// package [id]. Returns `null` if the package could not be found.
-  String _getPackagePath(PackageId id) {
-    var pkgPath = path.join(sdk.rootDirectory, "pkg", id.description);
-    return dirExists(pkgPath) ? pkgPath : null;
-  }
-}
diff --git a/lib/src/system_cache.dart b/lib/src/system_cache.dart
index 7670b76f851778569eaf35c32a9abe1114c50678..e93f8f4f56d07c09971f1ae6d15d976321e02d97 100644
--- a/lib/src/system_cache.dart
+++ b/lib/src/system_cache.dart
@@ -17,7 +17,6 @@ import 'log.dart' as log;
 import 'package.dart';
 import 'path_source.dart';
 import 'pubspec.dart';
-import 'sdk_source.dart';
 import 'source.dart';
 import 'source_registry.dart';
 import 'utils.dart';
@@ -26,7 +25,7 @@ import 'version.dart';
 /// The system-wide cache of installed packages.
 ///
 /// This cache contains all packages that are downloaded from the internet.
-/// Packages that are available locally (e.g. from the SDK) don't use this
+/// Packages that are available locally (e.g. path dependencies) don't use this
 /// cache.
 class SystemCache {
   /// The root directory where this package cache is located.
@@ -52,7 +51,6 @@ class SystemCache {
     cache.register(new GitSource());
     cache.register(new HostedSource());
     cache.register(new PathSource());
-    cache.register(new SdkSource());
     cache.sources.setDefault('hosted');
     return cache;
   }
diff --git a/lib/src/validator/dependency.dart b/lib/src/validator/dependency.dart
index de027385ffdf75a6b7afc640cbc63482ecfb91a4..d66059decb364025f86d496207100c42b35a4f31 100644
--- a/lib/src/validator/dependency.dart
+++ b/lib/src/validator/dependency.dart
@@ -34,13 +34,7 @@ class DependencyValidator extends Validator {
         return new Future.immediate(null);
       }
 
-      if (dependency.constraint.isAny &&
-          // TODO(nweiz): once we have development dependencies (issue 5358), we
-          // should warn about unittest. Until then, it's reasonable not to put
-          // a constraint on it.
-          dependency.name != 'unittest') {
-        _warnAboutConstraint(dependency);
-      }
+      if (dependency.constraint.isAny) _warnAboutConstraint(dependency);
 
       return new Future.immediate(null);
     });
diff --git a/test/install/pub_install_test.dart b/test/install/pub_install_test.dart
index b82565a71f6096c6d0d1599936581cb6f77282b2..f01bc8fe7101b3a2264834ac34d6696aa0091e1c 100644
--- a/test/install/pub_install_test.dart
+++ b/test/install/pub_install_test.dart
@@ -67,17 +67,13 @@ main() {
   });
 
   integration('does not add a package if it does not have a "lib" directory', () {
-    // Using an SDK source, but this should be true of all sources.
-    dir(sdkPath, [
-      dir('pkg', [
-        dir('foo', [
-          libPubspec('foo', '0.0.0-not.used')
-        ])
-      ])
+    // Using a path source, but this should be true of all sources.
+    dir('foo', [
+      libPubspec('foo', '0.0.0-not.used')
     ]).scheduleCreate();
 
     dir(appPath, [
-      pubspec({"name": "myapp", "dependencies": {"foo": {"sdk": "foo"}}})
+      pubspec({"name": "myapp", "dependencies": {"foo": {"path": "../foo"}}})
     ]).scheduleCreate();
 
     schedulePub(args: ['install'],
diff --git a/test/install/sdk/check_out_test.dart b/test/install/sdk/check_out_test.dart
deleted file mode 100644
index 8d2521b6e92f9ca252329215f0016f978c63b824..0000000000000000000000000000000000000000
--- a/test/install/sdk/check_out_test.dart
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library pub_tests;
-
-import 'dart:io';
-
-import '../../test_pub.dart';
-
-main() {
-  integration('checks out a package from the SDK', () {
-    dir(sdkPath, [
-      dir('pkg', [
-        dir('foo', [
-          libDir('foo', 'foo 0.1.2+3'),
-          libPubspec('foo', '0.0.0-not.used')
-        ])
-      ])
-    ]).scheduleCreate();
-
-    dir(appPath, [
-      pubspec({"name": "myapp", "dependencies": {"foo": {"sdk": "foo"}}})
-    ]).scheduleCreate();
-
-    schedulePub(args: ['install'],
-        output: new RegExp(r"Dependencies installed!$"));
-
-    packagesDir({"foo": "0.1.2+3"}).scheduleValidate();
-  });
-}
diff --git a/test/install/sdk/check_out_transitive_test.dart b/test/install/sdk/check_out_transitive_test.dart
deleted file mode 100644
index 88454b02f5325897af89b2ea1c9ffc04f8dc7e8b..0000000000000000000000000000000000000000
--- a/test/install/sdk/check_out_transitive_test.dart
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library pub_tests;
-
-import 'dart:io';
-
-import '../../test_pub.dart';
-
-main() {
-  integration('includes transitive dependencies', () {
-    dir(sdkPath, [
-      dir('pkg', [
-        dir('foo', [
-          libDir('foo', 'foo 0.1.2+3'),
-          libPubspec('foo', '0.0.0-not.used', deps: [{'sdk': 'bar'}])
-        ]),
-        dir('bar', [
-          libDir('bar', 'bar 0.1.2+3'),
-          libPubspec('bar', '0.0.0-not.used')
-        ])
-      ])
-    ]).scheduleCreate();
-
-    dir(appPath, [
-      appPubspec([{'sdk': 'foo'}])
-    ]).scheduleCreate();
-
-    schedulePub(args: ['install'],
-        output: new RegExp(r"Dependencies installed!$"));
-
-    packagesDir({
-      'foo': '0.1.2+3',
-      'bar': '0.1.2+3'
-    }).scheduleValidate();
-  });
-}
diff --git a/test/sdk_constraint_test.dart b/test/sdk_constraint_test.dart
index 7032c6112f128d7f4390ea16d95b22451f4e2239..77ea8544e31459cd3da89da9044266a207cbb92b 100644
--- a/test/sdk_constraint_test.dart
+++ b/test/sdk_constraint_test.dart
@@ -44,26 +44,22 @@ main() {
     });
 
     integration("gives an error if some dependencies do not match", () {
-      // Using an SDK source, but this should be true of all sources.
-      dir(sdkPath, [
-        dir("pkg", [
-          dir("foo", [
-            libPubspec("foo", "0.0.1", sdk: ">0.1.3"),
-            libDir("foo")
-          ]),
-          dir("bar", [
-            libPubspec("bar", "0.0.1", sdk: ">0.1.1"),
-            libDir("bar")
-          ])
-        ])
+      // Using a path source, but this should be true of all sources.
+      dir("foo", [
+        libPubspec("foo", "0.0.1", sdk: ">0.1.3"),
+        libDir("foo")
+      ]).scheduleCreate();
+      dir("bar", [
+        libPubspec("bar", "0.0.1", sdk: ">0.1.1"),
+        libDir("bar")
       ]).scheduleCreate();
 
       dir(appPath, [
         pubspec({
           "name": "myapp",
           "dependencies": {
-            "foo": { "sdk": "foo" },
-            "bar": { "sdk": "bar" }
+            "foo": {"path": "../foo"},
+            "bar": {"path": "../bar"}
           },
           "environment": {"sdk": ">2.0.0"}
         })
@@ -82,27 +78,23 @@ main() {
     });
 
     integration("gives an error if a transitive dependency doesn't match", () {
-      // Using an SDK source, but this should be true of all sources.
-      dir(sdkPath, [
-        dir("pkg", [
-          dir("foo", [
-            libPubspec("foo", "0.0.1", deps: [
-              {"sdk": "bar"}
-            ]),
-            libDir("foo")
-          ]),
-          dir("bar", [
-            libPubspec("bar", "0.0.1", sdk: "<0.1.1"),
-            libDir("bar")
-          ])
-        ])
+      // Using a path source, but this should be true of all sources.
+      dir("foo", [
+        libPubspec("foo", "0.0.1", deps: [
+          {"path": "../bar"}
+        ]),
+        libDir("foo")
+      ]).scheduleCreate();
+      dir("bar", [
+        libPubspec("bar", "0.0.1", sdk: "<0.1.1"),
+        libDir("bar")
       ]).scheduleCreate();
 
       dir(appPath, [
         pubspec({
           "name": "myapp",
           "dependencies": {
-            "foo": { "sdk": "foo" }
+            "foo": {"path": "../foo"}
           }
         })
       ]).scheduleCreate();
@@ -119,23 +111,19 @@ main() {
     });
 
     integration("handles a circular dependency on the root package", () {
-      // Using an SDK source, but this should be true of all sources.
-      dir(sdkPath, [
-        dir("pkg", [
-          dir("foo", [
-            libPubspec("foo", "0.0.1", sdk: ">3.0.0", deps: [
-              {"sdk": "myapp"}
-            ]),
-            libDir("foo")
-          ])
-        ])
+      // Using a path source, but this should be true of all sources.
+      dir("foo", [
+        libPubspec("foo", "0.0.1", sdk: ">3.0.0", deps: [
+          {"path": "../myapp"}
+        ]),
+        libDir("foo")
       ]).scheduleCreate();
 
       dir(appPath, [
         pubspec({
           "name": "myapp",
           "dependencies": {
-            "foo": { "sdk": "foo" }
+            "foo": {"path": "../foo"}
           },
           "environment": {"sdk": ">2.0.0"}
         })
diff --git a/test/test_pub.dart b/test/test_pub.dart
index 8c9730d776508a5fac1538333379c8bdd22498e5..bf573fd9d364eb01dad5eef02a78f3e27abd4bbe 100644
--- a/test/test_pub.dart
+++ b/test/test_pub.dart
@@ -33,7 +33,6 @@ import '../../pub/http.dart';
 import '../../pub/io.dart';
 import '../../pub/path_source.dart';
 import '../../pub/safe_http_server.dart';
-import '../../pub/sdk_source.dart';
 import '../../pub/system_cache.dart';
 import '../../pub/utils.dart';
 import '../../pub/validator.dart';
@@ -411,9 +410,6 @@ Future<Map> _dependencyListToMap(List<Map> dependencies) {
       case "path":
         source = new PathSource();
         break;
-      case "sdk":
-        source = new SdkSource();
-        break;
       default:
         throw 'Unknown source "$sourceName"';
       }
diff --git a/test/update/pub_update_test.dart b/test/update/pub_update_test.dart
index c28951ce1422d3a402bfdb2d2ce1ae05cd382aa7..a32b6361b1c2273259ced410acc3ae20b080ed86 100644
--- a/test/update/pub_update_test.dart
+++ b/test/update/pub_update_test.dart
@@ -10,6 +10,7 @@ import '../../../../pkg/unittest/lib/unittest.dart';
 import '../test_pub.dart';
 
 main() {
+  initConfig();
   group('requires', () {
     integration('a pubspec', () {
       dir(appPath, []).scheduleCreate();
@@ -67,17 +68,13 @@ main() {
 
   integration('does not add a package if it does not have a "lib" '
       'directory', () {
-    // Using an SDK source, but this should be true of all sources.
-    dir(sdkPath, [
-      dir('pkg', [
-        dir('foo', [
-          libPubspec('foo', '0.0.0-not.used')
-        ])
-      ])
+    // Using a path source, but this should be true of all sources.
+    dir('foo', [
+      libPubspec('foo', '0.0.0-not.used')
     ]).scheduleCreate();
 
     dir(appPath, [
-      pubspec({"name": "myapp", "dependencies": {"foo": {"sdk": "foo"}}})
+      pubspec({"name": "myapp", "dependencies": {"foo": {"path": "../foo"}}})
     ]).scheduleCreate();
 
     schedulePub(args: ['update'],
diff --git a/test/validator_test.dart b/test/validator_test.dart
index c4396332261b5e4e6daf7475690597221a26c948..2c3694583f78a36f6f334b52794faf0c6280e497 100644
--- a/test/validator_test.dart
+++ b/test/validator_test.dart
@@ -161,15 +161,6 @@ main() {
       expectNoValidationError(lib);
     });
 
-    integration('has an unconstrained dependency on "unittest"', () {
-      dir(appPath, [
-        libPubspec("test_pkg", "1.0.0", deps: [
-          {'hosted': 'unittest'}
-        ])
-      ]).scheduleCreate();
-      expectNoValidationError(dependency);
-    });
-
     integration('has a nested directory named "tools"', () {
       dir(appPath, [
         dir("foo", [dir("tools")])
diff --git a/test/version_solver_test.dart b/test/version_solver_test.dart
index 17997564aa6d8f156b705b0a8e036118ebe340cb..bdec057bc2af7bf4d69b6ae5e6025fb6c90ee5ae 100644
--- a/test/version_solver_test.dart
+++ b/test/version_solver_test.dart
@@ -69,7 +69,6 @@ Matcher sourceMismatch(String package1, String package2) {
 
 MockSource source1;
 MockSource source2;
-Source versionlessSource;
 
 main() {
   initConfig();
@@ -151,30 +150,6 @@ main() {
     'bang': '1.0.0'
   });
 
-  testResolve('from versionless source', {
-    'myapp 0.0.0': {
-      'foo from versionless': 'any'
-    },
-    'foo 1.2.3 from versionless': {}
-  }, result: {
-    'myapp from root': '0.0.0',
-    'foo from versionless': '1.2.3'
-  });
-
-  testResolve('transitively through versionless source', {
-    'myapp 0.0.0': {
-      'foo from versionless': 'any'
-    },
-    'foo 1.2.3 from versionless': {
-      'bar': '>=1.0.0'
-    },
-    'bar 1.1.0': {}
-  }, result: {
-    'myapp from root': '0.0.0',
-    'foo from versionless': '1.2.3',
-    'bar': '1.1.0'
-  });
-
   testResolve('with compatible locked dependency', {
     'myapp 0.0.0': {
       'foo': 'any'
@@ -426,10 +401,8 @@ testResolve(description, packages, {lockfile, result, Matcher error}) {
     var cache = new SystemCache('.');
     source1 = new MockSource('mock1');
     source2 = new MockSource('mock2');
-    versionlessSource = new MockVersionlessSource();
     cache.register(source1);
     cache.register(source2);
-    cache.register(versionlessSource);
     cache.sources.setDefault(source1.name);
 
     // Build the test package graph.
@@ -553,30 +526,6 @@ class MockSource extends Source {
   }
 }
 
-/// A source used for testing that doesn't natively understand versioning,
-/// similar to how the Git and SDK sources work.
-class MockVersionlessSource extends Source {
-  final Map<String, Package> _packages;
-
-  final String name = 'versionless';
-  final bool shouldCache = false;
-
-  MockVersionlessSource()
-    : _packages = <String, Package>{};
-
-  Future<bool> install(PackageId id, String path) {
-    throw 'no';
-  }
-
-  Future<Pubspec> describe(PackageId id) {
-    return new Future<Pubspec>.immediate(_packages[id.description].pubspec);
-  }
-
-  void addPackage(Package package) {
-    _packages[package.name] = package;
-  }
-}
-
 void parseSource(String description,
     callback(bool isDev, String name, Source source)) {
   var isDev = false;
@@ -592,8 +541,7 @@ void parseSource(String description,
   var sourceNames = {
     'mock1': source1,
     'mock2': source2,
-    'root': null,
-    'versionless': versionlessSource
+    'root': null
   };
 
   var match = new RegExp(r"(.*) from (.*)").firstMatch(description);