Has there been any discussion on allowing direct specification of commits or branches for the Swift Package Manager on the list? Currently it only supports semantic versioning tags, which makes for a tricky development process for developers adding Swift 3 support to their packages.
For example, consider a Swift 2.2 library that is tagged with 0.2.0. If developer wants to support Swift 3, they have to either add Swift 3 support with #if swift directives which is difficult due to the large number of source changes in Swift 3 and then tag an maintain the new version in the normal way, or maintain a separate Swift 3 branch. Maintaining a separate branch is tricky because in order to use Swift PM you have to tag commits on the new branch. Would this new branch be tagged 0.3.0? What if there needs to be a new release under Swift 2.2? It’s also unfortunate because the developer has no way of letting other developers use the package without creating a release tag.
This difficultly would me drastically mitigated if Swift PM allowed the tracking of the latest commit on a branch, or the ability to specify a particular commit as a version.