I am planning to refactor the runtime targets from the package model to increase maintainability and extensibility of the different manifest versions that SwiftPM supports. It makes sense to remove the version 3 of PackageDescription API before starting work on the refactor. This is a master change only, the swift-4.2-branch will contain the older version of the PackageDescription API. Once the older API is removed, you will not be able to build a package that is using the older manifest API with trunk snapshots. Updating the manifest to Swift 4 should be simple for most packages; you can read this blog post to see the summary of the changes between v3 and v4.
Note that moving to a newer manifest API does not mean that you also need to update your source code. You can select any supported Swift language version in the manifest file.
Edit: Add rationale
The Swift compiler is removing Swift 3 language compatibility mode from Swift 5. SwiftPM's manifest API v3 relies on the compatibility mode for parsing the manifest file. While it is technically possible to parse the v3 manifests with a different language mode, it will not always work and can easily break the package graph. The manifest version is also used to determine the -swift-version for package's source, if swiftLanguageVersion is not declared in the manifest. This means, packages which are still Swift 3 manifest are likely to fail to build with Swift 5 tools. Manifest API v3 has a lot of magic behavior that was revised in SwiftPM with SE-0158. SwiftPM has evolved a lot in terms of API and behavior with that proposal. Migrating packages from v3 to v4 behavior should be trivial for most packages using the APIs provided in manifest v4 API and should not require changes in the disk layout.