[swift-evolution] [META] Fast Track Reviews

Douglas Gregor dgregor at apple.com
Mon Apr 18 21:39:47 CDT 2016

Sent from my iPhone

> On Apr 18, 2016, at 8:56 AM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
> I would like to see Swift Evolution adopt a couple of styles of fast track reviews. Chris Lattner
> suggested I bring this up on-list for discussion to allow the community to offer feedback 
> on my idea.
> STYLE ONE: Minor language enhancements AKA "Low hanging fruit"
> I would like the core team to be able to add minor language enhancements without going
> through a formal proposal process, with its normal review overhead. I have now been
> involved in several reviews that involved API changes that were otherwise unremarkable
> and primarily motivated by modernizing and style:
> * Replacing Equal Signs with Colons For Attribute Arguments
> * Modernizing Playground Literals
> * Disambiguating Line Control Statements from Debugging Identifiers
> To this list, you could add:
> * Remove explicit use of let from Function Parameters
> Each of these proposals could have proceeded with a simple "any objections" sanity check 
> discussion period rather than a more formal full review. As a another example
> (now unnecessary), consider the `dynamicType` keyword, which would have required
> a formal proposal to be modernized into Swift's lowercase keyword standard.
> The hallmarks of these changes are:
> * They have limited impact
> * They increase language consistency
> * They are uncontroversial, offering simple, straightforward, and correct changes 
>    that have already passed review in spirit, if not in letter
> * A preponderance of reviews are "+1" rather than in-depth discussions of why the proposal 
>   should or should not be adopted.
> I would recommend retaining a change document requirement for these proposals.
> This would be similar to a brief but formal proposal, that lays out the justification, 
> detail design, and any associated background info for the change. Doing so
> would provide a historic record of the change and any notes from the team, and be 
> in a form that would support the extraction of key details for use in release notes.
> I do not know whether these would need to be grouped and numbered with the normal
> proposals or placed into their own numbering scheme.

My main concerns are to have a proper paper trail documenting when and why we make a change. My preferred approach here would be to go through the normal process up to the pull request for the proposal... Then if it's obviously small and good, the core team could just go straight to accept, sending out an announcement. 

> STYLE TWO: Fast tracking viability
> Once a draft has been discussed on-list and submitted as a pull request, I would like to
> see a biweekly (or even once-a-month) Pull Request Review meeting from the core team
> where a review groups looks over the current pull-request queue and scores them: 
> recommend close, recommend promote, needs work, defer past 3.0.
> This approach:
> * Would offer closure to proposal authors who are otherwise unsure of the viability
>   of their proposals
> * Naturally happens after a significant on-list discussion/pre-review period has already 
>    taken place
> * Would allow the team to weed out proposals with significant issues before entering
>    formal review
> * Would allow on-list reviews to give precedence to only those proposals that make sense
>    both in the time context of Swift 3.0 and its overall design philosophy. 
> Swift is an opinionated language. This review style would introduce discernment and
> feedback slightly earlier in the process without stifling on-list discussion.

FWIW, we've been doing somethings similar to this already, looking at the outstanding PRs and accepting/deferring/sending them back. It's fairly time-consuming and the core team is stretched pretty thin, so I'm not sure what else we can do on this front. I suspect we can be a bit quicker to accept at this stage in the process to save us some overhead. 

  - Doug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160418/150810a5/attachment.html>

More information about the swift-evolution mailing list