Massively Contributing to Swift Open Source in 2019

Max Howell
3 min readFeb 16, 2019

--

This year I will release a new open source project EVERY WEEK.

I’m already at five projects this year:

  • swift-sh: trivially run Swift scripts with third party dependencies.
  • Path.swift a delightful, robust, cross-platform and chainable file-pathing library.
  • LegibleError a tool for displaying Swift errors to the user that are less The operation couldn’t be completed. (ThirdPartyModule.(unknown context at 0xx10d6b4a44).SomeError error 0.) and more legible and useful.
  • Version a µ‐framework for representing, comparing, encoding and utilizing semantic versions.
  • AppUpdater a µ‐framework for updating your open source macOS app based on your repo’s GitHub releases.

Update, now eight:

Workbench, Chalk, Cake.

Who are you exactly?

I’m Max Howell, the creator of Homebrew and an Apple fanboy since I switched from working on Linux open source 13 years ago. I am a prolific and famous creator of open source, but also a renowned developer of high profile apps. I love making developer tools because:

Developer tools are the foundation of the modern world

Nothing makes me happier than working on vital tooling for our community and helping Swift take over the world.

Will you help?

Will you help me fill in the gaps in the Swift toolkit with 52 modular, well-designed, high-quality Swift packages this year? Please support my patreon:

https://patreon.com/mxcl

All my projects are announced on my Patreon first, giving you the opportunity to talk about them before anyone else. Higher tiers also give access to my invite only Discord where you can ask me for help with API design or Swift in general.

Tell Me More!

I have a long list of ideas that I’ve been assembling for years, and I want to give them to the Swift community. All my projects have 95%+ code coverage, 100% documentation, excellent READMEs and are under liberal licenses (I favor the Unlicense nowadays).

I am meticulous with my API design; at the forefront of my mind is always the trade-offs of simplicity, elegance and power. A tool should be easy to learn, easy to master and provide power to those who master it. I care about your developer experience, supporting all the package managers in the ecosystem, updating documentation automatically and thoroughly testing in CI for all the platforms Swift supports (yes, especially Linux). I adhere religiously to semantic versioning, I never, ever want my libraries to break when you update them, or when you update Swift (or Xcode) itself.

I am careful with pull requests, I care about my products and resist feature bloat: libraries should be lean and tight and know their responsibility boundaries.

I have been working with Apple tooling for 15 years, am an accomplished mobile app developer for all platforms and worked at Apple on the beginnings of the Swift Package Manager. I maintain the top-100 pod PromiseKit used by many of the worlds top apps. Oh, and I also created Homebrew.

I understand the intricacies of developing Swift applications, the process, the difficulties, the hurdles and the areas developers like you need improvements.

Community

I am a prolific creator of open source, have managed some of the biggest communities open source has ever had and contributed to hundreds of projects. If I’m full‐time on open source I can be a real boon to our community. Managing open source is like nothing else, being that it is composed of volunteers, but developers are like nobody else, we build our own tooling and we revel in trying out new ideas and ways of working. Producing diamonds from this environment is something I excel at.

What will I make?

I intend to provide:

  • Tools. I have three, one of which is mostly finished that aid and facilitate development.
  • Libraries. Micro, small, large, model-layer and UI-layer.
  • Organizations. I have two ideas for community programs, formed to facilitate and moderate aspects of the Swift packaging community.

Ask mxcl anything

Questions? I have an AmA, go wild!

--

--