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

[CI] Add Swift 6 language mode workflow #2812

Merged
merged 1 commit into from
Jul 26, 2024
Merged

[CI] Add Swift 6 language mode workflow #2812

merged 1 commit into from
Jul 26, 2024

Conversation

FranzBusch
Copy link
Member

Motivation

We want to check how our packages perform in Swift 6 language mode.

Modification

This PR adds a new reusable workflow that sets the tools version to Swift 6 and then builds with warnings as errors enabled.

Additionally, I did a bit of cleanup for the workflow names to hopefully make them look nice in every GH Action UI.

Result

We now get a feeling for our Swift 6 language mode compatibility.

@FranzBusch
Copy link
Member Author

FranzBusch commented Jul 26, 2024

Turns out we are not warnings and errors clean in Swift 6 mode 🙃

@Lukasa
Copy link
Contributor

Lukasa commented Jul 26, 2024

I'm not even slightly surprised.

@FranzBusch FranzBusch enabled auto-merge (squash) July 26, 2024 09:01
@FranzBusch
Copy link
Member Author

@Lukasa I think we gotta live with this naming for now on the checks. If you could be so kind and update the branch protection rules hopefully one last time

@Lukasa
Copy link
Contributor

Lukasa commented Jul 26, 2024

Have you deliberately not added the repeated name to the integration tests @FranzBusch?

@FranzBusch
Copy link
Member Author

Have you deliberately not added the repeated name to the integration tests @FranzBusch?

Yeah. That's the only way to make this work sadly. Since the other workflows are reusable workflows and the integration tests are just a job of our PR workflow

@Lukasa
Copy link
Contributor

Lukasa commented Jul 26, 2024

Why aren't the integration tests reusable? We do have them in other NIO repos.

@FranzBusch
Copy link
Member Author

Why aren't the integration tests reusable? We do have them in other NIO repos.

Yes more repos have a script that executes the integration tests but those are not "standard" commands like swift test. So every repo has to configure its own matrix reusable workflow to call the appropriate script. I see little value in adding a reusable workflow that just calls ./scripts/run-integration-tests.sh. Furthermore, it is totally fine and expected that each repo has their own jobs. For example, the OpenAPI repo has a job to build all of their example packages.

Now coming back to the problem at hand here. The naming that GH is displaying for actions is just different in the different UIs.

  • On the PR: root workflow name / root job name / reusable workflow job name / unit tests job name / matrix job name
  • In other UI: root job name then a drop down matrix job name

# Motivation

We want to check how our packages perform in Swift 6 language mode.

# Modification

This PR adds a new reusable workflow that sets the tools version to Swift 6 and then builds with warnings as errors enabled.

Additionally, I did a bit of cleanup for the workflow names to hopefully make them look nice in every GH Action UI.

# Result

We now get a feeling for our Swift 6 language mode compatibility.
@Lukasa
Copy link
Contributor

Lukasa commented Jul 26, 2024

Ok great, branch changes made.

@FranzBusch
Copy link
Member Author

@Lukasa Thanks. Feel free to approve then

@Lukasa Lukasa added the semver/none No version bump required. label Jul 26, 2024
@FranzBusch FranzBusch merged commit b6a6e43 into main Jul 26, 2024
27 of 28 checks passed
@FranzBusch FranzBusch deleted the fb-gha-swift-6 branch July 26, 2024 12:14
cgrindel-self-hosted-renovate bot added a commit to cgrindel/rules_swift_package_manager that referenced this pull request Aug 19, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [apple/swift-nio](https://github.com/apple/swift-nio) | minor |
`2.68.0` -> `2.70.0` |

---

### Release Notes

<details>
<summary>apple/swift-nio (apple/swift-nio)</summary>

###
[`v2.70.0`](https://github.com/apple/swift-nio/releases/tag/2.70.0):
SwiftNIO 2.70.0

[Compare
Source](https://github.com/apple/swift-nio/compare/2.69.0...2.70.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### SemVer Minor

- `FileSystem.copyItem` can parallelise directory copy by
[@&#8203;UncleMattHope](https://github.com/UncleMattHope) in
[apple/swift-nio#2806
- `ChannelOption`: Allow types to be accessed with leading dot syntax by
[@&#8203;ayush1794](https://github.com/ayush1794) in
[apple/swift-nio#2816
- Make `EventLoopPromise` conform to Equatable by
[@&#8203;gjcairo](https://github.com/gjcairo) in
[apple/swift-nio#2714
- Provide a default `CopyStrategy` overload for copyItem. by
[@&#8203;UncleMattHope](https://github.com/UncleMattHope) in
[apple/swift-nio#2818

##### SemVer Patch

- Better align shutdown semantics of testing event loops by
[@&#8203;simonjbeaumont](https://github.com/simonjbeaumont) in
[apple/swift-nio#2800
- Clone files on Darwin rather than copying them by
[@&#8203;rnro](https://github.com/rnro) in
[apple/swift-nio#2823

##### Other Changes

- Fix compose file used in update-benchmark-thresholds script by
[@&#8203;simonjbeaumont](https://github.com/simonjbeaumont) in
[apple/swift-nio#2808
- Remove advice to generate linux tests. by
[@&#8203;PeterAdams-A](https://github.com/PeterAdams-A) in
[apple/swift-nio#2807
- Make `testInstantTCPConnectionResetThrowsError` more reliable by
[@&#8203;hamzahrmalik](https://github.com/hamzahrmalik) in
[apple/swift-nio#2810
- \[CI] Add `shellcheck` and fix up warnings by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2809
- \[CI] Fix docs check by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2811
- \[CI] Add Swift 6 language mode workflow by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2812
- Fix test compilation on non-macOS Darwin platforms by
[@&#8203;simonjbeaumont](https://github.com/simonjbeaumont) in
[apple/swift-nio#2817
- Add `.index-build` to `.gitignore` by
[@&#8203;MaxDesiatov](https://github.com/MaxDesiatov) in
[apple/swift-nio#2819
- \[CI] Add action and workflow to check for semver label by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2814
- Update repository docs for swift-version support and recent CI check
changes by [@&#8203;UncleMattHope](https://github.com/UncleMattHope)
in
[apple/swift-nio#2815
- Fix failing build for test by
[@&#8203;ayush1794](https://github.com/ayush1794) in
[apple/swift-nio#2824
- Fix typo in comment in `WebSocketErrorCodes.swift` by
[@&#8203;valeriyvan](https://github.com/valeriyvan) in
[apple/swift-nio#2604
- \[CI] Add a scheduled workflow for tests and benchmarks by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2822
- \[CI] Fix label check by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2827

#### New Contributors

- [@&#8203;UncleMattHope](https://github.com/UncleMattHope) made their
first contribution in
[apple/swift-nio#2806
- [@&#8203;ayush1794](https://github.com/ayush1794) made their first
contribution in
[apple/swift-nio#2816
- [@&#8203;valeriyvan](https://github.com/valeriyvan) made their first
contribution in
[apple/swift-nio#2604

**Full Changelog**:
apple/swift-nio@2.69.0...2.70.0

###
[`v2.69.0`](https://github.com/apple/swift-nio/releases/tag/2.69.0):
SwiftNIO 2.69.0

[Compare
Source](https://github.com/apple/swift-nio/compare/2.68.0...2.69.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### SemVer Minor

- Add manual control to `NIOLockedValueBox` by
[@&#8203;glbrntt](https://github.com/glbrntt) in
[apple/swift-nio#2786
- ChannelHandler: provide static `(un)wrap(In|Out)bound(In|Out)` by
[@&#8203;weissi](https://github.com/weissi) in
[apple/swift-nio#2791

##### SemVer Patch

- Pre-box some errors to reduce allocations by
[@&#8203;glbrntt](https://github.com/glbrntt) in
[apple/swift-nio#2765
- Allow in-place mutation of `NIOLoopBoundBox.value` by
[@&#8203;dnadoba](https://github.com/dnadoba) in
[apple/swift-nio#2771
- Avoid creating a yield ID counter per async writer by
[@&#8203;glbrntt](https://github.com/glbrntt) in
[apple/swift-nio#2768
- Combine the two `NIOAsyncChannel` channel handlers by
[@&#8203;glbrntt](https://github.com/glbrntt) in
[apple/swift-nio#2779
- Use the new Android overlay and Bionic module from Swift 6 by
[@&#8203;finagolfin](https://github.com/finagolfin) in
[apple/swift-nio#2784
- Change `unsafeDownCast` to `as!` by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2802

##### Other Changes

- CI migration to GitHub Action by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
([apple/swift-nio#2760
[apple/swift-nio#2762
[apple/swift-nio#2763
[apple/swift-nio#2764
[apple/swift-nio#2767
[apple/swift-nio#2766
[apple/swift-nio#2776
[apple/swift-nio#2780
[apple/swift-nio#2785
[apple/swift-nio#2781
[apple/swift-nio#2787
[apple/swift-nio#2783
[apple/swift-nio#2789
[apple/swift-nio#2790)
- Ignore format commit from git blame by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2796
[apple/swift-nio#2797
[apple/swift-nio#2801
[apple/swift-nio#2803
- Adopt swift-format by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[apple/swift-nio#2794
- `HTTPPart` Documentation Clarification by
[@&#8203;dimitribouniol](https://github.com/dimitribouniol) in
[apple/swift-nio#2775
- Add benchmark for creating `NIOAsyncChannel` by
[@&#8203;glbrntt](https://github.com/glbrntt) in
[apple/swift-nio#2774
- Disable warnings as errors on Swift 6 and main by
[@&#8203;glbrntt](https://github.com/glbrntt) in
[apple/swift-nio#2793

**Full Changelog**:
apple/swift-nio@2.68.0...2.69.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xOC4xIiwidXBkYXRlZEluVmVyIjoiMzguMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: cgrindel-self-hosted-renovate[bot] <139595543+cgrindel-self-hosted-renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver/none No version bump required.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants