srs/trunk/3rdparty/srs-docs/pages/how-to-file-pr-en.md
2025-06-27 07:23:45 -04:00

131 lines
3.5 KiB
Markdown

# HowToFilePR
Thank you for your PR, please follow this guide.
## Rules
* Never use your `develop` branch, use `bugfix/bug-summary` for each PR.
* Don't close PR when update, only update the branch `bugfix/bug-summary`, simple enough.
* Be focus, one PR fixes exactly one bug/feature, without any noise like space or dead codes.
* Please study [Pro Git](https://git-scm.com/book/en/v2), it's a very important and basic skill for open-source developer.
## File New PR
The workflow to patch `develop` or any other branches:
[![Workflow](/img/HowToFilePR.png)](https://www.figma.com/file/5yAeoq2r3wwrXZwq1f93UH/How-to-File-PR-to-SRS)
**Step 1:** Fork SRS
Open [ossrs/srs](https://github.com/ossrs/srs), click `Fork` to your repository.
**Step 2:** Clone your repository
```
git clone git@github.com:your-account/srs.git
git checkout -b master origin/master
cd srs
```
> Note: You should setup your git `user.name` and `user.email`.
**Step 3:** Add a remote srs
```
git remote add srs https://github.com/ossrs/srs.git
git fetch srs
```
**Step 4:** Sync with remote before each PR
```
git fetch --all
```
**Step 5:** Checkout a new branch from srs
```
git checkout -b bugfix/bug-summary srs/develop
```
> Note: Please name your branch, by summary of bug, for example `bugfix/rtc-listen-ipv6`
**Step 6:** Update and push to your repository
```
git push -u origin bugfix/bug-summary
```
> Note: Please use English in code, logs, commit and other text.
**Step 7:** File a [PR](https://github.com/ossrs/srs/compare) from your `bugfix/bug-summary` to SRS `develop`
> Remark: Please check the `Allow edits and access to secrets by maintainers`, so we could update the PR.
## Update Your PR
After review, you might need to update your PR:
```
git checkout bugfix/bug-summary
git commit -am 'Description for update'
git push
```
> Note: Don't file a new PR, what you need to do is to commit to your branch, the PR will be updated automatically by GitHub.
## Setup Your Email
Please setup your [GitHub: Email](https://github.com/settings/emails), please **DONOT** select the `Keep my email addresses private`, which makes the commit with strange email address.
And setup user for `git commit` by:
```bash
cd ~/git/srs
git config --local user.name "username"
git config --local user.email "useremail@xxx.com"
git config --list
```
Please setup these settings to ensure you're in the [SRS: Contributors](https://github.com/ossrs/srs/graphs/contributors).
## TOC: Update PR
Generally, TOC who has write access to SRS also are able to update the PR, please read [this post](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork).
Let's take a example of [PR #2908](https://github.com/ossrs/srs/pull/2908):
* Title: `SRT: url supports multiple QueryStrings`
* Fork: `https://github.com/zhouxiaojun2008/srs/tree/bugfix/fix-srt-url`
* Branch: `bugfix/fix-srt-url`
**Step 1:** Add a remote of PR fork, use SSH to clone the fork repository.
```bash
git remote add tmp git@github.com:zhouxiaojun2008/srs.git
```
**Step 2:** Update the fork repository, to get the branch.
```bash
git fetch tmp
```
**Step 3:** Now we got the branch of PR, switch to it.
```bash
git checkout bugfix/fix-srt-url
```
**Step 4:** Please update the branch, then push to the fork repository.
```bash
git push tmp bugfix/fix-srt-url
```
The PR should be updated automatically.
![](https://ossrs.io/gif/v1/sls.gif?site=ossrs.io&path=/lts/pages/how-to-file-pr-en)