|
| 1 | +# 2019.03.01 |
| 2 | + |
| 3 | +[Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/steering.20meeting.202019.2E03.2E01.20.2358850/near/159650062) |
| 4 | + |
| 5 | +Before the meeting started, [@nikomatsakis][nikomatsakis] proposed an agenda and linked to a |
| 6 | +[document to collect agenda ideas](https://hackmd.io/wsHwsi9zR3iq0ZF2SgEq9Q) for future meetings. |
| 7 | + |
| 8 | +Also, [@mw][mw] asked about discussing the policy for out-of-tree compiler crates (expanding on |
| 9 | +discussions from the All Hands' organizational meeting), [a draft for which][draft_policy] was |
| 10 | +already in-progress by [@davidtwco][davidtwco]. |
| 11 | + |
| 12 | +The meeting commenced with a call for involvement in the [RLS 2.0 working group][rls2] led by |
| 13 | +[@matklad][matklad] as sharing expertise between the RLS 2.0 effort and rustc would be helpful. |
| 14 | +There is documentation (videos and guides), issues with `E-mentor` and other resources available |
| 15 | +for those interested. [@davidtwco][davidtwco], [@pnkfelix][pnkfelix] and [@Xanewok][Xanewok] |
| 16 | +mentioned that they would endeavour to find some time to dig into RLS 2.0. |
| 17 | + |
| 18 | +Next, [@nikomatsakis][nikomatsakis] announced an ongoing effort by [@spastorino][spastorino] to |
| 19 | +collate an [expert map](https://hackmd.io/Izvor8KZRiqUgcUyd2CYTw) about who has expertise in |
| 20 | +which areas of the compiler, with the intent of making it easier to find the right people to |
| 21 | +ask questions and assign issues/PRs to, and invited everyone to help flesh it out and add |
| 22 | +themselves. [@nikomatsakis][nikomatsakis] also suggested that this would be good in documenting the |
| 23 | +overall structure of the compiler in some ways. |
| 24 | + |
| 25 | +Following this, the main topic for the steering meeting, the out-of-tree crates policy was |
| 26 | +discussed (for things like [polonius][polonius], [chalk][chalk] and the upcoming diagnostics |
| 27 | +refactoring). The [current draft of the policy][draft_policy] was linked and [@davidtwco][davidtwco] |
| 28 | +emphasised that it was very much a draft and there are lots of unresolved questions. |
| 29 | + |
| 30 | +[@nikomatsakis][nikomatsakis] highlighted a desire for having a uniform experience between |
| 31 | +out-of-tree crates and normal in-tree development - particularly surrounding who can land PRs, |
| 32 | +highfive reviewer assignment, and ensuring anyone in the team can publish new crate versions. |
| 33 | + |
| 34 | +[@davidtwco][davidtwco] noted that discussions surrounding tooling that could make out-of-tree |
| 35 | +crates easy to work with was left out of the policy draft as that isn't part of the policy. |
| 36 | + |
| 37 | +Both [@nikomatsakis][nikomatsakis] and [@mw][mw] wanted there to be a simple guide to follow for |
| 38 | +creating out-of-tree crates - this should include links to examples and things to copy-and-paste. |
| 39 | + |
| 40 | +[@pnkfelix][pnkfelix] raised concerns about current policy wording suggesting that only |
| 41 | +general-purpose functionality should be factored out and suggested clarifications about the minimum |
| 42 | +bar for expected re-use might be beneficial. [@nikomatsakis][nikomatsakis] mused that making |
| 43 | +libraries too general purpose could carry a higher maintainance/breaking-change burden. [@mw][mw] |
| 44 | +suggested that this would need to be decided on a case-by-case basis. [@nikomatsakis][nikomatsakis] |
| 45 | +clarified that we should absolutely be following semver in these crates. |
| 46 | + |
| 47 | +[@nikomatsakis][nikomatsakis] then raised the question of review policy in out-of-tree crates - |
| 48 | +should major PRs require multiple reviewers? can crates have reviewers that are not reviewers of |
| 49 | +rustc? Going to on say that the idea of these crates having their own communities is appealing and |
| 50 | +that one option might be that if a contributor was involved in crate sufficiently to review it, then |
| 51 | +perhaps they should get rustc r+ too or that out-of-tree crates might offer a way to do more |
| 52 | +fine-grained notions of r+. [@pnkfelix][pnkfelix] suggested that long-term we might want in-tree |
| 53 | +tests of these crates to guarantee that they maintain compatibility. |
| 54 | + |
| 55 | +[@mw][mw] then proposed walking through an example - the [self-profile working group][self_profile] |
| 56 | +will likely create a mildly sophisticated on-disk string table that will be shared between rustc |
| 57 | +and external tooling created by the working group and that this would be an ideal candidate for an |
| 58 | +out-of-tree crate. |
| 59 | + |
| 60 | +This raised the many questions. Do compiler team members have the rights to create repositories in |
| 61 | +the rust-lang organization? Is it best to start in the rust-lang organization or prototype in a |
| 62 | +user-hosted repository? What do we name these crates? Is there guidance on adding crates.io |
| 63 | +dependencies to rustc? |
| 64 | + |
| 65 | +[@davidtwco][davidtwco] suggested that we would need to collate a list of things that would need to |
| 66 | +be added to a repository (licenses, code of conduct, etc.) and things that would need set up (bors, |
| 67 | +highfive, etc). |
| 68 | + |
| 69 | +[@wesleywiser][wesleywiser] mentioned that while anyone on the compiler team should be able to r+, |
| 70 | +only those actively involved should be on the highfive rotation. [@nikomatsakis][nikomatsakis] |
| 71 | +noted that it would be great for active working group members to have the opportunity to gain r+. |
| 72 | + |
| 73 | +[@mw][mw] asked if we would set up community infrastructure (such as Zulip instances or streams) for |
| 74 | +the out-of-tree crates, but [@nikomatsakis][nikomatsakis] thought it best that this be tied to |
| 75 | +the community infrastructure already in-place for the working group. |
| 76 | + |
| 77 | +Then, [@nikomatsakis][nikomatsakis] re-raised the question of whether these out-of-tree crates are |
| 78 | +best kept in the rust-lang organization. [@mw][mw] suggested that this is best as it simplifies |
| 79 | +bors and highfive integration and would use existing team permissions. [@pnkfelix][pnkfelix] asked |
| 80 | +how challenging migration from a personal repository to the rust-lang organization is. On this |
| 81 | +point, [@nikomatsakis][nikomatsakis] said that transferring is easy but messy - transferring can |
| 82 | +leave a redirect behind which will conflict with the default name of a fork, which requires an email |
| 83 | +to GitHub to resolve. |
| 84 | + |
| 85 | +[@davidtwco][davidtwco] interjected that it should be made clear what team and working group is |
| 86 | +responsible for any repository we create in the rust-lang organization. |
| 87 | +[@nikomatsakis][nikomatsakis] suggested a template for the README of out-of-tree crates would be |
| 88 | +valuable and should point to the responsible working group. |
| 89 | + |
| 90 | +Changing gears, [@mw][mw] asked if there were any example workflows for handling changes in external |
| 91 | +crates to which [@nikomatsakis][nikomatsakis] suggested that a rustc-guide chapter on that and |
| 92 | +how to make local copies for debugging would be necessary. [@davidtwco][davidtwco] asked what |
| 93 | +information should be kept in the policy document and what information should be kept in the |
| 94 | +rustc-guide. There was some consensus that setting up a new out-of-tree crate is policy and working |
| 95 | +with one is for the guide. |
| 96 | + |
| 97 | +[@mw][mw] then raised the question of where consent of compiler team members should be gathered |
| 98 | +before creating new out-of-tree crates. [@pnkfelix][pnkfelix] suggested it could be a triage meeting |
| 99 | +item and [@nikomatsakis][nikomatsakis] suggested using `@rfcbot` and that the general presumption |
| 100 | +would be that if a compiler team member wanted to create a out-of-tree crate then it would probably |
| 101 | +be a good idea. [@mw][mw] mused that something asynchronous would be preferred and that agreement |
| 102 | +within the working group itself should come first. [@nikomatsakis][nikomatsakis] suggested that |
| 103 | +the goals of approval should be discussed, such as helping to pick a suitable name. |
| 104 | + |
| 105 | +[@mw][mw] suggested that a list of these crates would be valuable and there was agreement that it |
| 106 | +should not be in rust-lang/rust to avoid the bors queue. There was some discussion about searching |
| 107 | +for issues across repositories in an organization. |
| 108 | + |
| 109 | +[@davidtwco][davidtwco] then agreed to write these minutes and his hands are starting to get tired |
| 110 | +at this point. |
| 111 | + |
| 112 | +[rls2]: https://github.com/rust-lang/compiler-team/tree/master/working-groups/rls-2.0 |
| 113 | +[self_profile]: https://github.com/rust-lang/compiler-team/tree/master/working-groups/self-profile |
| 114 | +[draft_policy]: https://github.com/rust-lang/compiler-team/pull/19 |
| 115 | +[chalk]: https://github.com/rust-lang-nursery/chalk/ |
| 116 | +[polonius]: https://github.com/rust-lang-nursery/polonius |
| 117 | + |
| 118 | +[davidtwco]: https://github.com/davidtwco |
| 119 | +[nikomatsakis]: https://github.com/nikomatsakis |
| 120 | +[pnkfelix]: https://github.com/pnkfelix |
| 121 | +[Xanewok]: https://github.com/Xanewok |
| 122 | +[matklad]: https://github.com/matklad |
| 123 | +[mw]: https://github.com/michaelwoerister |
| 124 | +[spastorino]: https://github.com/spastorino |
| 125 | +[wesleywiser]: https://github.com/wesleywiser |
0 commit comments