Hi all,
With the recent announcement of the language workgroup and new directive of the core team, I'd like to propose a new workgroup - the Swift Tooling Workgroup. The language workgroups remit covers Swift itself and evolution of the language which leaves a number of tooling areas stuck in a bit of no-man's land with no central group to oversee, drive and direct effort.
There are a number of areas that I feel would fall under the tooling workgroup, with some overlap with the existing workgroups:
- SwiftPM - whilst language features and the compiler fall under the language workgroup, SwiftPM itself seems to be outside that. There are lots of good ideas for improvements and missing features and this would be central to evolving Swift's adoption
- SourceKit-LSP - this has seen a load of recent focus thanks to the VSCode extension and would be great to continue
- The VSCode extension and other potential IDE integrations. Having the same group responsible for all integrations and the LSP would help coordinate effort and sort out priorities, similar to the Rust dev tools workgroup
- Swift Format - again, falls outside of the language workgroup's remit but needs help being adopted by the ecosystem
- API Breaking Change checker - I guess this is part of SwiftPM but is useful in its own right and could do with new features and bugs fixing (eg adding new method parameters with default parameters is marked as a breaking change when it's not)
- Swiftly - this tool is currently being developed by the SSWG to make installing any version of Swift on any supported platform easy. It's a needed tool bigger than just the server space
- Docker images, Debs and RPMs - related to Swiftly, all part of tooling and build infrastructure, extremely important and currently held up by the awesome work from @mishal_shah and the community
- DocC - falls under the documentation workgroup but there would be overlap with the plugin, integration with CLI tools etc
- Any other official plugins designed to make writing and building Swift better, examples could include linting, formatting, licence header generation
- Outliers like SwiftMarkdown - it's unclear if this tool is the responsibility of the documentation workgroup or not
- Any work on package registries - this is an important part of the future ecosystem and would require coordination from implementors, security experts, infrastructure teams etc
IMO there are a lot of areas critical to the success of Swift that currently don't have any oversight from a workgroup, outside of the Core Team. From my perspective the Swift Tooling Workgroup is the last major piece of Swift missing a workgroup and would really benefit the language.
Tim