116 lines
2.8 KiB
Markdown
116 lines
2.8 KiB
Markdown
# Contribution guidelines
|
|
|
|
Strawberry is an free and open-source project, it is possible and encouraged to participate in the development.
|
|
You can also participate by answering questions, reporting bugs or helping with documentation.
|
|
|
|
|
|
## Submitting a pull request
|
|
|
|
You should start by creating a fork of the Strawberry repository using the GitHub
|
|
fork button, after that you can clone the repository from your fork.
|
|
Replace "username" with your own.
|
|
|
|
|
|
### Clone the repository
|
|
|
|
git clone git@github.com:username/strawberry.git
|
|
cd strawberry
|
|
|
|
|
|
### Setup the remote
|
|
|
|
git remote add upstream git@github.com:strawberrymusicplayer/strawberry.git
|
|
|
|
|
|
### Create a new branch
|
|
|
|
This creates a new branch from the master branch that you use for specific
|
|
changes.
|
|
|
|
git checkout -b your-branch
|
|
|
|
|
|
### Stage changes
|
|
|
|
Once you've finished working on a specific change, stage the changes for
|
|
a specific commit.
|
|
|
|
Always keep your commits relevant to the pull request, and each commit as
|
|
small as possible.
|
|
|
|
git add -p
|
|
|
|
|
|
### Commit changes
|
|
|
|
git commit
|
|
|
|
|
|
### Commit messages
|
|
|
|
The first line should start with the name of the class that is changed
|
|
followed by a colon then a short explanation of the commit.
|
|
Don't use a trailing period after the first line.
|
|
If this change affects more than one class, omit the class name and write a
|
|
more general message.
|
|
|
|
You only need to include a main description (body) for larger changes
|
|
where the one line is not enough to describe everything.
|
|
The main description starts after two newlines, it is normal prose and
|
|
should use normal punctuation and capital letters where appropriate.
|
|
It should explain exactly what's changed, why it's changed,
|
|
and what bugs were fixed.
|
|
|
|
An example of the expected format for git commit messages is as follows:
|
|
|
|
```
|
|
StretchHeaderView: Set default section size
|
|
|
|
As of Qt 6.6.1, style changes are resetting the column sizes. To prevent this, we set a default section size.
|
|
|
|
Fixes #1328
|
|
```
|
|
|
|
|
|
### Push the changes to GitHub
|
|
|
|
Once you've finished working on the changes, push the branch
|
|
to the Git repository and open a new pull request.
|
|
|
|
|
|
git push origin your-branch
|
|
|
|
|
|
### Update your fork's master branch
|
|
|
|
git checkout master
|
|
git pull --rebase origin master
|
|
git fetch upstream
|
|
git merge upstream/master
|
|
git push origin master
|
|
|
|
|
|
### Update your branch
|
|
|
|
git checkout your-branch
|
|
git fetch upstream
|
|
git rebase upstream/master
|
|
git push origin your-branch --force-with-lease
|
|
|
|
|
|
### Rebase your branch
|
|
|
|
If you need fix any issues with your commits, you need to rebase your
|
|
branch to squash any commits, or to change the commit message.
|
|
|
|
git checkout your-branch
|
|
git log
|
|
git rebase -i commit_sha~
|
|
git push origin your-branch --force-with-lease
|
|
|
|
|
|
### Delete your fork
|
|
|
|
If you do not plan to work more on Strawberry, please delete your fork from GitHub
|
|
once the pull requests are merged.
|