What is your evaluation of the proposal?
I might have missed the reasoning behind this proposal, but I feel this functionality is already provided by the products section in package manifests.
Currently supported:
let package = Package(
name: "Foo",
platforms: [
.macOS(.v10_13)
],
products: [
.executable(name: "foo", targets: ["Foo"])
],
dependencies: [],
targets: [
.target(name: "Foo", dependencies: []),
]
Proposal:
let package = Package(
name: "Foo",
platforms: [
.macOS(.v10_13)
],
products: [
.executable(name: "foo", targets: ["Foo"])
],
dependencies: [],
targets: [
. executableTarget(name: "Foo", dependencies: []),
]
What would be the benefit of using executableTarget instead of target above?
Is the problem being addressed significant enough to warrant a change to Swift?
I'm not sure, I'm leaning towards no. The proposal itself indicates this is an interim/temporary solution, since the overall goal is to merge "products" and "targets" into one list. However, the proposal does not clarify if explicitly declaring "products" solves the issue.
Does this proposal fit well with the feel and direction of Swift?
Yes
If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
I'm not familiar with other package manifests that allow defining executables.
How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
Quick reading