How to Organize a Repository ?ΒΆ

It is important to have a common structure shared between all repositories. Yet, this is not currently a rule written in stone since this has not yet been really discussed. However, here is the current structure emerging from actual repositories

Directory

Description

/

Repository root directory

/etc

Essential files that need to be available for maintainers

/etc/conda

Conda recipes for generating Conda binaries

/etc/docker

Docker contexts for generating Docker images

/doc

Essential files that need to be available for documenters

/share

Essential files that need to be available for users

/share/git

Git sub-modules that need to be available for users

/share/jupyter

Jupyter notebooks that need to be available for users

/src

Essential files that need to be available for developers

/src/cpp

C++ source code files

/src/cpp/SConscript

SCons configuration file for the C++ library installation

/src/py

Python source code files

/src/py/wrapper

Boost.Python source code for interfacing the C++ library with Python

/src/py/wrapper/SConscript

SCons configuration file for the C++/Python binding library generation

/test

Test files

/travis.yml

Travis CI configuration file

/.travis.yml

A symbolic link to the Travis CI configuration file

/appveyor.yml

Appveyor CI configuration file

/SConstruct

SCons general configuration file