<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 2/17/17 1:16 AM, Mehdi Amini via
      lldb-dev wrote:<br>
    </div>
    <blockquote
      cite="mid:24ED4325-2585-439E-9F32-DE6D8C0F6285@apple.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <span id="docs-internal-guid-cb8c6354-4ab6-c0ce-b1f8-a22019242fdc"
        class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Hello all,</span></div>
        <br class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">GSOC is around the corner, and the LLVM projects plans to participate again this year. For those who don’t know about GSOC, students are proposing a project that they will work on for 3 months. Amongst other, one goal for LLVM is to mentor students to become good developers and also contributors to the LLVM project (or user/advocate of LLVM for building other cool projects).</span></div>
        <br class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">A key part of the process is about how do we select the projects. The way we’ve done it last year, is that the volunteer mentors shared an email thread and ultimately each one individually ranked the projects. We kept the average grading for each project to ranked them overall.</span></div>
        <br class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""> In order to make the process more transparent to student applicants, we want to formalize and announce the criteria for ranking and selection project.</span></div>
        <br class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">The purpose of this email is to gather community feedback about the criterion that mentors should apply when ranking projects, for example:</span></div>
        <br class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">- Should we favor a student which has past contributions to LLVM compared to a newcomer? Is it more important or as equally important as the quality of the proposal?</span></div>
      </span></blockquote>
    <br>
    Historically, we have opted for students with previous LLVM
    experience because they are more likely to make progress and
    complete their project.  For most projects, this makes sense. 
    However, it does have the downside of attracting students that are
    already "on board" with LLVM; it doesn't introduce new developers to
    the LLVM community.<br>
    <br>
    We therefore might want to devise projects that would fit beginner
    developers.  For example, a proposal that aims to fix a set of bugs
    might work.<br>
    <br>
    <blockquote
      cite="mid:24ED4325-2585-439E-9F32-DE6D8C0F6285@apple.com"
      type="cite"><span
        id="docs-internal-guid-cb8c6354-4ab6-c0ce-b1f8-a22019242fdc"
        class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">- How should we rank (if any) “research or unbounded projects” vs “project with an immediate application”? Should we strive to keep a balance?</span></div>
      </span></blockquote>
    <br>
    We should strive to keep a balance.  The important factor is getting
    students to either improve the existing LLVM software or to build
    cool tools using LLVM.  We want to grow the LLVM community, and both
    the software development and research communities are important.<br>
    <br>
    I also believe that research projects and open-ended projects can
    provide long-term gains even if they don't provide immediate
    short-term benefits.  Remember that LLVM itself was once a research
    project.<br>
    <br>
    If we keep a balance, then we will have a nice mix of short-term,
    low risk projects and projects that contribute to longer-term,
    higher risk goals.<br>
    <br>
    <br>
    <br>
    <blockquote
      cite="mid:24ED4325-2585-439E-9F32-DE6D8C0F6285@apple.com"
      type="cite"><span
        id="docs-internal-guid-cb8c6354-4ab6-c0ce-b1f8-a22019242fdc"
        class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">- What about “projects that touch LLVM/Clang/…” vs “projects that are building something on top of LLVM”? (For example this project was first proposed to be selected by LLVM before being rejected and finally picked by the Julia project directly: <a moz-do-not-send="true" href="https://summerofcode.withgoogle.com/archive/2016/projects/6197080536121344/" class="">https://summerofcode.withgoogle.com/archive/2016/projects/6197080536121344/</a> )?</span></div>
      </span></blockquote>
    <br>
    We should encourage proposals that build something *with*
    LLVM/Clang/etc. as well as projects that improve the core compiler
    infrastructure.  Part of LLVM's appeal is that one can build *a lot*
    of tools with it.  We want to encourage students to use LLVM to
    build interesting things.<br>
    <br>
    In some cases, we will have overlap with other communities (the
    Julia and FreeBSD communities come to mind).  I think that's fine.<br>
    <br>
    <br>
    <blockquote
      cite="mid:24ED4325-2585-439E-9F32-DE6D8C0F6285@apple.com"
      type="cite"><span
        id="docs-internal-guid-cb8c6354-4ab6-c0ce-b1f8-a22019242fdc"
        class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">- Should we ask that the work is done upstream all along? In the past there have been project developed on GitHub outside the community that have never been merged. The LLVM developer policy has a full section insisting on incremental development ( <a moz-do-not-send="true" href="http://llvm.org/docs/DeveloperPolicy.html#incremental-development" class="">http://llvm.org/docs/DeveloperPolicy.html#incremental-development</a> ).</span></div>
      </span></blockquote>
    <br>
    It depends on the project.  Projects that enhance the core
    infrastructure should probably follow the developer policy and
    contribute upstream.  Projects that are "trying out" a new idea or
    are research-oriented should probably not worry about working
    upstream; why upstream if you don't even know if what you're trying
    to do is going to work?<br>
    <br>
    <blockquote
      cite="mid:24ED4325-2585-439E-9F32-DE6D8C0F6285@apple.com"
      type="cite"><span
        id="docs-internal-guid-cb8c6354-4ab6-c0ce-b1f8-a22019242fdc"
        class=""><br class="">
        <div style="line-height: 1.38; margin-top: 0pt; margin-bottom:
          0pt;" class=""><span style="font-size: 11pt; font-family: Arial; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Hopefully we should be able to provide a set of guidelines to student that would help them fill the best application, and avoid unfortunate surprise at the end of the process.</span></div>
      </span></blockquote>
    <br>
    I think what actually makes a strong proposal is whether the student
    presents a good idea, whether the proposal convinces the reader that
    the student will be able to perform the work, and whether there is a
    mentor interested in the project.  If you have these three things,
    then you have a project that is more likely to achieve its goals and
    grow the LLVM community.<br>
    <br>
    Regards,<br>
    <br>
    John Criswell<br>
    <br>
    <pre class="moz-signature" cols="72">-- 
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
<a class="moz-txt-link-freetext" href="http://www.cs.rochester.edu/u/criswell">http://www.cs.rochester.edu/u/criswell</a></pre>
  </body>
</html>