Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make ExistentialAny feature enablement unconditional #119

Closed
czechboy0 opened this issue Jul 17, 2023 · 10 comments
Closed

Make ExistentialAny feature enablement unconditional #119

czechboy0 opened this issue Jul 17, 2023 · 10 comments
Labels
kind/administration CI, repo automation, other admin tasks. size/S Small task. (A couple of hours of work.) status/blocked Waiting for another issue.
Milestone

Comments

@czechboy0
Copy link
Contributor

Enable the ExistentialAny feature on all the repos.

The work was already done in PRs like #99, however we found that on Swift 5.8 toolchains there's an issue where the enable flag seems to propagate to dependees, so we will first disable the enforcement, until we require 5.9: #75.

@czechboy0 czechboy0 added size/S Small task. (A couple of hours of work.) status/blocked Waiting for another issue. labels Jul 17, 2023
@czechboy0
Copy link
Contributor Author

The scope of this work is to add the requirement to Package.swift on all the 4 repos: runtime, generator, urlsession transport and ahc transport.

@czechboy0
Copy link
Contributor Author

More details on the issue: apple/swift-openapi-runtime#26

And in apple/swift-openapi-runtime#25 (comment)

@czechboy0
Copy link
Contributor Author

We only disabled it on 5.8, but kept it enabled on 5.9.

So this issue tracks removing the conditional logic once we require 5.9, and have it enabled unconditionally.

@simonjbeaumont
Copy link
Collaborator

Do we feel this issue has any residual value since we have CI for >= 5.9 which tests that we are using existential any in the whole codebase.

The only place we're not currently testing would be if we had code in an #if swift(<5.9) or similar, which we don't have.

Given we have #75, at some point we won't be using 5.8 at all, so I think this issue can probably be closed

@czechboy0
Copy link
Contributor Author

Let me rename it, I meant to have it track the cleanup of the conditional logic, and block it on 5.9 adoption. We have a few more tasks like this, blocked on 5.9 adoption.

@czechboy0 czechboy0 changed the title Enable the ExistentialAny feature on all the repos Make ExistentialAny feature enablement unconditional Jul 17, 2023
@simonjbeaumont
Copy link
Collaborator

OK, I thought that's what you wanted this issue to be for. I just thought we could just roll this into a task when we make 5.9 the minimum version.

@czechboy0
Copy link
Contributor Author

Sure, we can change the process, just previously, e.g. in #40, we left each issue separate, and linked them by mentioning + state/blocked. But I'm open to other ideas.

@MahdiBM
Copy link
Contributor

MahdiBM commented Jul 17, 2023

however we found that on Swift 5.8 toolchains there's an issue where the enable flag seems to propagate to dependencies

For me personally, this doesn't cause any problems as long as the code itself is existential-any-compatible, which it is, but i'm curious to know what is the issue if it's filed anywhere 🤔

@czechboy0
Copy link
Contributor Author

however we found that on Swift 5.8 toolchains there's an issue where the enable flag seems to propagate to dependencies

For me personally, this doesn't cause any problems as long as the code itself is existential-any-compatible, which it is, but i'm curious to know what is the issue if it's filed anywhere 🤔

Well, it seems to have been fixed in 5.9 between 04-26 and 04-27, unfortunately it still seems to cause issues in 5.8, which is why we only enable it on 5.9.

@czechboy0 czechboy0 added this to the Post-1.0 milestone Aug 25, 2023
@czechboy0 czechboy0 added the kind/administration CI, repo automation, other admin tasks. label Aug 30, 2023
@czechboy0 czechboy0 modified the milestones: Post-1.0, 1.0 Oct 27, 2023
czechboy0 added a commit to apple/swift-openapi-runtime that referenced this issue Nov 27, 2023
### Motivation

Part of addressing
apple/swift-openapi-generator#75 and
apple/swift-openapi-generator#119.

### Modifications

Bumped Swift tools version to 5.9 and made the `ExistentialAny` build
setting unconditional.

### Result

Building the package requires 5.9 now.

### Test Plan

Ran tests, all passed when using a Swift 5.9 toolchain.
czechboy0 added a commit to apple/swift-openapi-urlsession that referenced this issue Nov 27, 2023
### Motivation

Part of addressing
apple/swift-openapi-generator#75 and
apple/swift-openapi-generator#119.

### Modifications

Bumped Swift tools version to 5.9 and made the `ExistentialAny` build
setting unconditional.

### Result

Building the package requires 5.9 now.

### Test Plan

Ran tests, all passed when using a Swift 5.9 toolchain.
czechboy0 added a commit to swift-server/swift-openapi-async-http-client that referenced this issue Nov 27, 2023
### Motivation

Part of addressing
apple/swift-openapi-generator#75 and
apple/swift-openapi-generator#119.

### Modifications

Bumped Swift tools version to 5.9 and made the `ExistentialAny` build
setting unconditional.

### Result

Building the package requires 5.9 now.

### Test Plan

Ran tests, all passed when using a Swift 5.9 toolchain.
czechboy0 added a commit that referenced this issue Nov 27, 2023
### Motivation

Part of addressing
#75 and
#119.

### Modifications

Bumped Swift tools version to 5.9 and made the `ExistentialAny` build
setting unconditional.

### Result

Building the package requires 5.9 now.

### Test Plan

Ran tests, all passed when using a Swift 5.9 toolchain.
@czechboy0
Copy link
Contributor Author

Landed in main, will be released in 1.0.0-alpha.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/administration CI, repo automation, other admin tasks. size/S Small task. (A couple of hours of work.) status/blocked Waiting for another issue.
Projects
None yet
Development

No branches or pull requests

3 participants