> On Nov 12, 2016, at 1:02 PM, Daniel Dunbar via swift-build-dev 
> <swift-build-...@swift.org> wrote:
> 
> Hi all,
> 
> I'm reposting a request for feedback on my proposal for extending SwiftPM to 
> support multiple packages inside one repository (i.e. "monorepo" support, 
> although it is a misnomer in this use case).
>  
> https://github.com/ddunbar/swift-evolution/blob/multi-package-repos/proposals/NNNN-swiftpm-multi-package-repos.md
> 
> I would like to move this proposal forward so we can start on an 
> implementation, even if we need to refine it over time, but I was hoping to 
> get at least some concrete feedback first.
> 
> Thanks,
> - Daniel


It seems like you’re going through contortions to deal with arbitrary directory 
layouts and some odd consequences fall out of that decision. Not being able to 
deterministically detect non-unique sub-packages is one. 

Why not just require a top-level Package.swift that explicitly specifies the 
sub-packages? The name for the sub-package should be in the main package 
manifest. You’d gain the ability to import all the sub-packages in one go; 
importing the root package without any sub-packages specified automatically 
imports all sub-packages. This also allows library authors to organize a 
library into sub-packages later without breakage. Come up with a convention, 
e.g. a sub-package is in “/subpackageName” but allow overriding that default. 
That allows reorganization if needed but the convention should work for most 
libraries.

A top-level Package.swift would also allow immediate detection of non-unique 
sub-packages, etc. Also if you are using things like git submodules, subtree, 
or some other mechanism that ends up putting package files in your source tree 
you don’t automatically re-export that package unless you take explicit action.


I like the idea in general.


Russ
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to