Announcing Swift 4.2.2 and monthly Swift 4.2.x dot releases for Linux

Announcing Swift 4.2.2 and monthly Swift 4.2.x dot releases for Linux

We are very happy to announce the release of Swift 4.2.2 containing bug fixes for Linux. Much more excitingly, from now on we will be releasing monthly Swift 4.2.x dot versions for Linux over the next few months. That means you can expect Swift 4.2.3 by the end of February 2019, 4.2.4 by the end of March 2019 and so on. Needless to say we will continue to ship security updates out of line if need be.

The focus of these releases are fixes for swift-corelibs-foundation and swift-corelibs-xctest that get backported from the master branches. Focusing the releases on corelibs-foundation and corelibs-xctest will have the biggest impact for developers using Swift on Linux in production. These releases will not contain changes to Foundation for iOS, macOS, tvOS, or watchOS.

Swift 4.2.2

Swift 4.2.2 is a small bug fix release, addressing the following issues in swift-corelibs-foundation on Linux:

  • Fix Conditional Bridge Behavior for NSNumber to Bool [#1797]
  • Fix for handling of HTTP POST requests with empty bodies [#1743]

Process for the monthly Linux releases

A release manager will be selected for each monthly dot release. The release managers will be announced on the Swift Forums along with the merge window for each monthly release. This merge window will remain open for about three weeks, after which it will close. Immediately following the merge window close, release managers have one week to finalize the release which will then finally appear on swift.org. All the relevant dates will be communicated upfront in the announcement on Swift Forums.

Whilst the merge window is open, everybody can open a pull request against the swift-4.2-branch in swift-corelibs-foundation or swift-corelibs-xctest on Github. To keep the process smooth and lightweight, the release managers will only consider pull requests that

  • are bug fixes,
  • have already been merged to master,
  • pass all the unit tests on swift-4.2-branch, and
  • contain at least one unit test exercising the changed code.

We expect most bug fixes to be small corrections, so creating the pull request might be a matter of creating a branch followed by git cherry-pick -x FIX-COMMIT-FROM-MASTER-SHA. We do realize not all backports will be a conflict-free cherry picks but we hope the community works together to deliver the most pressing bug fixes in a timely manner.

Notes

If you think there's an important bug fix that should go into the next dot release, but you don’t have the ability to fix it in time, please use the Swift Forums to rally for help. The Swift community includes a bunch of folks ready to assist, and sometimes raising attention on a bug is all that’s needed to get it fixed. As always, please remember that most of the community is not working on Swift full time, so be kind :relaxed:.

Similarly, if you have opened a pull request, you might want to assign the release managers on the Github pull request so they can have a look straight away. The release managers will merge patches throughout the whole merge window. Once the merge window closes however, no further pull requests will be considered until the next merge window opens.

Timeline

Now that Swift 4.2.2 has been released, we will open the merge window for Swift 4.2.3 very soon, watch this space for the accompanying post on the forums.

49 Likes

That's Nice :ok_hand::ok_hand:

Excellent! :+1: :slightly_smiling_face:
Are you also planning to bring Swift to other Linux platforms?
Micro-services architectures are in full development. If we had Swift on a platform like Alpine Linux that would really allow us to do "micro" services.

2 Likes

It's not Alpine, but Swift is available on Fedora via the standard package manager (dnf install swift-lang). It builds and runs correctly from source too if that's your jam. :slight_smile:

2 Likes

This is really great news! :+1:
The announcement says that the focus is on swift-corelibs-foundation and swift-corelibs-xctest. Will changes also be accepted in swift , swift-package-manager etc? If so, what is the correct way to get existing PR's included in the next point release 4.2.3.
Thanks.

2 Likes

I think that would need to be decided on a case-by-case basis. If there's for example a small Linux-only issue in the compiler then I think we could consider it. If I were you, I'd propose a concrete change here (or with a PR to swift-4.2-branch on github). The release managers and @tkremenek can then discuss then concrete issue.