Skip to content

Latest commit

 

History

History
70 lines (48 loc) · 5.17 KB

CONTRIBUTING.md

File metadata and controls

70 lines (48 loc) · 5.17 KB

Contributing to Indico

Contributing to Indico can mean so much more than writing code! There are many other activities you can help with, all of them no less important than writing some amazing Python code or a shiny React component. This is a list of the main ways in which you can help us.

Bug hunting

  • 🪲 Have you found a bug? Do you have a feature to suggest?
    • First of all, check whether there isn't already a similar issue;
    • If not, open a GitHub issue;
    • Please, follow the default templates we provide, they make things much easier!
  • 🚨 Have you found a security issue? → E-mail us at [email protected]

Translation 🌏

Would you like to to help us translate Indico to your language?

Documentation 📝

  • ❌ Have you found a typo, mistake, wrong information or an outdated screenshot?
  • 💪 Do you think you can help us write better documentation or document a part of Indico that is not documented at all?
  • Contact us at [email protected], so that we can get things started!

Code 🔧

  • Have you got a particular ticket in mind? Answer to it letting us know that you would like to help. We will be glad to discuss a possible implementation approach with you.
  • Would you like to help but you're not sure with what? Look for issues with the help wanted tag and choose one that suits your experience with Indico and the technologies we use. Then, let us know you'd like to help with it (by answering to it)!
  • Please always ping us before you start working on something that you believe will take a significant amount of time!

Making a Pull Request

⚠️When submitting a Pull Request to this project for something more than a typo or small bug, please make sure your idea was discussed beforehand with the development team, via an issue or the forum.

Open Source is about contributing back, but it's important to know how to do it in the best way possible. We don't want you to spend your precious time in a "ping-pong" of code reviews that will end up not being fun. We also want to maximize the chances that your contribution will already be done in the "Indico way" and following what we consider good practices.

This checklist is meant to help you follow those practices:

  • 🌕 Make sure your code is complete:

    • Have you added docstrings to newly created classes?
    • Have you added jsdoc strings to new React components?
    • Have you added code comments in parts that are harder to understand?
    • Have you checked that you haven't forgotten to add any newly created files to the Git repo?
    • Have you added unit tests to trickier parts of the Python code?
  • ✅ Make sure your code has no errors:

    • Code style and formatting - have you run eslint, flake8 and pydocstyle (or the pre-commit hook)?
    • Regressions - have you tried running the unit tests? (pytest)
  • 📢 Make sure others understand what has changed:

    • Log any feature changes and bug fixes in CHANGES.rst (changelog for developers)
    • Update the documentation if needed
    • Check that your contribution is split in logically separate commits (one commit for one thing);
    • Check that your commit messages are clear and contain no typos. The subject message should be in the imperative mood;
  • ⚖️ Make sure you have the right to contribute what you want to contribute. It should be either:

    • original work OR
    • properly attributed and in accordance with the original license. Please note that you cannot include any GPL/AGPL code!

Code of Conduct

Indico is a CERN project and is thus subject to CERN's Code of Conduct. Outside contributors are expected to act in accordance with the principles of the CoC that apply to them. The development team commits to ensuring that CERN's values are respected and reserves the right to suspend from the community any contributors that are found to be engaged in harmful behaviour. Personal attacks or any other form of harassment will not be tolerated.