OCaml can be a little bit daunting, but even if you don't know it, there are a bunch of ways to get involved.
We have issues in each of these:
Lots of times we don't know what to do, and it's extremely valuable to have someone look into the problem and document what's happening. These issues are labeled "investigation".
Similar, the "needs thought" issue is about designing thoughtful solutions to sticky problems.
There are lots of docs that would be very helpful to write. If you look at the current docs, there are docs that would be useful that you can write as a non-expert.
There are a bunch of tutorials for different technologies, frameworks and libraries; writing one for another would be extremely useful. It would also allow you to write up how Dark could be improved to support that technology. You can even make video tutorials!
Similarly, we have some guides for people learning Dark who know other languages. Adding another language would be wonderful. See for example the Python version.
Dark has many bugs and problems: documenting them for other contributors to fix would be very useful. Small, compact descriptions with instructions to reproduce the bugs are very welcome.
The "fluid" editor is how you write code in Dark. It is still often the case that you get an unexpected result when you type something: documenting individual cases as issues is very valuable!
Better error messages
Dark's error messages are not as good as they could be, and this is a real problem for users learning the language the first time. Documenting a bad error message, especially with a suggested better version, is a really useful contribution.
Dark is almost everybody's first OCaml project. So if you don't know OCaml, join the club - we all learned as we contributed to Dark.
There are a number of resources to help as well:
- A guided walkthrough of making your first PR
- good first bugs assume you don't know anything about OCaml
Alos, some bugs, especially our initiatives, require almost no OCaml knowledge, despite the fact that they are in OCaml parts of the codebase. People with no prior exposure to OCaml should be able to make a useful change to one of these in very little time.