Skip to content

Conversation

@kevints
Copy link
Contributor

@kevints kevints commented Sep 25, 2019

Motivation:

From https://developer.apple.com/documentation/swift_packages/product

Executable
Use an executable product to vend an executable target.
Use this only if you want to make the executable available to clients.

Several executable products are not meant to be made available to
clients, but rather exist for internal integration or performance tests.
Further, most of these products are not namespaced and have generic names.
The code-generator product, protoc-gen-grpc-swift, appears to be the
only executable intended for export and it is already appropriately
namespaced.

Modifications:

Unexport the executable products that are not intended for use by clients.
Change the Makefile to reference the executable targets rather than their
derived products.

Result:

Fewer potential namespace conflicts. This fixed #591.

Motivation:

From https://developer.apple.com/documentation/swift_packages/product

> Executable
> Use an executable product to vend an executable target.
> Use this only if you want to make the executable available to clients.

Several executable products are not meant to be made available to
clients, but rather exist for internal integration or performance tests.
Further, most of these products are not namespaced and have generic names.
The code-generator product, `protoc-gen-grpc-swift`, appears to be the
only executable intended for export and it is already appropriately
namespaced.

Modifications:

Unexport the executable products that are not intended for use by clients.
Change the `Makefile` to reference the executable targets rather than their
derived products.

Result:

Fewer potential namespace conflicts. This fixed grpc#591.
Copy link
Collaborator

@glbrntt glbrntt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @kevints!

@glbrntt glbrntt merged commit 60205ad into grpc:nio Sep 26, 2019
glbrntt added a commit to glbrntt/grpc-swift that referenced this pull request Sep 26, 2019
Motivation:

60205ad (grpc#592) cleared up the product namespace by removing executables
which were not meant to be exposed to clients. However the post-merge CI
failed (i.e. interop tests) because the executable targets no longer
exist. This was missed because the CI for the PR was still able to build
the targets and because the products had different names to the targets.

Modifications:

Use 'swift run' in the CI script used after merging PRs.

Result:

Interop tests should be runnable when a PR is merged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants