Contribute

This page will describe how to contribute to the CosmOS open source project.

What does the Code of Conduct mean for me?

Our Code of Conduct means that you are responsible for treating everyone on the project with respect and courtesy regardless of their identity. If you are the victim of any inappropriate behavior or comments as described in our Code of Conduct, we are here for you and will do the best to ensure that the abuser is reprimanded appropriately, per our code.

Few tips for the newcomers

  1. The best that you can do before your first contribution is to try to go through the reference project, see what we use, how we implement features and get an overall overview how things work. During this process we strongly suggest asking any questions in the community discord server.

  2. Next step would be to discuss the feature/idea you want to implement in our community discord server. We will try to answer all your questions and point you in the right direction.

What do I need to know to help?

  1. How to create an issue?
    1. Choose the appropriate repository where the issue should be created.

    2. Be specific with the title, use module or unit name and a short description.

    3. Do not assign the issue to anyone.

    4. Choose a proper label for the contribution issue, currently we use these:
      • Feature means new feature implementation.

      • Improvement means improvement for an already existing feature.

      • Documentation means improvements or additions to documentation.

    5. Choose CosmOS reference project in Projects.

    6. Choose Not planned in Milestone, till we decide in which release we would like to include your issue.

  2. Which workflow do we use?

    In general, we follow the Fork and Pull Request Workflow.

  3. Example workflow:
    1. Find an issue that you are interested in addressing or a feature that you would like to add.

    2. Fork the repository associated with the issue to your local GitHub organization. This means that you will have a copy of the repository under your-GitHub-username/repository-name.

    3. Clone the repository to your local machine using the following command:
      git clone https://github.com/github-username/repository-name.git
      
    4. Create a new branch for your issue using git checkout -b branch-name-issue-number, for instance typos-fix-7.

    5. Make the appropriate changes for the issue you are trying to address or the feature that you want to add.

    6. Use git add insert-paths-of-changed-files-here to add the file contents of the changed files to the “snapshot” git uses to manage the state of the project, also known as the index.

    7. Use git commit -m "Insert a short message of the changes made here" to store the contents of the index with a descriptive message.

    8. Push the changes to the remote repository using git push origin branch-name-here.

    9. Submit a pull request to the upstream repository.

    10. Title the pull request with a short description of the changes made and the issue or bug number associated with your change. For example, you can title an issue like so “Added more log outputting to resolve #4352”.

    11. In the description of the pull request, explain the changes that you made, any issues you think exist with the pull request you made and any questions you have for the maintainer. It’s OK if your pull request is not perfect (no pull request is), the reviewer will be able to help you fix any problems and improve it!

    12. Wait for the pull request to be reviewed by a maintainer.

    13. Make changes to the pull request if the reviewing maintainer recommends them.

    14. Celebrate your success after your pull request is merged!