|
| 1 | +## Contributing |
| 2 | + |
| 3 | +First off, thank you for considering contributing to php-malware-finder. |
| 4 | + |
| 5 | +### 1. Where do I go from here? |
| 6 | + |
| 7 | +If you've noticed a bug, an undetected sample or have a question, |
| 8 | +[search the issue tracker](https://github.com/nbs-system/php-malware-finder/issues) |
| 9 | +to see if someone else has already created a ticket. If not, go ahead and |
| 10 | +[make one](https://github.com/nbs-system/php-malware-finder/issues/new)! |
| 11 | + |
| 12 | +### 2. Fork & create a branch |
| 13 | + |
| 14 | +If this is something you think you can fix, |
| 15 | +then [fork php-malware-finder](https://help.github.com/articles/fork-a-repo) and |
| 16 | +create a branch with a descriptive name. |
| 17 | + |
| 18 | +A good branch name would be (where issue #325 is the ticket you're working on): |
| 19 | + |
| 20 | +```sh |
| 21 | +git checkout -b add_new_sample_wp_bruteforcer |
| 22 | +``` |
| 23 | + |
| 24 | +### 3. Get the test suite running |
| 25 | + |
| 26 | +Just type `make tests`, the testsuite will be run automatically. |
| 27 | + |
| 28 | +### 6. Make a Pull Request |
| 29 | + |
| 30 | +At this point, you should switch back to your master branch and make sure it's |
| 31 | +up to date with our upstream master branch: |
| 32 | + |
| 33 | +```sh |
| 34 | +git remote add upstream git@github.com:nbs-system/php-malware-finder.git |
| 35 | +git checkout master |
| 36 | +git pull upstream master |
| 37 | +``` |
| 38 | + |
| 39 | +Then update your feature branch from your local copy of master, and push it! |
| 40 | + |
| 41 | +```sh |
| 42 | +git checkout add_new_sample_wp_bruteforcer |
| 43 | +git rebase master |
| 44 | +git push --set-upstream origin add_new_sample_wp_bruteforcer |
| 45 | +``` |
| 46 | + |
| 47 | +Finally, go to GitHub and [make a Pull Request](https://help.github.com/articles/creating-a-pull-request) :D |
| 48 | + |
| 49 | +Travis CI will [run our test suite](https://travis-ci.org/nbs-system/php-malware-finder). |
| 50 | +We care about quality, so your PR won't be merged until all tests are passing. |
| 51 | + |
| 52 | +### 7. Keeping your Pull Request updated |
| 53 | + |
| 54 | +If a maintainer asks you to "rebase" your PR, they're saying that a lot of code |
| 55 | +has changed, and that you need to update your branch so it's easier to merge. |
| 56 | + |
| 57 | +To learn more about rebasing in Git, there are a lot of [good](http://git-scm.com/book/en/Git-Branching-Rebasing) |
| 58 | +[resources](https://help.github.com/articles/interactive-rebase) but here's the suggested workflow: |
| 59 | + |
| 60 | +```sh |
| 61 | +git checkout add_new_sample_wp_bruteforcer |
| 62 | +git pull --rebase upstream master |
| 63 | +git push --force-with-lease add_new_sample_wp_bruteforcer |
| 64 | +``` |
| 65 | + |
| 66 | +### 8. Merging a PR (maintainers only) |
| 67 | + |
| 68 | +A PR can only be merged into master by a maintainer if: |
| 69 | + |
| 70 | +1. It is passing CI. |
| 71 | +2. It has no requested changes. |
| 72 | +3. It is up to date with current master. |
| 73 | + |
| 74 | +Any maintainer is allowed to merge a PR if all of these conditions are met. |
| 75 | + |
| 76 | +### 9. Shipping a release (maintainers only) |
| 77 | + |
| 78 | +1. Make sure that all pending and mergeable pull requests are in |
| 79 | +2. Make sure that the all the tests are passing, with `make tests` |
| 80 | +3. Update the Debian changelog in `./debian/changelog` with `dch -i` |
| 81 | +4. Commit the result |
| 82 | +5. Create a tag for the release: |
| 83 | + |
| 84 | + ```sh |
| 85 | + git checkout master |
| 86 | + git pull origin master |
| 87 | + make tests |
| 88 | + git config user.signingkey 498C46FF087EDC36E7EAF9D445414A82A9B22D78 |
| 89 | + git config user.email security@nbs-system.com |
| 90 | + git tag -s v$MAJOR.$MINOR.$PATCH -m "v$MAJOR.$MINOR.$PATCH" |
| 91 | + git push --tags |
| 92 | + ``` |
| 93 | + |
| 94 | +6. Build the debian package with `make deb` |
| 95 | +7. Create the [release on github](https://github.com/nbs-system/php-malware-finder/releases) |
| 96 | +8. Do the *secret release dance* |
0 commit comments