+ +
+

Adding a project to pySDC (and automatic testing)

+

When you do a project with pySDC we appreciate it if you merge it back to the main repository. +We are committed to keeping your work reproducible and prevent it from fading into oblivion. +To that end, please write extensive tests for your code and add them to the project. +See the contribution guide for general advice on testing etc. +This guide will detail only how to add a project to pySDC.

+
+

Add a directory in ‘pySDC/projects’

+

First, create a new directory in pySDC/projects with the name of your project. +The code of the new project should go into that newly created directory.

+
+
+

Add an environment-file

+

The testing pipeline uses micromamba +and requires an environment file for setup. +This includes the dependencies that are required for your project to run. +The file needs to be named environment.yml and needs to follow the structure shown below:

+
name: pySDC
+channels:
+  - conda-forge
+  - defaults
+dependencies:
+  - numpy
+
+
+

The list of dependencies can be extended as needed. +The name should stay pySDC. The channels cover most of the usual packages. +If a package is needed that cannot be found in those channels by conda (or mamba), +please add the correct channel to the list.

+
+
+

Add tests to the project

+

In order to automatically find the tests of your project, please add the tests to a subdirectory called tests in the directory of your project. +Furthermore, the files should start with test_ and the functions should also start with that. +For more information see the documentation of pytest on test discovery.

+
+
+

Add the project to the continuous integration pipeline

+

To run the tests of all projects in parallel, the projects are explicitly mentioned in the CI-file. +In order to run the tests of your project, please add the name of your project as your directory is named +in the CI-File +in the job project_cpu_tests_linux in the list strategy/matrix/env.

+
+
+

Getting a DOI of pySDC for publication

+

If your project is published and you need a dedicated pySDC version with a DOI, please get in touch with us and/or open a new issue. +We will help you with this as soon as possible. +Note that a final DOI is usually only necessary once a paper is accepted and the final proofs are due. +We strongly encourage to describe and cite the current version of pySDC already during initial submission, though.

+

⬅️ Back to Documenting Code — +⬆️ Contributing Summary — +➡️ Next to a cute picture of cat

+
+
+ + +
+