How to get added to swift-server organization on GitHub?

the thing about the incubation process document is, reading through, i just felt like the whole thing was over my pay-grade.

Incubation is made of the following stages: Pitch , Proposal , Development , and Recommendation . The Development stage is where the majority of incubation take place. The SSWG will maintain a public "Swift Server Ecosystem" index page that will list all recommended tools and libraries as well as projects that are part of the incubation process and their respective incubation level.

Pitches are an introduction to an idea for a new library or tool. They can also introduce ideas for new features or changes to existing tools. Pitches are used to collect feedback from the community and help define the exact scope of a project prior to writing code. They should demonstrate how they align with the SSWG's goals to improve Swift on the server. Pitches are submitted by creating a new thread in the Swift Server forum area.

this just doesn’t seem to line up with my understanding of how swift packages occur in the wild. it is not very often a dev gets an idea for a module, spends a week lobbying key voters, figuring out who all the eventual API users are going to be, and drafting a proposal document to anticipate and balance all their separate needs, without even starting to write the code.

and that’s just the pitching process. to even be called a proposal it needs two sponsors on the server committee to vouch for it, it needs an insider to care enough to put it in front of the whole committee, it needs the committee to get around to assigning it a review manager, and this is before it has even been scheduled for a review.

this whole time the committee won’t even dare refer to it as a “sandbox project”.

the proposal section is ten paragraphs long. the sections for the subsequent stages are even more detailed. but the initial “pitch” section is one paragraph long, and there isn’t anything on what to do before the pitch, other than a vague:

The incubation process is designed to help nurture and mature projects ensuring standardization, quality, and longevity. It also seeks to increase the visibility of ideas, experiments, or other early work that can add value to the SSWG mission.

this is just the opposite of how contributions really come about. in general, you will constantly see tons and tons of half-started, incomplete, and experimental packages random authors keep in personal github repos. some of these packages might become good enough to be used with care in production, perhaps in a dev’s own project, or by a few users that consider it reliable enough. as packages mature, there are fewer and fewer of them and they naturally evolve into the community’s idea of a “quality library” and the detailed project guidance and acceptance criteria are not really needed because everyone knows a mature framework when they see one.

the process just doesn’t seem to be geared towards someone who wants to spin-off part of a project that they think will be useful to a wider audience, or someone who authored a framework for an employer that went under and the dev retained the rights to the framework and are thinking about open-sourcing it. situations that represent how a majority of packages are born. especially in a community like Swift on Linux where there is not a lot of preexisting library ecosystem and people are used to rolling their own.

they already live in my personal github in one form or another. github private repos are great for version control. but even if i make it public, no one will ever find it, and the next server-side dev who needs, say, a JSON parser without floating point encoding issues (i feel like every week someone comes here asking that) will just write another in their own personal repo, and so on and so on. and everyone will keep feeling like server-side swift is a desert and all the nice things are over in iOS/SwiftUI land.

github doesn’t really have a nice “package collections” feature (i wish it did). so github organizations end up becoming the place for people to look for packages, especially for server-side swift devs, since we’re the only group of swift devs who deploy to linux as the exclusive target and not a second platform.

i know the committee “endorses” things occasionally. but the endorsement is hidden away so carefully that even people who know that it exists have to navigate the labyrinth to find it. no one even told me the committee endorsed atomic blonde (edit just realized you did, oops)

for example, the incubation page references a

public "Swift Server Ecosystem" index page that will list all recommended tools and libraries as well as projects that are part of the incubation process and their respective incubation level.

but it’s not hyperlinked. you have to scroll all the way past the diagram (why is there a diagram?) before you can click on the Swift Server Ecosystem Index, which takes you to swift.org.

the url fragment is called #projects, which doesn’t exist and which i assume is referring to the id="development-guides" heading. and the development guides come after the “Swift Server Workgroup” section, because that’s the first thing we need to teach someone who’s just looking to get started with server-side swift.

the (search) keywords 'package', 'ecosystem', 'index' don’t appear anywhere on the page. you have to breadth-first search through

none of which could reasonably be called an index, except for the IDE editors page which is only considered “server-side related” because all the macOS/iOS people use XCode.

would it really be so bad if the committee allowed more “pre-pitch” repositories to live under the organization directory? it’s not like it’s overflowing with repositories. including the VSCode extension, i only count six.

Right now i have packages for (in various stages)

2 Likes