Source compatibility suite Swift versions?

Good morning/evening/*, folks!

I've made a contribution to the Swift Source Compatibility Suite this morning and I'm wondering how/when the Swift versions that are referenced in the pre-commit check get updated (or if it even matters that they aren't).

I can see that there are some releases, such as Swift 4.2.1, that have been updated for point releases, yet none of the 5.1.x updates have been added.

Swift 5.1 also refers to the version that shipped with Xcode 11.0 beta 6.

Is this just a lack of time/resources and something the community could help keep up-to-date, or is there a deeper reasoning behind this?

/cc @clackary

Thanks for contributing to the Source Compat Suite!

Is this just a lack of time/resources and something the community could help keep up-to-date, or is there a deeper reasoning behind this?

It's a little of both. It is something definitely something that the community could help keep up-to-date. The versions I think you're referring to are part of project_precommit_check, which had strict requirements to ensure the versions matched. We've relaxed this requirement to relieve the maintenance burden of keeping that version updated for every Xcode and Xcode beta release, and making it a bit more forgiving when running project_precommit_check.

1 Like

Awesome, thanks for the info @clackary!

So is it still relevant to run this script before submitting a PR?

Yes, still a good idea to run it. The idea is that if it passes the precommit check, we know we have a passing baseline. Before it was required to use the latest version or else the check would fail early without even trying to build the project. If it builds for the version we included in Xcode beta 1, it should also build with the version included in Xcode beta 2, and that’s good enough.

I’ve also caught simple things like syntax errors in the projects.json entries, so it’s still a valid check.