[swift-dev] Official Docker Image & "Blessing"s of Community Platforms

Thomas Catterall me at swizzlr.co
Tue Dec 29 12:07:51 CST 2015

Hi all,

You might want to settle down with a glass of eggnog to read this, it's a long one.

Myself and Haris Amin (CC'd), as you may know, have been building a community of users who want to use Swift inside Docker containers (https://github.com/swiftdocker/docker-swift) and maintain an image, swiftdocker/swift, that provides a complete Swift installation that is usable for all kinds of applications, from trying a Linux REPL to running a webserver (I've already deployed one).

We've been contacted by a content evangelist at Docker who would like to offer an "official" Docker image that contains Swift. You can read more about official Docker images here: https://docs.docker.com/docker-hub/official_repos/. Note that these are official in Docker Inc.'s view: they don't necessarily exist as officially supported by, for instance, PyPy developers, but they are a great starting point and exhibit best practices. Docker is interested in having Haris and I maintain the image we have been building as the official repository. There's a lot of benefits to having an official Docker image, namely enhanced security, scrutiny, support, and a spotlight on a great new language that can drive adoption.

Haris and I are incredibly thankful for the hard work Swift's core team have put into the open sourcing of the language and in that spirit we are very reluctant to proceed without the core team's blessing. The important thing to note is that this endeavour would involve little to no work on the core team's side, except perhaps a note on the Downloads page saying that this is a community supported project and not one officially supported by the core team.

This brings to a head something that's been rumbling for a while: how exactly does the Swift Project "bless" alternative distributions or platforms? For instance, the recent work on compiling to ARM for the Raspberry Pi is a worthy project, notably for the Pi's adoption in educational environments. BSD systems are another area of great interest. Furthermore, I doubt it will be long before someone wants to provide a Swift package through apt-get, homebrew etc. While those contributors may have less qualms about wanting the Swift team's blessing, it makes sense that there is some degree of centrality to ensure people do not work independently towards the same goal for a particular platform.

For the matter at hand, Haris and I would like to at the least hear "go for it" from the core team; better yet, we'd love to have anyone from the core team/Apple who is interested in Docker/the build infrastructure to join Haris, Docker and I in creating this official repo, and serving as a representative of Apple's interests in this area.

For the larger matter, it seems to me that the Swift Project can take a few directions:
1. "Knock yourselves out, but we're just making the language." In this direction, the Swift Project would disclaim official support or blessing of anything that doesn't come out of it. Occupation of a top level namespace or being the "official" Swift for a platform would be something for the community to sort out independently with the platform vendor.
2. "Knock yourselves out, here's a list of all the current efforts that we think you might be interested in"
Not so much as blessing, still disclaiming support, but at the least acknowledging the ecosystem around Swift for other platforms besides OS X and the two Ubuntus.
3. Blessing: in this direction, which I think a lot of people would like and I would prefer, the Swift project gives its blessing to projects, and links to them on its website. This has the benefit of centralising development efforts and providing an easy springboard for those who are interested in Swift and are checking the website.
4. Official support: in this direction, when a project meets a certain criteria, it is folded into the main Swift project, given a repo on GitHub etc. This would probably not occur for quite a while yet, but as continuous integration improves for Swift it could make sense that the docker image might be something that is actively supported in the development of Swift if it is sufficiently popular.

I'd like to hear back from the core team about this instance of the Docker issue, but I'd also like to start a conversation about community platform support and how centralising issues like this one can be handled in future.

Best wishes for the new year,

Thomas Catterall

Sent from my iPhone
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20151229/81383b08/attachment.html>

More information about the swift-dev mailing list