Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Things to work on
OCaml compiler implementation
The official OCaml bug-tracker lists many more reported issues and feature requests. Tasks tagged
junior_job may be particularly suitable for the inexperienced, but the tagging is very far from exhaustive, so feel free to look around.
A couple more things worth knowing:
assignedstate doesn't necessarily mean that you should not work on the issue, since many bugs are auto-assigned by area of responsibility, and patches may still be welcome
- issues in the
resolved/suspendedstate are not considered closed; the core developer team isn't intending to work on such issues further but, again, patches may still be welcome
The Compiler or Language projects to work on wiki page has a list of suggested projects that tend to be larger chunks of work (probably not something you can finish in one evening, but it's fine to start now and finish later). Past entries moved to the list of Compiler or Language projects previously worked on.
Other tasks that are super-useful and accessible to beginners (in fact very good way to learn around) are to review pull requests, document code and contribute to the manual. If you wonder how to do any of these, ask someone!
Projects with curated lists of beginner-friendly issues
The ocaml compiler (see also above).
The quality of the central public opam repository directly affects most OCaml users. You can help improve its metadata to avoid bad surprises when installing packages by looking at the OPAM bulk logs. (TODO: also mention opam-builder.)
Documentation and usage examples
Documentation is often a weak point of open-source project, and virtually all OCaml projects (except maybe those by François Pottier or Daniel Bünzli) out there would benefit from contributions to their documentation. If you have used a specific library recently, taking the time to write an usage example for specific modules or APIs for example helps a lot. For instance, see the examples contributed to the standard library for the Hashtbl (#30), Map (#44) and Set (#45). The odoc project has an in-progress centralized documentation website for OCaml packages at http://docs.mirage.io/, where your contribution will become visible and easy to find for users of the library.
The ocaml-migrate-parsetree project, started in 2017, provide a support library to make programs manipulating the OCaml AST (in particular
ppx extensions) robust to the change of AST definition across OCaml versions -- no more reimplementation of parts of the code at each new OCaml release. If you use some OCaml-AST-manipulating programs, in particular
ppx extensions, have a look at whether they already use it, or consider submitting a Pull Request to make it happen! The github page has a lot of information. Migration examples: