now that the package plugin ecosystem is slowly kicking into gear, and it's becoming more common and easy to build useful plugins, the SSWG is looking around for ideas of what kinds of plugins people have been developing as well as what kinds of plugins might still be needed.
We're mostly looking for ideas that'd help your day to day server side development, but many of them are universally useful, and not necessarily server specific:
For example here's some ideas we had recently:
- simplify deployment, "package up my project as a zip/rpm/docker-container/anything" with a simple command
- some prior work in this area was done for the lambda runtime: swift-aws-lambda-runtime/Plugins/AWSLambdaPackager at main · swift-server/swift-aws-lambda-runtime · GitHub
- what kinds of packaging up would people want?
- I believe we should take inspiration from GitHub - sbt/sbt-native-packager: sbt Native Packager which is able to package applications into literarily any format
- general soundness checks
- a lot of sswg projects are doing many soundness checks, like checking for license headers etc. this is mostly done through shell scripts today
- @georgebarnett has implemented an initial plugin version of the same in swift-nio, and perhaps we can make it a real reusable plugin: Add a soundness plugin by glbrntt · Pull Request #2242 · apple/swift-nio · GitHub
- version files - like including tag information in generated sources, so a response header can include the tag version of a project
IDL source generators, SwiftProtoBuf just merged a swiftpm plugin for that purpose swift-protobuf/Plugins/SwiftProtobufPlugin at main · apple/swift-protobuf · GitHub
- what other kinds of tools like this are around or are still necessary to build?
multi node testing; which allows running your tests across multiple different nodes
- I made such plugin for distributed actors, where your test forms a cluster between actual processes and could be extended to more physical nodes https://twitter.com/ktosopl/status/1564553982550618112 would there be interest in seeing this as a general plugin?
- other ideas? what do you think is missing?
- do you have some cool plugin you'd like to showcase and be endorsed by the SSWG?
We're fishing for ideas for now, and would love to hear about your use-cases and ideas.
We'd also love to hear about plugins you've already developed, and what limitations you've struck or what you'd like to see improved. If you'd need some help, advice, or perhaps would like to increase it's visibility by posting here or getting it properly SSWG endorsed, this is your time to let us know!
Looking forward to hear from you, thanks in advance!