preprocessing/CONTRIBUTING.md
2025-12-15 13:47:28 +01:00

4.2 KiB

Contributing to preprocessing

Thank you for considering contributing to preprocessing! Your input helps make this package robust, reliable, and extensible for the community.

Please follow these guidelines to ensure a smooth and constructive contribution process.

How to contribute

1. Clone your fork

Clone the repository from your own GitHub account to your local machine:

git clone https://gitea.iwm-tuebingen.de/AG4/preprocessing.git
cd preprocessing

2. Create a feature branch

Create a new branch for the changes you intend to make. This keeps your modifications separate from the main branch.

git checkout -b feature/your-feature-name

Please ensure that your branch name is descriptive of the changes you are making, such as feature/calculation-of-subscales or bugfix/fix-data-validation.

3. Make your changes

  • Implement your changes in the appropriate files inside src/.
  • Update or create tests under tests/ as needed.

4. Format and lint your code

Ensure that your code is correctly formatted and adheres to project style guidelines. This helps maintain code consistency across the repository.

Note that black for formatting and ruff for linting and the pytest tests should all be run via a pre-commit hook. In order to do this, you need to set pre-commit up in your local repository (it should be installed via the dev dependencies already).

To set up pre-commit, run the following command in your terminal:

pre-commit install

If you need to run it for existing code, you can do so running

pre-commit run --all-files

This will automatically format and lint your code according to the project's standards.

For manual checks and formatting:

Format the code using black:

black .
ruff check
ruff check --fix
ruff format

These tools are included in the [project.optional-dependencies.dev] section of pyproject.toml. To install them for development, use:

pip install -e .[dev]

5. Run the tests

Ensure that all tests pass before submitting your changes. We use pytest for testing.

pytest

If any tests fail, fix the issues before proceeding.

6. Commit your changes

Once you are satisfied with your changes, commit them to your feature branch:

git add .
git commit -m "Add your commit message here"

Make sure to write a clear and concise commit message that describes the changes you made.

7. Push your changes

Push your changes to your branch:

git push origin feature/your-feature-name

8. Create a Pull Request (PR)

Navigate to the main repository and open a pull request (PR) to the main branch. The PR should describe the changes you made and why they are useful.

  • Be sure to include a clear, concise description of your changes in the PR.
  • If applicable, link to relevant issues in the PR description.

9. Review Process

After submitting your PR, a maintainer will review your changes. The review process may involve:

  • Asking for changes or clarifications.
  • Reviewing code style, formatting, and test coverage.
  • Discussing the approach or implementation.

Once your PR is approved, it will be merged into the main branch.

Pull Request Guidelines

  • Include tests: Ensure that your changes come with appropriate test coverage.
  • Follow coding standards: Follow the code style and formatting guidelines outlined in the project.
  • Single feature per PR: Each PR should address a single feature or bug fix.
  • Small, focused PRs: Keep your PRs small and focused to make reviewing easier.

Reporting Bugs

If you find a bug in the software:

  • Search existing issues: Before opening a new bug report, check if the issue has already been reported.
  • Open a new issue: If the issue hasn't been reported yet, open a new issue with the following information:
    • A clear description of the problem.
    • Steps to reproduce the issue.
    • Expected behavior vs. actual behavior.
    • Any error messages or logs.

License

By contributing, you agree that your contributions will be licensed under the same license as the project.