SwiftPM - More layout options for sources/tests folders


(bhargav gurlanka) #1

Hi swift community,

The current SwiftPM supports very limited set of source directory layouts.

Below are some of the layouts, along with their current SwiftPM support,
that I think should be supported.

layout-1
├── Package.swift
└── Sources
    └── ModuleA
        ├── Bar.swift
        ├── Foo.swift
        └── Tests
            └── ModuleATests.swift

*Current Status:* Building - Tests Failing

layout-2
├── Foo.swift
├── Package.swift
└── Tests
    └── FooTests.swift

*Current Status: *Building - Tests Failing

layout-3
├── Package.swift
├── Sources
│ ├── Foo.swift
│ └── ModuleA
│ ├── Bar.swift
│ └── Tests
│ └── BarTests.swift
└── Tests
    └── FooTests.swift

*Current Status: *Build Failing - Invalid Layout

layout-4
├── Package.swift
├── Sources
│ ├── Foo.swift
│ ├── ModuleA
│ │ └── Bar.swift
│ └── Tests
│ └── FooTests.swift
└── Tests
    └── ModuleA
        └── BarTests.swift

*Current Status: *Build Failing - Invalid Layout

Comments / thoughts?

···

--
Bhargav Gurlanka


(David Owens II) #2

Source layout shouldn't matter at all. I *think* the eventual plan is for SwiftPM to allow you to specify source locations, though not 100%.

This issue is one of the big ones for why Drew and I wrote our own build tool (based on llbuild).

-David

···

On Mar 3, 2016, at 9:10 AM, bhargav gurlanka via swift-build-dev <swift-build-dev@swift.org> wrote:

Hi swift community,

The current SwiftPM supports very limited set of source directory layouts.

Below are some of the layouts, along with their current SwiftPM support, that I think should be supported.

layout-1
├── Package.swift
└── Sources
    └── ModuleA
        ├── Bar.swift
        ├── Foo.swift
        └── Tests
            └── ModuleATests.swift
Current Status: Building - Tests Failing

layout-2
├── Foo.swift
├── Package.swift
└── Tests
    └── FooTests.swift
Current Status: Building - Tests Failing

layout-3
├── Package.swift
├── Sources
│ ├── Foo.swift
│ └── ModuleA
│ ├── Bar.swift
│ └── Tests
│ └── BarTests.swift
└── Tests
    └── FooTests.swift
Current Status: Build Failing - Invalid Layout

layout-4
├── Package.swift
├── Sources
│ ├── Foo.swift
│ ├── ModuleA
│ │ └── Bar.swift
│ └── Tests
│ └── FooTests.swift
└── Tests
    └── ModuleA
        └── BarTests.swift
Current Status: Build Failing - Invalid Layout

Comments / thoughts?

--
Bhargav Gurlanka
_______________________________________________
swift-build-dev mailing list
swift-build-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-build-dev


(Max Howell) #3

I actually have reversed my opinion on this and have a proposal in the works called “No More Magic” which is the best of both worlds (IMO), ie. the benefits of convention based layouts with the power of configuration.

···

On Mar 3, 2016, at 9:51 AM, David Owens II via swift-build-dev <swift-build-dev@swift.org> wrote:

Source layout shouldn't matter at all. I *think* the eventual plan is for SwiftPM to allow you to specify source locations, though not 100%.

This issue is one of the big ones for why Drew and I wrote our own build tool (based on llbuild).

-David

On Mar 3, 2016, at 9:10 AM, bhargav gurlanka via swift-build-dev <swift-build-dev@swift.org <mailto:swift-build-dev@swift.org>> wrote:

Hi swift community,

The current SwiftPM supports very limited set of source directory layouts.

Below are some of the layouts, along with their current SwiftPM support, that I think should be supported.

layout-1
├── Package.swift
└── Sources
    └── ModuleA
        ├── Bar.swift
        ├── Foo.swift
        └── Tests
            └── ModuleATests.swift
Current Status: Building - Tests Failing

layout-2
├── Foo.swift
├── Package.swift
└── Tests
    └── FooTests.swift
Current Status: Building - Tests Failing

layout-3
├── Package.swift
├── Sources
│ ├── Foo.swift
│ └── ModuleA
│ ├── Bar.swift
│ └── Tests
│ └── BarTests.swift
└── Tests
    └── FooTests.swift
Current Status: Build Failing - Invalid Layout

layout-4
├── Package.swift
├── Sources
│ ├── Foo.swift
│ ├── ModuleA
│ │ └── Bar.swift
│ └── Tests
│ └── FooTests.swift
└── Tests
    └── ModuleA
        └── BarTests.swift
Current Status: Build Failing - Invalid Layout

Comments / thoughts?

--
Bhargav Gurlanka
_______________________________________________
swift-build-dev mailing list
swift-build-dev@swift.org <mailto:swift-build-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-build-dev

_______________________________________________
swift-build-dev mailing list
swift-build-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-build-dev