All of Dolittle repositories should be consistent in naming, structure and folder names. This gives us a higher level of consistency and it makes it easier for us to create cross cutting tools that can be applied to all of our repositories.
As part of a pull request review we look for this consistency and make sure that everything is adhering to this structure.
One of the core principles is the high cohestion principle. Keeping everything that belongs together close applies also to repositories. This is why we keep everything related to a repository within the repository and not separate on its function. An added benefit with that is that it is much easier to adhere to the definition of done.
We do not use short names for folders nor files. Examples you’ll find in other repositories
and might even be considered defacto standard, are things like
src and such.
We believe in things being ubiquitous and have a high focus on readability. Therefor, the
example above would be instead
Below is the structure our repositories follow. All repositories might not have all elements, but this is what is being adhered to.
<Root of repository> │ └─── Documentation └─── Samples └─── Schemas └─── Boilerplates └─── Source
All the documentation, with the exception of except API documentation that is often generated
from source files, must be in the
Documentation folder. Follow the
guide for contributing to the documentation.
All documentation is generated to our official site. Putting things in here in the excepted format and structure, it will end up eventually on the documentation site.
Samples that show concrete examples directly linked to what the repository represents,
should be in the
Samples folder. If there are multiple samples, these should have
folders named in a way that makes it self explanatory for what they show within the
If the project exposes JSON formats that one wants to have published to the Schema Store,
they should be located in the
Some projects has boiler plates that they use to make it easier for developers to get started.
This is typically used by the Dolittle Tooling.
All boiler plates should be in the
BoilerPlates folder at the root of the project.
All source representing the purpose of the repository, except samples, should be within the Source folder.