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