65 lines
3.1 KiB
Markdown
65 lines
3.1 KiB
Markdown
Contributing to PandaCord
|
||
==========================
|
||
This file explains how to deal with patch based projects, using the provided scripts.
|
||
This documentation is based on Waterfall’s CONTRIBUTING.md
|
||
|
||
## Understanding Patches
|
||
Patches to PandaCord are very simple, but center around the directory 'PandaCord-Proxy'
|
||
|
||
Assuming you already have forked the repository:
|
||
|
||
1. Pull the latest changes from the main repository
|
||
2. Type `./pandacord p` in git bash to apply the changes from upstream
|
||
3. cd into `PandaCord-Proxy` for proxy changes
|
||
|
||
This directory is not a git repository in the traditional sense:
|
||
|
||
- Every single commit in PandaCord-Proxy is a patch.
|
||
- 'origin/master' points to a directory similar to PandaCord-Proxy but for PandaCord
|
||
- Typing `git status` should show that we are 10 or 11 commits ahead of master, meaning we have 10 or 11 patches that PandaCord, Waterfall, and Bungeecord don't
|
||
- If it says something like `212 commits ahead, 207 commits behind`, then type `git fetch` to update PandaCord
|
||
|
||
## Adding Patches
|
||
Adding patches to PandaCord is very simple:
|
||
|
||
1. Modify `PandaCord-Proxy` with the appropriate changes
|
||
2. Type `git add .` to add your changes
|
||
3. Run `git commit` with the desired patch message
|
||
4. Run `./pandacord rb` in the main directory to convert your commit into a new patch
|
||
5. PR your patches back to this repository
|
||
|
||
Your commit will be converted into a patch that you can then PR into PandaCord
|
||
|
||
## Modifying Patches
|
||
Modifying previous patches is a bit more complex:
|
||
|
||
### Method 1
|
||
This method works by temporarily resetting HEAD to the desired commit to edit using rebase.
|
||
|
||
1. If you have changes you are working on type `git stash` to store them for later.
|
||
- Later you can type `git stash pop` to get them back.
|
||
2. Type `git rebase -i upstream/upstream`
|
||
- It should show something like [this](https://gist.github.com/Zbob750/e6bb220d3b734933c320).
|
||
3. Replace `pick` with `edit` for the commit/patch you want to modify, and "save" the changes.
|
||
- Only do this for one commit at a time.
|
||
4. Make the changes you want to make to the patch.
|
||
5. Type `git add .` to add your changes.
|
||
6. Type `git commit --amend` to commit.
|
||
- **MAKE SURE TO ADD `--amend`** or else a new patch will be created.
|
||
- You can also modify the commit message here.
|
||
7. Type `git rebase --continue` to finish rebasing.
|
||
8. Type `./pandacord rb` in the main directory.
|
||
- This will modify the appropriate patches based on your commits.
|
||
9. PR your modifications back to this project.
|
||
|
||
### Method 2 (sometimes easier)
|
||
If you are simply editing a more recent commit or your change is small, simply making the change at HEAD and then moving the commit after you have tested it may be easier.
|
||
|
||
1. Make your change while at HEAD
|
||
2. Make a temporary commit. You don't need to make a message for this.
|
||
3. Type `git rebase -i upstream/upstream`, move (cut) your temporary commit and move it under the line of the patch you wish to modify.
|
||
4. Change the `pick` with `f` (fixup) or `s` (squash) if you need to edit the commit message
|
||
5. Type `./pandacord rb` in the main directory.
|
||
- This will modify the appropriate patches based on your commits.
|
||
6. PR your modifications to github
|