Skip to content

Latest commit

 

History

History
137 lines (107 loc) · 5.44 KB

CONTRIBUTING.md

File metadata and controls

137 lines (107 loc) · 5.44 KB

Contribution Guide

Firstly, thank you for considering making a contribution to our project! It's people like you that make Operation Code such a great community.

We're an open source project and we love receiving contributions from our community - you! There are many ways to contribute to our projects, from writing tutorials or blog posts, improving documentation, submitting bug reports or feature requests, or writing code which can be merged into any of our repositories.

The team at Operation Code urges all contributors to join our Slack team. Participating in discussions with the community on our Slack channel is the best way to run new ideas by the team, and is the best place to get help. You can get an invitation to our Slack channel by requesting to join Operation Code. Once in our Slack team, simply type: '/open #oc-python-projects' and then click enter. Feel free to ask for help; everyone is a beginner at first 😸!

This guide assumes that you have some at least some familiarity with submitting a pull request on Github. If you don't, that's ok too. Simply start by reading Github's own user documentation on how to fork a repository, and make your own edits. That documentation is here and here. 3rd party tutorials on Git/Github can be found here and here.

Development Workflow

Dependencies

The primary technologies used in this project are:

To work on the codebase for this project, you will need to have those dependencies installed.

Dependency Installation

  1. Docker
    1. Windows: Docker on Windows can be installed via Docker Desktop.
    2. Mac OS: Docker on Mac OS can be installed via Docker Desktop or via Homebrew by doing (brew install docker).
    3. Linux: Depending on your Linux distribution (cat /etc/os-release), you can use your package manager on board typically to install Docker. Ex. apt-get install docker (if Ubuntu/Debian).
  2. Docker Compose
    1. Windows: If installed via Docker Desktop, it will include docker-compose. Try to run docker-compose version on commandline.
    2. Mac OS: Similar to above, if installed via Docker Desktop, it will include docker-compose. If using Homebrew please do brew install docker-compose.
    3. Linux: Please follow instructions at the Linux tab here. Linux has shell autocompletions available which are very helpful.

Dependency Resources

Cheatsheets

Cheatsheets are a nice way to get an high at-a-glance view of the technology/tool. It's a very nice way to ramp up quickly with specific tooling.

Finding An Issue

Click to Expand
  • After installing the listed dependencies, you can get to work coding on this project. A listing of this repo's issues can be found here. Browse for an issue that you would like to work on. Don't be afraid to ask for help or clarification.
  • Once you have found an issue, leave a comment stating that you'd like to work on the issue. Once the issue is assigned to you, you may start working on it.

Working On Your Issue

Click to Expand
  • After forking this repository to your own github account, and cloning it to your dev environment, you can now create a new branch on your machine. It's wise to name this branch after the issue you are trying to fix or the feature you are trying to add.

    git checkout -b creatingContributionGuide
  • In the example above, I have created a new branch, named "creatingContributionGuide". This command also "checks out" the branch, meaning git now knows that is the branch you are working on. You can check what branch you are working on by using the branch command.

    git branch
  • Following my example, git branch, would output "creatingContributionGuide" in my terminal.

  • Once you have finished working on your issue, push your changes to your own github repo, and then submit a pull request.

  • To return to your main master branch, type the following command in your terminal.

    git checkout master

Before committing, please lint your code:

make lint