RFC: Swift Server Work Group Incubation Process

Following the announcements of the SSWG new charter and focus areas, please find the proposal for an incubation process to govern how the community pitches, proposes, develops and contributes to Swift server projects under the SSWG charter. The goal of this process is to nurture and mature such projects ensuring standardization, quality and longevity.

Our goal in publishing this version of the process is to collect feedback from the community before we finalize it. We encourage everyone to review and provide feedback by replying to this post between now and Oct 22, when we plan to make it formal.

12 Likes

Seems mostly sensible to me! My main concern is moving from incubating to graduated. One of the criteria is that it must be adopted by at least 3 projects and used in production. My concern is that this leads to a chicken and egg situation where no one wants to use it since it hasn’t reached the status of graduated - effectively endorsed and working - but it can’t enter graduated until people use it.

The description for incubating is:

Early adopters should treat early stage projects with extra care. While Sandbox projects are safe to try out, it is expected that some projects may fail and never move to the next maturity level. There is no guarantee of production readiness, users, or professional level support. As such, users must exercise their own judgment.

Persuading people to use something in production that could be dropped at any time and has no guarantee of production readiness could be difficult! Especially as things are still relatively young and the SSWG is quite new.

Secondly, did you have any thoughts on timescales? I.e how long a project would spend in each stage etc?

1 Like

thanks for the feedback @0xTim

the general concern is valid, and common in incubation processes. the proposal includes 3 levels: sandbox, incubating and graduated. the warning for early adopters is for sandbox level, which is only a tad beyond a proposal so fair imo. incubating level however, should be fairly safe to use and is how we envision projects ramp up adoption to graduation. sounds like we need to add some extra text around incubating level to make that clearer :+1:

there is no min or max duration needed to transition between levels. a proposal can be accepted in either level (sandbox, incubating or graduated) depending on its maturity and adoption. when making the initial proposal you choose a "preferred initial maturity level" and the SSWG will vote following the criteria described in the doc. the SSWG meets every 2 weeks and votes on new proposals and promotions, so the duration is only capped by the SSWG capacity to review the pipeline

Ah I did not read that very well - I should stop reading things like this at 2AM :sweat_smile:

It does make more sense, so I'm happy!

2 Likes

CC @core-team @server-workgroup