Become an Outreachy Mentor: support the growth and diversity of the OCaml community

What is Outreachy?

Outreachy is an initiative that provides financial support for remote internships, in open-source communities, to under-represented groups. It provides interns with the opportunity for their first experience in open-source development.

Outreachy promotes diversity and inclusion in the open-source community. It acts as a central point for organising internships for groups of people who historically have faced systemic bias in the programming world.

Outreachy and OCaml

Following the successful effort from the OCaml Software Foundation last year, this year OCaml Labs and Tarides joined forces to continue our efforts to bring more new developers into the OCaml community from diverse backgrounds. We selected three Outreachy interns to work with us on different OCaml projects.

Current OCaml Interns

We merged over 75 PRs and resolved over 70 issues during the initial contribution period this year on the ocaml/ocaml.org repository! This was the most activity the repository had seen since 2014. There were so many candidate interns, keen to join the OCaml community and start developing.

This year, we have three interns working with us: Diksha Gupta, Odinaka Joy and Shreya Kumari Gupta.

  • Diksha Gupta is working on automating and expanding ocaml.org’s new and experimental peertube instance for hosting OCaml-related video content.
  • Odinaka Joy is prototyping and building an online package search web application and service.
  • Shreya Kumari Gupta is helping to build and design a new ocaml.org website.

They’ve all made amazing progress and we can’t wait to share more about these projects towards the end of their internships!

Continuing to grow Outreachy and OCaml

Outreachy programs run every six months, and so even though the current round is still ongoing, we need to plan how to participate in the forthcoming Winter 2021 round.

One of the big bottlenecks in growing the program is having a sufficient supply of projects and mentors from the OCaml community who are willing to work with the enthusiastic Outreachy interns to get them started on contributing to our ecosystem. That’s the goal of this post – to convince you to sign up!

Benefits of being a mentor

Outreachy is an amazing and rewarding experience that:

  • Increases diversity in the OCaml community.
  • Attracts more contributers to OCaml or to open-source projects in general.
  • Improves your project with an additional developer.
  • Has an enriching experience: work together with people from many different backgrounds and ways of thinking.
  • Promotes OCaml: When people learn about Outreachy, they often go through the list of communities that are or were signed up in the past. That’s a good way for those from under-represented groups to learn about OCaml. It also puts the OCaml community in a good light. We know that this is how some people who now form part of the OCaml community first learned about OCaml and got excited about it.

Expectations of being a mentor

* Time commitment

During the three month internship, mentors need to commit to working with the Outreachy intern for approximately 5 hours per week. During the one month contribution period that takes place before the internship starts, mentors must help prospective applicants with issues and PRs which can take anywhere between 1 to 15 hours per week depending on how many interested applicants there are.

* Your open-source repository

Most Outreachy projects that interns work on have a single, main repository that code will eventually be merged into. It can be any OCaml, open-source repository of code with some form of issue tracker. For example, this summer we started with the ocaml.org repository. The best repositories tend to be those that are well-maintained, make good use of the issue tracker, and have clear documentation that describes how to get started.

Note that although companies can take part, the open-source project that is part of Outreachy must be in the public interest. This generally means that OCaml libraries and tools of wider interest are fine targets for Outreachy contributions, but not OCaml codebases that are commercial or very specific in nature.

* Outreachy projects

Outreachy defines a good project for an intern as being well-defined, self-contained, uncontroversial and incremental. When thinking of a suitable project it is important to bear these conditions in mind.

Mentors can support the success of the intern by preparing, in advance, a three-month outline of the timeline the intern will follow. This timeline divides the project into manageable chunks that can be completed each week.

* Interacting with Outreachy interns

The interns’ backgrounds may vary. Some might be experienced developers but most won’t already know OCaml and may have questions concerning the OCaml set-up or the langauge in general. However, the project doesn’t need to be super easy: many interns who started without 100% skill fit have been very successful.

Also, for most interns it’s the first time contributing to open-source and they’ve all faced systemic bias in the past. So it’s important to provide a friendly working atmosphere. This means being patient and making them feel comfortable to ask questions.

Step-by-step process for being a mentor

The Outreachy process from the mentor’s perspective, including dates for the coming round is:

Next Round Timeline

  1. The Outreachy process starts when the call for mentoring communities sign-up opens. OCaml is already included in the next Outreachy round.

  2. The next step is to submit Outreachy projects to the OCaml community on the Outreachy site. That’s the first step that you, as a potential mentor, would need to undertake. We’ve explained in the section above what a project can look like. At this stage, you also need to mention the skills that interns require to contribute to your project. This year’s list of projects with their respective, required skills are available online. If you set your requirements too low, you might be overwhelmed by the number of applicants to your project; if you set it too high, you might not get any applicants. The section above, Interacting with Outreachy interns describes the experience level you can expect.

  3. If your project is approved, you should prepare it for the contribution period. At this stage, it’s a good to review your contribution documentation and to label some of your project’s issues as good-first-issue resp. medium.

  4. The one month contribution period is the time during which Outreachy applicants, who have passed an initial application process that’s validated by the Outreachy organizers, can apply for a defined project by contributing to its repository in the same way that any other first-time contributer would contribute (independently from the internship project). This involves choosing issues, working on them and opening PRs, commenting on issues or opening new ones, and so on. During this stage, you need to start providing guidance and help. In particular, having good-first-issue's is imperative since it allows the participants to become familiar with the code base. You must also have some medium sized issues or tasks for participants because it allows you to assess their application with more substantial contributions.

  5. When the contribution period ends, you need to select (an) intern(s) out of the pool of applicants. To help you get an overview, each of them will submit an application consisting of the following two parts: a summary of their contributions to your repository during the contribution period and the final application which includes a timeline for the internship project. The applicants are supposed to work out the timeline together with their mentor(s), so they might ask you for guidance and feedback in advance.

  6. The interns will then be officially announced by Outreachy, and they start working with you a few weeks later, marking the start of their 13-week internship period!

Become a mentor

Mentoring an Outreachy intern is a very enriching experience! So if you have ideas, submit your project on the Outreachy website, under the OCaml community, and apply to be a mentor or co-mentor.

We are looking forward to your participation in the next Outreachy round(s) and would love to hear your ideas (comment on the post)!

This post was written by @gs0510, @patricoferris and @pitag with lots of useful input from @avsm and @susanstocks.

19 Likes

There’s been a very disappointing response to this call for mentors to increase the diversity of our community. Precisely noone has been in touch for the winter call, leaving the burden of mentorship on the same people that did all the work this summer.

Before making new calls for programs like GSoC, let’s get Outreachy onto more sustainable ground please. We are purely limited by mentorship time at present. This can be as simple as organising new first issues for projects in the ecosystem, and all the way to pair programming with a mentee. You can chose how to be involved.

8 Likes

One possibility on the softer side of the OCaml compiler would be a project to work on the OCaml manual and its integration to ocaml.org: there are few tasks that might internship sized, for instance the switch to odoc for the postprocessed manual or implementing interactive code examples. I would try to write a more cohesive project before the 17 September deadline.

8 Likes

Ah ha! From reading this initially I was under the impression that mentoring meant running an independent project that needed contributors. I didn’t realize it involve helping guide contributors on existing projects and/or providing support like pairing.

I think this is a wonderful initiative, and definitely would like to support. Thanks to you and all the mentors who made this year a success!

4 Likes

I actually haven’t been able to figure out how to apply as a volunteer/co-mentor. I can commit 1-5 hours per week to help interns with pairing, guidance, etc., but can’t lead a project or devote more time per week. If someone can point me towards the right link, or just wants to keep me in mind as support for their project, I’m happy to pitch in.

I actually haven’t been able to figure out how to apply as a volunteer/co-mentor.

You need to know which project you want to co-mentor and then can apply as a co-mentor for that specific project. For that, first there must be a project registered, which I think isn’t the case yet.

I can commit 1-5 hours per week to help interns with pairing, guidance, etc., but can’t lead a project or devote more time per week.

Nice! I think if there will be a project that suits you as co-mentor, it would be great for you to sign up as a co-mentor for it. What kind of things do you usually work on?

And by the way: Thanks! :slight_smile: It’s really nice to see folks excited to help!

3 Likes

Hey all, I’ve just submitted an Outreachy project for the winter round. The project is to write the basic ppx_deriving plugins in ppxlib; that is, the ones that don’t already have a version based on ppxlib. I think both, having them available to use, and having their code available as simple examples of how to use Ppxlib.Deriving would be very nice! And improving ppxlib’s documentation and finding simple issues on already existing PPXs to prepare for Outreachy, will be beneficial as well.

Of course, it’s not clear if someone with the right interest comes along for this project, but if we don’t find an intern for it this round, I can just re-submit the same project next round.

7 Likes

Btw, the deadline to submit projects was extended and is now Sept 23rd. So the timeline in our post above is slightly outdated.

2 Likes

Sorry I forgot to reply to this question, @pitag!

I’ve fiddled around with various things from cli tooling and web apps to PLT toys (most recently um-abt). I’ve also made some small contributions to the dune CLI. I haven’t ever written any ppxs, but learning the system has been on my list, so I’d be happy to give support on that project for instance.

2 Likes

And just yesterday evening the deadline has been pushed back to September 29 at 4pm UTC with the contribution period beginning promptly after that on October 1 at 4pm UTC (of course the sooner a project is on the site the better!).

I haven’t even written any ppxs, but learning the system has been on my list, so I’d be happy to give support on that project for instance.

Nice! Thanks for co-mentoring :slight_smile: That’s really appreciated! I’ll write you a private message to talk more about the PPX project and let you know about the other projects this round. Btw, I’ll also try to get some information shared about the other projects here in the thread as well.

2 Likes

I’ve submitted two projects for the winter session:

  • Integrate a package health check in ocaml.org

To essentially integrate a version of check.ocamllabs.io that can be used by opam-repository maintainers and opam users into the next version of ocaml.org (https://v3.ocaml.org).

  • Support .eml files in OCaml’s VSCode extension

To add support for Dream’s .eml files syntax in the extension, and eventually have error reporting for these files from OCaml LSP Server.

I’m more than interested in having co-mentors for these two projects, so if you wanted to mentor Outreachy interns but didn’t have any project ideas, don’t hesitate to reach out :slight_smile:

Another way to help that does not involve mentoring is to find good first issues that will help onboard and select candidates for the projects. Any help on this effort to identify, create and document good first issues for the different projects is more than welcome!

10 Likes

I’ve also submitted a project for the winter session: “Create a tool to show differences in the output of odoc.”

The idea is to produce a tool to work on the output of the ocaml-docs-ci pipeline to find differences between different versions of the same package. We’re aiming for it to eventually be used in the docs pages to highlight differences between versions in v3.ocaml.org. Just one of the neat things we’ve got in mind for the docs pages on the new website!

As @tmattio points out, you don’t have to be a mentor to contribute to the process - so let the odoc team know if you’re interested in lending a hand.

9 Likes