How to Contribute#

Thank you for your interest in contributing to [PyAML]! This document outlines how you can help, whether you’re fixing bugs, adding features, improving documentation, or participating in community discussions.

Ways to Contribute#

1. Reporting Issues#

  • Bugs & Feature Requests: Open an issue on GitHub. Use clear titles and provide as much detail as possible (steps to reproduce, expected/actual behaviour, screenshots, etc.).

  • Use an issue template if it is applicable to you. Don’t forget to assign an issue to a project and set the status of the issue to TODO.

  • Before Submitting: Check existing issues to avoid duplicates.

2. Working on Tasks#

  • Kanban Board: We use GitHub Projects to manage tasks. Each column represents a stage in the workflow (e.g., “To Do”, “In Progress”, “Review”, “Done”).

  • Claiming a Task: Comment and assign yourself on the issue or card to let others know you’re working on it. Move the card to “In Progress”.

  • Part-time Contributors: It’s okay to work at your own pace. Just keep the community updated on your progress.

3. Submitting Changes#

  • Fork & Branch: Fork the repo and create a branch for your changes.

  • Commits: Write clear, atomic commit messages. Reference the issue number if applicable.

  • Formatting: Ensure your code adheres to the project’s style guidelines. Run tests locally before submitting. It is recommended to use pre-commit hooks for this purpose. Sometimes pre-commit hook will block you committing due to formatting issues. They may be fixed automatically or require manual intervention. If they are fixed automatically just re-stage the files and commit again. If manual intervention is required, please follow the instructions provided by the pre-commit tool.

  • Pull Requests (PRs):

    • Open a PR against the main branch.

    • Include a description of your changes and reference the relevant issue.

    • Ensure your code follows the project’s style and passes all tests.

    • A maintainer will review your PR and may suggest changes.

Releasing a new version on PyPi#

  1. Create a branch for a release

  2. Provide a list of changes and release description in the merge request. Justify a version bump is necessary.

  3. Tag the corresponding version.

  4. Approve and merge the PR.

  5. CI/CD will take care of PyPi release. (Make sure the version in CI/CD deployment pipeline matches the one you just tagged.)

4. Documentation#

Community & Meetingss#

Community Meetings#

  • Schedule: Once every few months.

  • Agenda: Discuss project direction, upcoming features, and community questions.

  • How to Join: Write an email to the steering committee of PyAML pyaml-steering-committee-contact@esrf@fr. They will add you to the email list.

  • Mattermost link: Mattermost

Developer Meetings#

  • Schedule: Bi-weekly, alternating with community meetings.

  • Focus: Technical discussions, code reviews.

  • How to Join: Write an email to the steering committee of PyAML pyaml-steering-committee-contact@esrf@fr. They will add you to the email list.

Getting Help#

  • Questions? Open a discussion on GitHub or ask in our Mattermost channel.

  • Need Guidance? Reach out to a maintainer or attend a maintainer or community meeting.

Recognition#

  • All contributions are valued and recognised. Significant contributions may be highlighted in release notes or on the project website.