ESCAPE template project
An example of software project template for the ESCAPE 2020 European project
Cite this software
Description
template_project_escape
Content
- About this project
- Licensing
- Contribute to the ESCAPE OSSR
- Install
- Report an issue or ask a question
- Contact
- Citing this project
- Examples contained in this project
About this project
A simple template project to provide software to ESCAPE.
This repository shows the basic content that should be included in a project (following the opensource guide):
- An open source license.
- A README file, similar to this one.
- Contributing guidelines.
- See below the general guidelines for the ESCAPE repository.
- A code of conduct.
- Check why is a good idea to add one.
- The repository itself.
It would be highly suitable to include too:
- A setup file as well as the basic commands to install the library (see below).
- A
.gitignorefile. - Unitary and integration tests, and ideally a CI pipeline.
Please feel free to clone / fork / template this project! (For example, look to left of the
Clone or download button in the GitHub site).
- For a detailed explanation of how to submit a contribution to a project / repository (Fork, create a branch, make a pull request...), you can have a look to the opensource guide and/or the git's documentation.
- Not that if you have login GitLab by using the
[Shibbolenth]service (eduGAIN, Fédération d'Identités RENATER), you will need to add a SSH key to your GitLab profile if you want to 'push' your changes to the server.
License
Portions of this code are based on the GitLab-CI project (repository link,
Zenodo link and DOI) held by a
BSD 3-Clause License. You can check the complete license text
here.
License of the template_project_repository:
The template_project_repository contains code from a third party project. This 'mixing' can be done because:
- Both 'parent' projects are Open Source.
- None of the original licenses are copy-left.
- Both
BSD 3-ClauseandMIT, are permissive licenses. This means that source code distributed with a BSD 3-Clause license can be included in a project with a MIT license and be re-distributed underMIT:- Note however, that the original licenses must be included in the resulting project and mentioned in the LICENSE/documentation files.
PLEASE TAKE THE TIME TO CHECK AND VERIFY LICENSES AND THEIR COMPATIBILITIES
Contribute to the ESCAPE OSSR
If you want to provide software to the ESCAPE repository:
-
Check the ESCAPE OSSR guidelines.
- For ESCAPE members, follow the steps detailed in the onboarding project to finalise your contribution and the same onboarding process.
-
All the code provided should be uploaded to the Zenodo ESCAPE community.
-
Check the following tutorial on how to publish content in Zenodo, and how to automatise the upload of each new release of your project.
Install
Example of how to show installing instructions (and indeed the way to install this project).
$ git clone https://gitlab.in2p3.fr/escape2020/wp3/template_project_escape.git
$ cd template_project_escape
$ pip install .
Report an issue / Ask a question
Use the GitLab repository Issues.
Contact
Email to vuillaume [at] lapp.in2p3.fr / garcia [at] lapp.in2p3.fr.
Citing
Example of citing (as well as the DOI to cite this project),
In case of citing this repository, use the following DOI:
Do not forget to include your code / container into the Zenodo ESCAPE community.
- Note that a DOI will be assigned in the moment create a new record/entry in Zenodo.
Examples contained in this project
1. How to automatise the building of a Singularity image and upload it to Zenodo using the GitLab-CI
A working example of how to automatise the GitLab-CI to;
- create a Singularity image / container of your code,
- make it available as a downloadable artifact within your project and
- upload it to the ESCAPE OSSR,
can be found in the .singularityci, and Singularity directories and in the .gitlab-ci.yml file - the
build_singularity_image stage. Please read carefully all the README files.
For an easy example of how to create a Singularity receipt from scratch (and its corresponding container when executed),
please have a look to the singularity_utils directory.
2. How to automatise the building of a Docker container and upload it to the GitLab Container Registry
An example can be found in the Docker directory and in the .gitlab-ci.yml file - the
build_docker_image stage.