<div dir="ltr">Agreed. I created a GitHub organization ('swift-stdlib-opensource-collaborators'), and will try to invite the non-Apple ('outsider') folks to join. Once that's happened, maybe Shawn can move his fork under the organization, or one of us can fork the repo again. I'm not very familiar with how orgs work, but I assume we'll be able to push to the fork with minimal friction, and then occasionally the org itself can make PRs to Swift proper?<div><br></div><div>Once we get this worked out I'll begin working through the first part of Dave's tasklist.</div><div><br></div><div>Best,</div><div>Austin<br><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Feb 21, 2016 at 9:57 AM, Shawn Erickson <span dir="ltr"><<a href="mailto:shawnce@gmail.com" target="_blank">shawnce@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">First I see that Dmitri G. appears to be most involved with this yet in the other thread I see Dmitri H. being copied. So which/both of you involved with this effort? ...or are you one and the same given the similarity of the name? /me hopes he doesn't look like a total idiot now<div><br></div><div>Second given commit access limits it may make sense for those of us on the "outside" to work in same fork (e.g. added as collaborators)? It may help avoid pull request overhead between us while work is underway? My github identity is "shawnce". I have a fork created <a href="https://github.com/shawnce/swift" target="_blank">https://github.com/shawnce/swift</a> if so desired to use that as the sandbox (set default branch to swift-3-indexing-model). ...looking for guidance on how best to make things work efficiently.</div><div><div><br></div><div>I am digging into <a href="https://github.com/apple/swift/blob/master/test/Prototypes/CollectionsMoveIndices.swift" rel="noreferrer" style="font-size:13px" target="_blank">https://github.com/apple/swift/blob/master/test/Prototypes/CollectionsMoveIndices.swift</a> to understand the scope of the work involved.</div><div><br></div><div><span><div><span style="font-size:13px">Anyway I am looking at the current state of the code and I see things like the following...</span></div><div><span style="font-size:13px"><div> @available(*, unavailable, renamed="MutableCollection")</div><div> public typealias MutableCollectionType = MutableCollection</div></span></div><div><span style="font-size:13px"><div>...so it looks like the use of Type is being dropped in the updated naming methodology? So this obviously implies... right?</div><div><div>// [new] protocol BidirectionalCollection : Collection {}</div><div>// [new] protocol RandomAccessCollection : BidirectionalCollection</div></div><div><br></div><div>I expect additional – hopefully less mundane :) – questions to popup as I dig into things.</div></span></div></span></div><div></div><div><br></div><div>-Shawn</div><div><br></div><div>As reference Dave outlined the following in the other email thread...</div><div>-----</div><div><span><span style="font-size:13px">Okay, I've up a branch for you guys: swift-3-indexing-model.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">* You can submit pull requests against that.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">* There are corresponding branches in the swift-llvm and swift-clang</span><br style="font-size:13px"><span style="font-size:13px"> repos that this branch will build/test against.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">* The branch is based on swift-3-api-guidelines, where we're doing all</span><br style="font-size:13px"><span style="font-size:13px"> the renaming work associated with the new guidelines; we expect to</span><br style="font-size:13px"><span style="font-size:13px"> merge that branch into master in a few days, so basing the indexing model</span><br style="font-size:13px"><span style="font-size:13px"> work on it should reduce conflicts when we merge this work.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">Most of the stdlib team is currently occupied with other fires, but we</span><br style="font-size:13px"><span style="font-size:13px">want to move on to work on this ASAP. If it's possible for you guys to</span><br style="font-size:13px"><span style="font-size:13px">get it started in the meantime, that would be truly awesome.</span><br style="font-size:13px"><span style="font-size:13px">Unfortunately the hardest part is right at the beginning.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">The first step is to make the minimal changes required to get the</span><br style="font-size:13px"><span style="font-size:13px">standard library to build after replacing the Collection protocol with</span><br style="font-size:13px"><span style="font-size:13px">the three shown in the prototype. That step may not be very</span><br style="font-size:13px"><span style="font-size:13px">parallelizable and might require either close coordination or for one of</span><br style="font-size:13px"><span style="font-size:13px">you to do it alone. Tests will be horribly broken at this point, and</span><br style="font-size:13px"><span style="font-size:13px">you may have even commented out parts of the standard library, so this</span><br style="font-size:13px"><span style="font-size:13px">step requires intestinal fortitude.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">If parts of the library have been disabled in step 1, next you can split</span><br style="font-size:13px"><span style="font-size:13px">up the work of getting the whole library to work.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">At this point you should be able to mark the old Index protocols</span><br style="font-size:13px"><span style="font-size:13px">@unavailable and move on to fixing tests.</span></span><br></div><div><span><span style="font-size:13px">-----</span></span></div><div><span><span style="font-size:13px"><br></span></span></div><div><br></div><div><span><span style="font-size:13px"><span><div></div><div><br></div><div></div></span><br></span></span></div><div><br></div><div><div><div><br><div><br></div><div><br></div></div></div></div></div></div>
</blockquote></div><br></div>