-
Konstantin Schulz authoredKonstantin Schulz authored
Contributing to Machina Callida
We welcome contributions from the community, and want to make contributing to this project as easy and transparent as possible, whether you contribute by
- reporting a bug,
- submitting code,
- proposing a new feature, or
- put yourself forward to become the maintainer,
- ...
Please read these guidelines before contributing. If you have questions about them or want to suggest improvements, please open a new issue.
Development on GitLab
We use GitLab to host source code and documentation, to track issues such as bug reports and feature requests, and to provide Machina Callida downloads to users.
Report a bug or other issues
We track bugs in and issues with Machina Callida, and record proposals of new features, in GitLab issues. You can report a bug, request a feature, or simply ask a question, by opening a new issue. It's easy.
Contribute code or documentation through merge requests
Merge requests are the best way to propose changes to the codebase or the documentation sources. We actively welcome your merge requests:
- Fork this repository.
- Open a new issue describing what you are planning to do. The maintainer will decide and communicate whether your change is a hotfix or a feature.
- Create a
feature
branch (for new functionality) withgit checkout -b "feature/YOUR_BRANCH_NAME_HERE"
,
or ahotfix
branch (for bug fixes) withgit checkout -b "hotfix/YOUR_BRANCH_NAME_HERE"
. - Do your work in this branch.
- If you add code, add tests!
- Update the relevant documentation!
- Test your changes locally!
- Push your branch and create a merge request.
- If your contribution is new functionality, create it against
machina-callida:develop
. - If your contribution is a bug fix, create it against
machina-callida:master
.
- If your contribution is new functionality, create it against
Code review schedules
We perform reviews of all changes to Machina Callida, be they in code, documentation, configuration, etc. Note that we may sometimes not be able to perform reviews right away due to illness, holidays, etc.
License
By contributing code to Machina Callida, you agree that your contributions will be licensed under its Apache License, Version 2.0.
By contributing documentation to Machina Callida, you agree that your contributions will be licensed under its CC0 1.0 Universal (CC0 1.0) license.
Governance
This section describes the decision-making processes for the Machina Callida project, and the roles involved in them.
Roles
In the Machina Callida project, the following roles are defined.
-
Core contributors: Active contributors to the Machina Callida software. The development of Machina Callida is either part of the job description of core contributors, or they are actively making substantial contributions to the project.
-
Maintainer: Machina Callida has a single maintainer. This person is responsible for the development and release workflow of Machina Callida, including project and software documentation and facilitating maintenance transfers, as well as nominating core contributors.
-
Principal investigators: As Machina Callida is research software, the principal investigators are responsible for strategic development of the project.
Decision making
Decisions are usually made by the maintainer, with potential recourse to the core contributors, the principal investigators, or both.