You want to contribute to iTop? Many thanks to you! π π
Here are some guidelines that will help us integrate your work!
You are welcome to create pull requests on any of those subjects:
- π
:bug:bug fix - π
:lock:security - π
:globe_with_meridians:translation / i18n / l10n
If you want to implement a new feature, please create a corresponding ticket for review.
If you ever want to begin implementation, do so in a fork, and add a link to the corresponding commits in the ticket.
iTop is distributed under the AGPL-3.0 license (see the license.txt file), your code must comply with this license.
If you want to use another license, you may create an extension.
TL;DR:
create a fork from iTop main repository,
create a branch based on either release branch if present, or develop otherwise
We are using the GitFlow branch model. That means we have in our repo those main branches:
- develop: ongoing development version
- release/*: if present, that means we are working on a beta version
- master: previous stable version
For example, if no beta version is currently ongoing we could have:
- develop containing future 2.8.0 version
- master containing 2.7.x maintenance version
In this example, when 2.8.0-beta is shipped that will become:
- develop: future 2.9.0 version
- release/2.8: 2.8.0-beta
- master: 2.7.x maintenance version
And when 2.8.0 final will be out:
- develop: future 2.9.0 version
- master: 2.8.x maintenance version
- support/2.7 : 2.7.x maintenance version
Please follow our guidelines.
A dedicated page is available in the official wiki.
Please create tests that covers as much as possible the code you're submitting.
Our tests are located in the test/ directory, containing a PHPUnit config file : phpunit.xml.dist.
- Describe the functional change instead of the technical modifications
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Please start the commit message with an applicable emoji code (following the Gitmoji guide). For example :
- π
:globe_with_meridians:for translations - π¨
:art:when improving the format/structure of the code - β‘οΈ
:zap:when improving performance - π
:bug:when fixing a bug - π₯
:fire:when removing code or files - π
:green_heart:when fixing the CI build - β
:white_check_mark:when adding tests - π
:lock:when dealing with security - β¬οΈ
:arrow_up:when upgrading dependencies - β¬οΈ
:arrow_down:when downgrading dependencies - β»οΈ
:recycle:code refactoring - π
:lipstick:Updating the UI and style files.
- π
When your code is working, please:
- stash as much as possible your commits,
- rebase your branch on our repo last commit,
- create a pull request.
Detailed procedure to work on fork and create PR is available in GitHub help pages.