Actually yes, there is a concept of sub-projects, which have their own sets of dependencies, and can contain their own top-level modules. We are using this for our test code – it’s its own project, with its own dependencies, including a dependency on the main package, and contains its own top-level module. By making it a sub-project, we can achieve this while keeping it all in the same git repository, and without including the test-specific dependencies in the main package. Although this technique works decently well, it feels a bit under-developed at the moment. More details in this post.