Your next contribution
We have everyone start with a first PR, which makes a small but valuable contribution. Now that you've got it done, you can build something (a little bit) bigger.
Getting started
Below you'll find resources to help you figure out what to work on. After that, head over to Working in the Dark repo to learn how to contribute bigger things, like the basics of F#, the layout of the repo, technical guides to different parts of the codebase and product, and product and vision docs about where Darklang is going.
Issues
We have started adding issues that have been reported by users to the the Issues on GitHub. We'll be going back through the backlog to add more of these soon.
We've marked a few good starting points:
- good first bugs for your first few contributions
- good early bugs for after that
We'll follow up with guides to solving various classes of bugs, as well as the backlog of issues we've been tracking internally.
Initiatives
We have a number of "initiatives" which involve many small, related-but-disconnected tasks. They're tagged in the issues. If you'd like to help with an initiative, mention that you're working on it in the comments, or just get started.
A common example is to add a standard library function.
Scratching your itches
If you've got something that you'd like to solve, either make an issue or discuss it in Discord. Our main purpose of opening the repo was to allow users to solve their problems and not be blocked by us, so we highly prioritize solving things you need solved.
Larger Projects
Darklang is a project with a vision for where it is going. Unfortunately, that vision is not as documented as it could be. We're working on that over at the Darklang Roadmap!
In the meantime, the best thing to align well with that vision is to be very communicative. While many projects will take drive-by contributions, we are only going to take contributions which move in the same direction we are going. Often, those directions are quite subtle, so start by talking to us in Discord, letting us know what you're thinking.
The best thing to work on is something that is personally (or professionally!) blocking you. Our main goal with opening Darklang is to enable users to unblock themselves or to improve their experience. Many users have shown us long laundry lists of things that bother them - you might have one too. Or bring us the list, and we'll talk about where to start.
The important thing is to start small. Darklang is nearly 100,000 LOC. And we have the constraints of supporting users' production apps in a continuous delivery manner. You should aim for your first few contributions to be small and non-controversial, before trying to design a big feature or product change.