Development Process

Communication

The majority of the work on Doodle is done by a very small number of people. Hence we have very simple processes for communication. If you are interested in developing some functionality we suggest you either discuss it in an associated issue (if there is one) or on Discord if it doesn't have an issue. If the work is small in scope and well specified, you can just do it and submit a PR. We don't assign issues to people, or have other formalities, because they haven't proven necessary.

Automated Code Checks

The build task in sbt should be run whenever you have finished code that is ready to be pushed to the main repository. As well as compiling code and running tests this command formats code, organizes imports, checks dependencies are up to date, and more. Many of these are checked by CI, and your code will be rejected if the checks do not pass.

Dependencies

We are generally fast to update dependencies, so don't be afraid to add a commit that updates old dependencies if you see any. The build command will tell you if any new versions of dependencies are available.

Testing

Testing is difficult for a project like Doodle, where the output can be hard to capture and automatically assess. Thus we take a layered approach to testing. Small and fast unit tests (usually generative) are great, but to check that output is rendering correctly we have a few other options:

Documentation

New functionality isn't finished until documentation is written.

Implementing Syntax→