Contributing to SympLab
1. Thank you
First off, thank you for taking the time to contribute!
We welcome contributions from researchers, software engineers, data scientists, and anyone enthusiastic about open science. Whether you are fixing a typo in the documentation, suggesting a new scientific feature, or optimization in the code, your help is highly appreciated.
As an open science project, our workflow and legal framework are designed to protect the scientific commons we build together. Please read this guide to understand how to get started.
2. Our Philosophy: Model-First Architecture
Before writing any code, it is essential to understand the novelty of this application:
- The Scientific Semantic Model: The core scientific value of this project is a language-agnostic, conceptual model that defines digital scientific experiments. This model is declared and standardized within our JSON schemas.
- The Software Implementation: Once a definition is fully established in the JSON schemas, it is implemented in Python (our current target language).
This decoupled procedure allows the scientific definition to exist independently of the programming language, making it future-proof for potential future implementations (e.g., Rust, TypeScript, C++).
- Contributing to definitions/documentation/examples impacts the core model under the CC BY-SA 4.0 license.
- Contributing to Python code impacts the software execution under the AGPLv3-or-later license.
3. Legal Requirement: Contributor License Agreements (CLA)
To accept your contributions, our automated system requires a valid Contributor License Agreement (CLA). This ensures that the scientific model remains portable, free, and open forever, preventing proprietary hijacking.
1. Individual Contributors (ICLA)
If you are contributing on your personal time as an independent developer, you will need to sign our Individual CLA.
- How to sign: Simply open your Pull Request. Our automated CLA-Assistant bot will comment on your PR. Click the link provided, log in with your GitHub/GitLab account, and click “Accept”.
2. Public Researchers & Institutional Agents (CCLA)
If you are a researcher, professor, or engineer contributing as part of your job (e.g., at CNRS, INRIA, a public university, or any international research institute):
- Under many jurisdictions (such as French Intellectual Property Code Art. L113-9), the economic rights of your work belong to your employing institution.
- How to sign: Your laboratory or university must sign our Corporate/Institutional CLA (CCLA). Please check our README_CLA.md for details or open an administrative Issue so we can send the template directly to your legal or technology transfer department.
4. How to Contribute
1. Discuss First
For significant changes, structural modifications to JSON schemas, or new features, please open an Issue first. Discussing your scientific or technical approach beforehand saves time and ensures alignment with the project’s roadmap.
2. Technical Workflow
- Fork the repository and create your branch from
main(e.g.,feature/scientific-use-caseorfix/schema-typo). - If modifying the scientific framework, update the JSON schemas first.
- Implement or update the corresponding Python code.
- Write or update tests for your changes.
- Ensure your code complies with our style guides (linting, formatting).
3. Submitting a Pull Request (PR)
- Keep your PR focused on a single topic.
- Provide a clear description of the scientific rationale or technical fix.
- Link the PR to the relevant open Issue.
- Complete the automated CLA signature step once the bot comments on your PR.
5. Code of Conduct & Licenses
By contributing to this project, you agree that your contributions will be licensed under:
- GNU Affero General Public License v3.0 or later (AGPLv3+) for all functional software code.
- Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) for all JSON schemas, structural definitions, documentation, and examples.
Thank you for supporting open, reproducible, and standardized digital science!