On 2/17/17 1:16 AM, Mehdi Amini via lldb-dev wrote:
Hello all,

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).

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.

In order to make the process more transparent to student applicants, we want to formalize and announce the criteria for ranking and selection project.

The purpose of this email is to gather community feedback about the criterion that mentors should apply when ranking projects, for example:

- 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?

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.

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.

- How should we rank (if any) “research or unbounded projects” vs “project with an immediate application”? Should we strive to keep a balance?

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.

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.

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.



- 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: https://summerofcode.withgoogle.com/archive/2016/projects/6197080536121344/ )?

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.

In some cases, we will have overlap with other communities (the Julia and FreeBSD communities come to mind). I think that's fine.


- 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 ( http://llvm.org/docs/DeveloperPolicy.html#incremental-development ).

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?


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.

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.

Regards,

John Criswell

--
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
http://www.cs.rochester.edu/u/criswell

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to