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

Reply via email to