User Tools

Site Tools


devel:github-contributions

This is an old revision of the document!


Kamailio Contributions via Github

Overview

Kamailio is a community managed project, with developers world wide. Any contribution to code or documentation is very welcome.

In order to be easily able to track the changes and have a coherent changlog and commit history, there are several rules required for each contribution.

Basic Rules

  • github pull requests are the favourited mechanism to submit contributions (patches)
  • make a pull request for each new feature
    • e.g., if you add a feature to usrloc module and an unrelated feature to auth module, then make two pull requests
  • it is ok (and sometime recommended) to have more than one commit per pull request
  • make a commit for each affected component. A component is considered to be:
    • the core
    • an internal library (code inside subfolder lib/)
    • a module (code inside subfolder modules/)
    • a tool (code inside subfolder utils/)
    • an example or main configs (files inside subfolders etc/ or examples/)
  • commit messages must be formatted as specified in the next section
  • commit message must describe the changes done by the patch
    • other details (e.g., how to reproduce, backtrace, sip packets, …) belong to content (comments) of the pull request
  • avoid emoticons and non-technical statements in commit messages
    • e.g., if it was a feature request by John Smith, don't mention that in commit message, especially don't write it owns you now a beer
  • credits can be given within commit message as a short statement, mentioning the name of the person or entity
    • for commits introducing a new module, credits must not be included in the commit message, being expected that the respective entity will own the copyright and it is reflected in the README or copyright header of each file
  • when the case, make references to the item on bug tracker, using GH#XYZ - replace XYZ with issue number id
    • e.g.,: - issue reported by John Smith, GH#123

Commit Message Format

Please create the commit messages following the GIT convention:

  • start with one short line, preferably less then 50 chars summarizing the changes (this is referred later as “first line of the commit message”)
  • then one empty line
  • then a more detailed description

Think of the first line as of an email “Subject” line. In fact it will be used as “Subject” in the generated commit emails and it will also be used when generating the Changelog (e.g. git log –pretty=oneline).

Please start always with the prefix of the component (subsystem) that is modified by the commit, for example:

  • core: typo fixes to log messages
  • tcp: stun fixes
  • mem: added faster malloc
  • module_name: support for foo rfc extension
  • lib_name: critical bug fix for abc case

Examples of commit messages:

  • change to usrloc module from modules
usrloc: fixed name conflict

- destroy_avps() renamed to reg_destroy_avps() to avoid conflicts
  with the usr_avp.h version
  • change to core
core: loadpath can now use a list of directories

- loadpath can use a list of directories separated by ':',
  e.g.: loadpath "modules:modules_s:modules_k".
  First match wins (e.g. for loadmodule "textops" if
  modules/textops.so or modules/textops/textops.so exists, it will
  be loaded and the search will stop).

See also:

The above content about commit message format is taken from wiki page GIT Commit Guidelines - it is recommended you read that one as well.

devel/github-contributions.1440438002.txt.gz · Last modified: 2015/08/24 19:40 by miconda