The CodebaseΒΆ
Before diving deeper into the code, it is useful to see how the source code is organized.
Starting from the root, we see three directories:
project, where the build definition files are located.scripts, where helper scripts are located.sentinelandsentinel-lumc, where the actual source code files are located.sentinelis meant to contain the sentinel core code, whilesentinel-lumccontains code specific to LUMC pipelines. Each of these directories contain a directory calledsrcthat points to the actual source code.
Inside each src, we see four more directories. This may look unusual if you come from a Java background, less-so if
you are already used to Scala. They are:
main, where the main source files are located.test, where unit tests are defined.it, where integration tests are defined.sphinx, where the raw documentation source files are located.
From here on, you should already get a good grip on the contents of the deeper level directories. Some are worth noting, for reasons of clarity:
test/resourcescontains all test files and example run summaries used for testing. It is symlinked toit/resourcesto avoid having duplicate testing resources.main/resourcescontains run-time resource files that are loaded into the deployment JAR. In most cases, these are pipeline schema files.main/webapp/api-docscontains a distribution copy of the swagger-ui package. The package is also bundled into the deployment JAR, to help users explore the Sentinel APIs interactively.