I think that the ability to fetch a branch or a commit may be interesting (basically anything that git understands), would be nice, but with the caveat that for production use it is far better to use à fixed version (i.e. a tag). We do not want that most packages are used by specifying the master branch.
Guillaume DIDIER — ÉCOLE POLYTECHNIQUE 91128 PALAISEAU CEDEX [email protected] <mailto:[email protected]?subject=> www.polytechnique.edu <http://www.polytechnique.edu/> — PS : I am new here, do not hesitate to correct me. > Le 6 sept. 2016 à 15:41, Said Sikira via swift-evolution > <[email protected]> a écrit : > > Hi, > > Our code is almost always developed and pushed in small incremental changes. > When we implement critical amount of changes in our code, we push new version. > > When adding dependencies to Package.swift file, we supply their repository > url and version we want to use. However, differentiating code only by it’s > version is not enough in some cases. When writing new code features, we use > branches. They enable all the mechanisms one needs to create, test and deploy > new features without polluting production environment. > > I think that Swift Package Manager should have support for branches (and > commits). There are several reasons why this feature would greatly improve > developer workflow: > > Writing new features. Being able to specify branch in Package.swift would > make creating and testing new features easier. You wouldn’t need to push new > version to be able to use it in your Swift program. You would just specify > the branch you’re working on. > Differentiating between new Swift versions. This problem comes from the > current Swift 2.2 -> Swift 3.0 migration. Many framework developers use > specific branches (swift–3, swift3.0) to work on migration of their API’s to > Swift 3. However, you can’t use them in your Swift projects because they > don’t live in the master branch in the repository. I’m sure this will also > happen when Swift 3 starts migration to the Swift 4, until ABI becomes stable. > SPM should also have support for specifying commits. Specifying which commit > you want to use in your project dependency is not always a good idea, but > it’s necessary in some cases. > > This shouldn’t be very hard to implement. We would need to update > PackageDescription and Get source from swift-package-manager repository to > enable specifying branches or commits. Pulling the branch source would just > be another parameter in git instruction. > > Example: > > // Specifying branch > let package = Package( > name: "SomePackage", > dependencies: [ > .Package(url: "https://repo-source.git <https://repo-source.git/>", > branch: "new-feature") > ] > ) > // Specifying commits > let package = Package( > name: "SomePackage", > dependencies: [ > .Package(url: "https://repo-source.git <https://repo-source.git/>", > commit: "c336664020v4f94ed78cbe7447a39ae5ca0b6c11") > ] > ) > What are your thoughts on this subject? > > _______________________________________________ > swift-evolution mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
