SE-0238: Package Manager Target Specific Build Settings

I was briefly discussing unsafe-flags-in-dependencies with @NeoNacho and we're tending towards allowing unsafe flags in local and branch-based dependencies without any global switch. This might be a good approach for these reasons:

  1. The intent of unsafe escape hatch is to enable experimentation and development which aligns with the goals of branch-based dependencies.
  2. It will enable people to control the list of dependencies that can vend unsafe flags without having to specify a list as an additional option.
  3. It lets people bypass SwiftPM's limitation and let them do their work in a way that they can't break the package graph (win-win).
  4. This can be used as a staging ground for adding more "safe" APIs in the build settings model.

We also agreed that the unsafe-flags-in-dependencies functionality can be discussed separately and should not block the rest of the proposal. I should also point out that implementation of this functionality is blocked on SE-0226 because of technical reasons.

2 Likes