Contribute

Since phpMyFAQ is an Open Source project we encourage developers to contribute patches and code for us to include in the main package of phpMyFAQ. However there are a few rules and limitations when doing so and this page list them.

  1. Contributed code will be licensed under the MPL 2.0 license.
  2. Copyright notices will be changed to phpMyFAQ Team. But contributors will get credit for their work!
  3. All third party code will be reviewed, tested and possible modified before being released.

These basic rules makes it possible for us to earn a living of the phpMyFAQ project but it also ensures that the code remains Open Source and under the MPL 2.0 license. All contributions will be added to the changelog and on the phpMyFAQ website.

How to contribute?

Contributing to phpMyFAQ is quite easy - just fork the project on GitHub, work on your copy and send pull requests.

Setup a phpMyFAQ development environment

Before working on phpMyFAQ, setup an environment with the following software:

It's easier to use our Vagrant/Puppet development box, you can download the box at Github.

Configure your Git installation

Set up your user information with your real name and a working e-mail address:

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
$ git config core.autocrlf # if you're on Windows

How to get the phpMyFAQ source code?

Clone your forked phpMyFAQ repository locally:

$ git clone git@github.com:USERNAME/phpMyFAQ.git

Add the upstream repository as remote:

$ cd phpMyFAQ
$ git remote add upstream git://github.com/thorsten/phpMyFAQ.git

Please check our coding standards before sending patches or pull requests.

Fetch 3rd party libraries and install phpMyFAQ

After cloning your forked repository, you have to fetch the 3rd party libraries used in phpMyFAQ:

$ cd phpMyFAQ
$ curl -s https://getcomposer.org/installer | php
$ php composer.phar install
$ npm install
$ bower install
$ grunt build

Then just start a normal, local phpMyFAQ installation.

If you changed some JavaScript code, you have to merge the .js files into one with the following grunt task:

$ grunt

Rebase your Patch

Before submitting your patch, please update your local branch:

$ git checkout 2.9
$ git fetch upstream
$ git merge upstream/2.9
$ git checkout YOUR_BRANCH_NAME
$ git rebase 2.9

Make a Pull Request

You can now make a pull request on the phpMyFAQ Github repository.

Branches

  • Maintainance 2.9 is the stable branch for bugfixes
  • Development 2.10 is the development branch for new features based on 2.9 code
  • Development master is the development branch for the Symfony 3 and Twig based phpMyFAQ 3.0 for PHP 7 and HHVM only
  • Unsupported 2.0, 2.5, 2.6, 2.7 and 2.8 are old, unsupported branches

Hints

Proxy issues with Bower

If you are behind a non-transparent proxy, add 'proxy' and ''https-proxy' settings to ~/.bowerrc. See this page for more information.

Proxy issues with Composer

If you are behind a non-transparent proxy, add the following at the end of composer.json, just before the last }:

"repositories" : {
    "sourceforge": {
        "type": "vcs",
        "url": "http://git.code.sf.net/p/tcpdf/code"
    }
}

Contributors

Here's a list of contributors to phpMyFAQ since we host our repository on Github.