First off, thank you for considering contributing to php-malware-finder.
If you've noticed a bug, an undetected sample or have a question, search the issue tracker to see if someone else has already created a ticket. If not, go ahead and make one!
If this is something you think you can fix, then fork php-malware-finder and create a branch with a descriptive name.
A good branch name would be (where issue #325 is the ticket you're working on):
git checkout -b add_new_sample_wp_bruteforcer
Just type make tests
, the testsuite will be run automatically.
At this point, you should switch back to your master branch and make sure it's up to date with our upstream master branch:
git remote add upstream [email protected]: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!
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 :D
Travis CI will run our test suite. We care about quality, so your PR won't be merged until all tests are passing.
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 resources but here's the suggested workflow:
git checkout add_new_sample_wp_bruteforcer
git pull --rebase upstream master
git push --force-with-lease add_new_sample_wp_bruteforcer
A PR can only be merged into master by a maintainer if:
- It is passing CI.
- It has no requested changes.
- It is up to date with current master.
Any maintainer is allowed to merge a PR if all of these conditions are met.
- Make sure that all pending and mergeable pull requests are in
- Make sure that the all the tests are passing, with
make tests
- Update the Debian changelog in
./debian/changelog
withdch -i
- Commit the result
- Create a tag for the release:
git checkout master
git pull origin master
make tests
git config user.signingkey 498C46FF087EDC36E7EAF9D445414A82A9B22D78
git config user.email [email protected]
git tag -s v$MAJOR.$MINOR.$PATCH -m "v$MAJOR.$MINOR.$PATCH"
git push --tags
- Build the debian package with
make deb
- Create the release on github
- Do the secret release dance