A welcoming, community-oriented Lwt

Let’s make Lwt a truly welcoming project, especially for beginners. We invite everyone to participate. This doesn’t have to mean writing any code! Asking questions, finding problems in docs, yelling at the maintainers :disappointed_relieved: – all of this eventually helps the many users of Lwt. So, please go on and do it :slight_smile:


Please ask any questions you might have! Even the most experienced Lwt contributors learn from questions, including those that may seem trivial at first. Besides that, each question helps to improve the docs, and that helps everyone. On that subject, if you see any problem with the docs, please tell us. If you submit a PR, we will happily merge it.

If you are starting out in OCaml and/or Lwt, we’d love to help you learn either or both. Again, just reach out to us, and we can help out in public, or begin a one-on-one exchange, etc.

Issues and code

A very useful way to participate is opening issues on anything that bugs you in Lwt (and there are plenty of candidates!). This goes hand-in-hand with the next point – an Lwt annoyance, which you might not have time to fix, might be a perfect easy issue for somebody else. But, please open issues, even if you think they are not easy.

If you’d like to try contributing code, we’ve created a list of easy issues to get started with. Each issue represents a valuable contribution. We will work closely with you, and try to meet your working needs. As you become more comfortable with Lwt, we will suggest more challenging issues. You are also welcome to stop at any time with no guilt whatsoever! But, we hope you join us – indeed, we are looking to turn frequent contributors into co-maintainers :slight_smile:

Several OCaml and Lwt beginners have already gotten productive on Lwt recently, and we are happy to see them confidently moving on to other things!

Contributor resources

Lwt has recently gotten a bunch of new resources, trying to be more helpful to contributors:

  • There is, of course, the contact information, and one of the easiest ways to contact other Lwt contributors is by simply posting in this very Discourse forum!
  • The README has a fresh Contributing section, briefly covering all kinds of contributions in general.
  • For contributors interested in coding specifically, there is a brand-new CONTRIBUTING.md. Among other things, it contains a high-level outline of the Lwt code base. With your feedback, we hope to improve this file over time.
  • The roadmap lists current large-scale, long-term projects, and planned releases. This is meant to give a decent idea of where the overall Lwt behemoth is headed at any given time.

Who works on Lwt?

Lwt originated in Ocsigen, but it is currently maintained mainly by a collection of unaffiliated volunteers.

Related work along this direction

Making Lwt more open has been an ongoing goal, together with reducing unmaintainable code (i.e. technical debt). Lwt has to be flexible. There are many reasons for this, but a philosophical discussion is maybe best avoided here, unless prompted :slight_smile:

Towards this, Lwt has recently:

  • Gotten a rewrite of the core, to make it more accessible and comprehensible.
  • That unblocked the Lwt documentation rewrite project.
  • Started moving towards a thorough test suite (1) (2), with coverage analysis (1) (2).
  • Been moving towards converting to jbuilder (thanks to Andrew Ray!).
  • Adopted semantic versioning and a gentle policy for making breaking changes.
  • Abandoned misleading terminology. Lwt is a promise library.
  • Last year, Lwt got automated testing on Linux, macOS, Cygwin, and Win32 for the first time.

The end

So, join us :slight_smile:

And, if you have ideas for how to make Lwt even more welcoming, please share them!


I must thank @vramana for kicking me to get some of these things done.