Skip to content

Commit

Permalink
Merge pull request #12631 from RasaHQ/update-contributing-guides
Browse files Browse the repository at this point in the history
Update contributing guides
  • Loading branch information
m-vdb authored Aug 11, 2023
2 parents 491a392 + d37dcb4 commit 668e21c
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 36 deletions.
60 changes: 27 additions & 33 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [How to open a GitHub issue & file a bug report](#how-to-open-a-github-issue--file-a-bug-report)
- [Working on a new feature or filing a bug report](#working-on-a-new-feature-or-filing-a-bug-report)
- [How to open a Jira issue & file a bug report](#how-to-open-a-jira-issue--file-a-bug-report)
- [Working on an improvement or fixing a bug](#working-on-an-improvement-or-fixing-a-bug)
- [Working on an existing feature](#working-on-an-existing-feature)
- [How to open a GitHub Pull Request](#how-to-open-a-github-pull-request)
- [What is a Pull Request (PR)?](#what-is-a-pull-request-pr)
Expand All @@ -30,31 +30,25 @@

---

## How to open a GitHub issue & file a bug report
## How to open a Jira issue & file a bug report

### Working on a new feature or fixing a bug
### Working on an improvement or fixing a bug

If you would like to add a new feature or fix an existing bug, we prefer that you open a new issue on the Rasa repository before creating a pull request.
If you would like to add an improvement or fix an existing bug, we prefer that you open a new issue on [Jira](https://rasa-open-source.atlassian.net/browse) before creating a pull request.

It’s important to note that when opening an issue, you should first do a quick search of existing issues to make sure your suggestion hasn’t already been added as an issue.
If your issue doesn’t already exist, and you’re ready to create a new one, make sure to state what you would like to implement, improve or bugfix. We have provided templates to make this process easier for you.

**To open a Github issue, go to the RasaHQ repository, select “Issues”, “New Issue” then “Feature Request” or “Bug Report” and fill out the template.**

![](https://www.rasa.com/assets/img/contributor-guidelines/opening-new-issue.png)
If your issue doesn’t already exist, and you’re ready to create a new one, make sure to state what you would like to implement, improve or bugfix.

The Rasa team will then get in touch with you to discuss if the proposed feature aligns with the company's roadmap, and we will guide you along the way in shaping the proposed feature so that it could be merged to the Rasa codebase.

### Working on an existing feature

If you want to contribute code, but don't know what to work on, check out the Rasa contributors board to find existing open issues.
If you want to contribute code, but don't know what to work on, check out the [Jira board](https://rasa-open-source.atlassian.net/browse) to find existing open issues.

The issues are handpicked by the Rasa team to have labels which correspond to the difficulty/estimated time needed to resolve the issue.

**To work on an existing issue, go to the contributor project board, add a comment stating you would like to work on it and include any solutions you may already have in mind.**

![](https://www.rasa.com/assets/img/contributor-guidelines/exiting-issue-sara.png)

Someone from Rasa will then assign that issue to you and help you along the way.

---
Expand All @@ -73,7 +67,7 @@ This process is used by both Rasa team members and Rasa contributors to make cha

#### Opening issues before PRs

We usually recommend opening an issue before a pull request if there isn’t already an issue for the problem you’d like to solve. This helps facilitate a discussion before deciding on an implementation. See How to open a GitHub issue & file a bug report.
We usually recommend opening an issue on [Jira](https://rasa-open-source.atlassian.net/browse) before a pull request if there isn’t already an issue for the problem you’d like to solve. This helps facilitate a discussion before deciding on an implementation.

#### Draft PRs

Expand All @@ -85,35 +79,35 @@ If your PR is greater than 500 lines, please consider splitting it into multiple

#### Code style

To ensure a standardized code style we recommend using formatter black. To ensure our type annotations are correct we also suggest using the type checker `mypy`.
To ensure a standardized code style we ask you to follow our [Code Style guidelines](https://github.com/RasaHQ/rasa/blob/main/README.md#code-style).

#### Formatting and Type Checking

If you want to automatically format your code on every commit, you can use pre-commit. Just install it via `pip install pre-commit` and execute `pre-commit install` in the root folder. This will add a hook to the repository, which reformats files on every commit.

If you want to set it up manually, install black via `pip install -r requirements-dev.txt.` To reformat files execute `make formatter`.
If you want to manually format your code, install `black` using `poetry install`. To reformat files execute `make formatter`.

If you want to check types on the codebase, install `mypy` using `poetry install`. To check the types execute `make types`.
If you want to manually check types on the codebase, install `mypy` using `poetry install`. To check the types execute `make types`.

The CI/CD tests that we run can be found in the [continous-integration.yml](https://github.com/RasaHQ/rasa/blob/main/.github/workflows/continous-integration.yml) file.
The CI/CD tests that we run can be found in the [continous-integration.yml](https://github.com/RasaHQ/rasa/blob/main/.github/workflows/continous-integration.yml) file.

---

## How to open a PR and contribute code to Rasa Open Source

#### 1. Forking the Rasa Repository
### 1. Forking the Rasa Repository

Head to Rasa repository and click ‘Fork’. Forking a repository creates you a copy of the project which you can edit and use to propose changes to the original project.

![](https://www.rasa.com/assets/img/contributor-guidelines/fork.png)

Once you fork it, a copy of the Rasa repository will appear inside your GitHub repository list.

#### 2. Cloning the Forked Repository Locally
### 2. Cloning the Forked Repository Locally

To make changes to your copy of the Rasa repository, clone the repository on your local machine. To do that, run the following command in your terminal:

```
```bash
git clone https://github.com/your_github_username/rasa.git
```

Expand All @@ -123,41 +117,41 @@ The link to the repository can be found after clicking Clone or download button

Note: this assumes you have git installed on your local machine. If not, check out the [following guide](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) to learn how to install it.

#### 3. Update your Forked Repository
### 3. Update your Forked Repository

Before you make any changes to your cloned repository, make sure you have the latest version of the original Rasa repository. To do that, run the following commands in your terminal:

```
```bash
cd rasa
git remote add upstream git://github.com/RasaHQ/rasa.git
git pull upstream main
```

This will update the local copy of the Rasa repository to the latest version.

#### 4. Implement your code contribution
### 4. Implement your code contribution

At this point, you are good to make changes to the files in the local directory of your project.

Alternatively, you can create a new branch which will contain the implementation of your contribution. To do that, run:

```
```bash
git checkout -b name-of-your-new-branch
```

#### 5. Push changes to your forked repository on GitHub
### 5. Push changes to your forked repository on GitHub

Once you are happy with the changes you made in the local files, push them to the forked repository on GitHub. To do that, run the following commands:

```
```bash
git add .
git commit -m ‘fixed a bug’
git push origin name-of-your-new-branch
```

This will create a new branch on your forked Rasa repository, and now you’re ready to create a Pull Request with your proposed changes!

#### 6. Opening the Pull Request on Rasa Open Source
### 6. Opening the Pull Request on Rasa Open Source

Head to the forked repository and click on a _Compare & pull_ request button.

Expand All @@ -180,24 +174,24 @@ Once you are happy with everything, click the _Create pull request_ button. This

![](https://www.rasa.com/assets/img/contributor-guidelines/openpr-3.png)

#### 7. Signing the Contributor Licence Agreement (CLA)
### 7. Signing the Contributor Licence Agreement (CLA)

To merge your contributions to the Rasa codebase, you will have to sign a Contributor License Agreement (CLA).

It is necessary for us to know that you agree for your code to be included into the Rasa codebase and allow us to use it in our later releases. You can find a detailed Rasa Contributor Licence Agreement [here](https://cla-assistant.io/RasaHQ/rasa).

#### 8. Merging your PR and the final steps of your contribution
### 8. Merging your PR and the final steps of your contribution

Once you sign the CLA, a member from the Rasa team will get in touch with you with the feedback on your contribution. In some cases, contributions are accepted right away, but often, you may be asked to make some edits/improvements. Don’t worry if you are asked to change something - it’s a completely normal part of software development.

If you have been requested to make changes to your contribution, head back to the local copy of your repository on your machine, implement the changes and push them to your contribution branch by repeating instructions from step 5. Your pull request will automatically be updated with the changes you pushed. Once you've implemented all of the suggested changes, tag the person who first reviewed your contribution by mentioning them in the comments of your PR to ask them to take another look.
Finally, if your contribution is accepted, the Rasa team member will merge it to the Rasa codebase.

#### 9. Share your contributions with the world!
### 9. Share your contributions with the world!

Contributing to open source can take a lot of time and effort, so you should be proud of the great work you have done!
Let the world know that you have become a contributor to the Rasa open source project by posting about it on your social media (make sure to tag @RasaHQ as well), mention the contribution on your CV and get ready to get some really cool [Rasa contributor swag](https://blog.rasa.com/announcing-the-rasa-contributor-program/)!

#### 10. Non-code contributions
### 10. Non-code contributions

Contributing doesn’t start and end with code. You can support the project by planning community events, creating tutorials, helping fellow community members find answers to their questions or translating documentation and news. Every contribution matters! You can find more details [on our website](https://rasa.com/community/contribute/).
Contributing doesn’t start and end with code. You can support the project by planning community events, creating tutorials, helping fellow community members find answers to their questions or translating documentation and news. Every contribution matters! You can find more details [on our website](https://rasa.community/contribute/).
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@ We are very happy to receive and merge your contributions into this repository!

To contribute via pull request, follow these steps:

1. Create an issue describing the feature you want to work on (or
have a look at the [contributor board](https://github.com/orgs/RasaHQ/projects/23))
2. Write your code, tests and documentation, and format them with ``black``
1. Create an issue describing the bug/improvement you want to work on or pick up an
existing issue in [Jira](https://rasa-open-source.atlassian.net/jira/software/c/projects/OSS/boards/1)
2. Follow our Pull Request guidelines: write code, test, documentation, changelog and follow our [Code Style](#code-style)
3. Create a pull request describing your changes

For more detailed instructions on how to contribute code, check out these [code contributor guidelines](CONTRIBUTING.md).
Expand Down

0 comments on commit 668e21c

Please sign in to comment.