Skip to content

Latest commit

 

History

History
119 lines (71 loc) · 5.3 KB

CONTRIBUTING.md

File metadata and controls

119 lines (71 loc) · 5.3 KB

How to contribute

Welcome to our ever growing community! We are more than happy to accept external contributions to the project in the form of feedback, bug reports and even better, pull requests!

As a contributor, we present you the guidelines to start contributing in any of the GLPI projects.

Questions or Doubts

If you require general support assistance, you can find us in Telegram, and we'll help you as soon as possible.

For notices about major changes and general discussion of GLPI development, subscribe to the /r/glpi subreddit. You can also chat with us via IRC in #GLPI on freenode.

This is in order to keep GitHub issues for bug reports and new features only.

Found a bug?

You can let us know in our issue Dashboard.

Know how to fix it? Great! Then submit a pull request.

New feature?

You can request a new feature by submitting an issue, and if you would like to implement a new feature, please submit an issue with a proposal for your work first, to be sure that we can use it, this will allow us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project. Please consider what kind of change it is:

  • For a Major Feature, first open an issue and outline your proposal so it can be discussed.
  • Small Features can be crafted and directly submitted as a Pull Request.

Submitting

Submit an Issue

Before submitting the issue please check the issue tracker, there exists the possibility that the bug was already reported by other contributor.

This way you help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.

We'll work very hard to fix all the issues without delay, but before fixing it we need to confirm it, for that we require you to provide us of the following information:

  • Overview of the Issue - if an error is being thrown a description of the problem is extremely helpful
  • Motivation for or Use Case - explain why this is a bug for you
  • Library Version(s)
  • Device Operating System & Model - is this a problem with all devices or only specific ones?
  • Reproduce the Error - provide a live example or an unambiguous set of steps.
  • Related Issues - has a similar issue been reported before?
  • Suggest a Fix - if you can't fix the bug yourself, perhaps you can point to what might be causing the problem (line of code or commit)

You can file new issues by filling out our new issue form.

Submit a Pull Request

Before submitting your Pull Request check for an open or closed PR that relates to your submission. We don't want to duplicate efforts.

  • Make your changes in a new branch, the project is organized according to the branch model Git Flow, though this is not mandatory it's really useful:
    git checkout -b my-fix-branch develop
  • Follow our Coding Rules.

  • Commit your changes using a descriptive commit message that follows the Conventional Commit. This is indispensable since the release notes and changelogs are automatically generated from these messages.

  • Push your branch to GitHub:

    git push origin my-fix-branch
  • In GitHub, send a pull request to our Repository.

  • If we suggest changes then:

    • Make the required updates.

    • Rebase your branch and force push to your GitHub repository (this will update your Pull Request):

    That's it! 🎉 Thank you for your contribution!

After your pull request is merged

You can safely delete your branch and pull the changes from the main (upstream) repository:

  • Delete the remote branch on GitHub either through the GitHub web UI or your local shell as you prefer.

Coding Rules

To ensure consistency throughout the source code, keep these rules in mind as you are working:

  • All features or bug fixes must be tested by one or more specs (unit-tests).
  • All methods must be documented.

Test and Build

There are currently three ways of running the unit test, you can only select one as you prefer.

From Fastlane

fastlane scan

That's all you need to run your tests. If you want more control, here are some available parameters:

fastlane scan —workspace "Example.xcworkspace" —scheme "AppName" —device "iPhone 6" —clean

From Xcode

Here is a detailed guide of Testing with Xcode, that will show you the commands and building settings for testing Apps and libraries.

From Command line

xcodebuild
-workspace MyApp.xcworkspace
-scheme "MyApp"
-sdk iphonesimulator
-destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1'
test