Skip to content

Latest commit

 

History

History
130 lines (96 loc) · 4.26 KB

CONTRIBUTING.md

File metadata and controls

130 lines (96 loc) · 4.26 KB

Contributing

This document explains how you can contribute on RCM development.

Type of contributions

You can contribute in may ways:

Report Bugs

You can open a new issue here: https://github.com/RemoteConnectionManager/RCM/issues

Please, include:

  • Your operating system name and version.
  • Your RCM version or your local development environment.
  • If you can, provide detailed steps to reproduce the bug.
  • If you don't have steps to reproduce the bug, just note your observations in as much detail as you can. Questions to start a discussion about the issue are welcome.

Fix Bugs or Implement Features

Look through the GitHub issues for bugs.

Please do not combine multiple feature enhancements into a single pull request.

Write Documentation

Add documentation on development processes, add docstring to the code or help us to write a user guide.

Setting Up Local Development

Install Local Development

  1. Install git and git-flow.

    # Ubuntu
    $ sudo apt update && sudo apt install git gitflow
    # macOS
    ## Install homebrew if necessary (https://brew.sh/)
    $ brew install git git-flow
    # Windows
    > winget install --id Git.Git -e --source winget
    ## Add <Git_opt>/usr/bin to path in order to use patch and git-flow
    > $env:Path = (Join-Path -Path (Split-Path -parent (Split-Path -parent (Get-Command git).source)) -ChildPath "usr/bin")+";"+$env:Path
    ## Make the $env:Path modification permanent
    > [System.Environment]::SetEnvironmentVariable('Path',$env:Path,[System.EnvironmentVariableTarget]::User)
  2. Clone the repository (see How to contribute).

  3. Based on your platform, install the proper version of Python, configure the Python virtual environment and download and extract external packages. You can check the steps from RCM/.github/workflows/main.yaml or use the installation scripts in the RCM/scripts/ci folder.

    # Ubuntu setup
    # Install missing Python dependency libraries and Qt libraries
    $ sudo apt update
    $ sudo apt install libbz2-dev libncurses-dev libssl-dev
    $ sudo apt install qtbase5-dev qt5-qmake qtwayland5
    $ RCM/scripts/ci/setup.sh
    # macOS setup
    $ RCM/scripts/ci/setup.sh
    # Windows setup
    > RCM\scripts\ci\setup.ps1

How to contribute

  1. Fork RCM repo on GitHub (https://github.com/RemoteConnectionManager/RCM/fork).

  2. Clone your fork locally:

    $ git clone [email protected]:<your_name_here>/RCM.git
  3. Start using git-flow by initializing your git repository:

    $ cd ./RCM
    $ git flow init --defaults
  4. Start a new feature based on your contribution:

    $ git flow feature start <your_feature_name>
  5. Publish your feature with command:

    $ git flow feature publish <your_feature_name>

    This is useful if you are developing a feature in collaboration 🤝, if you want to run GitHub workflow 🤖.

  6. Contribute ❤️! You can commit your change with commands:

    $ git commit -a -m "category: My amazing changes"
    $ git push
  7. Submit a pull request through the GitHub website, and wait for the approval 🤞.

  8. [Optional 🧹] Once your request has been accepted, you can delete your feature with the command:

    $ git flow feature delete --remote --force <your_feature_name>

    and/or delete your forked repository from GitHub website.

Contributor Guidelines

Pull Request Guidelines

Before you submit a pull request, check that it meets these guidelines:

  1. The pull request should be contained: if it's too big consider splitting it into smaller pull requests.

  2. Update the CHANGELOG.md, by adding a description of your feature or bug fix.

  3. The pull request must pass all CI/CD jobs before being ready for review.