Call Us Today! 877.742.2583

Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »


This page describes the process of submitting code to  FreeSWITCH™.

Please review our Coding Guidelines and Commit Message Guidelines before creating your first pull request.


 Click here to expand Table of Contents

Forking project with Stash

Create a new account in JIRA.

Create a new issue in JIRA, describing the feature you want to develop or the problem you're trying to fix.

Login to Stash using your JIRA credentials:

After logging in, you'll see current projects hosted on Stash. Click on  FreeSWITCH™ project link:

You'll see a list with all repositories, click on  FreeSWITCH™:

In the repository page, click on the top right button called Fork:


In the next screen, name your fork (it will default to FreeSWITCH, but you may want to name it something more descriptive. Example freeswitch-FS-1234 where FS-1234 is the name of a Jira you are addressing). This will bring you to your fork repository:

In your new fork page, we need to enable public access. To do this, click on "Settings" on top of the page, and then "Repository" under "Permissions" and check the enable box under "Public Access":


Clone your fork

Now clone this repo, commit your patches, and push this repo back to stash. (standard GIT clone, commit, push workflow):

Clone your new fork
➜  ~  git clone\~italorossi/freeswitch-fs-1234.git
Cloning into 'freeswitch-fs-1234'...
Password for '':
remote: Counting objects: 248610, done.
remote: Compressing objects: 100% (48790/48790), done.
remote: Total 248610 (delta 194461), reused 246339 (delta 192768)
Receiving objects: 100% (248610/248610), 102.87 MiB | 799 KiB/s, done.
Resolving deltas: 100% (194461/194461), done.
Checking out files: 100% (9924/9924), done.
➜  ~  cd freeswitch-fs-1234
➜  freeswitch-fs-1234 git:(master) 

Edit your files, compile and test you changes. After this, you can commit and push your changes back to Stash. Example:

Making a change
➜  freeswitch-fs-1234 git:(master) cd src
➜  src git:(master) vim switch.c
➜  src git:(master) ✗ git diff
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#	modified:   switch.c
no changes added to commit (use "git add" and/or "git commit -a")
➜  src git:(master) ✗ git commit -m 'Removing blank line.' switch.c
[master 72c9e01] Removing blank line.
 1 file changed, 1 deletion(-)
➜  src git:(master) git push
Password for '':
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 364 bytes, done.
Total 4 (delta 3), reused 0 (delta 0)
   89b4b0c..72c9e01  master -> master

Create Pull Request

To create your Pull Request, go to Stash page and navigate to the repository which you want to contribute your changes, in this case  FreeSWITCH™, and click “Pull Request” Button Upper right :

Select your repository and your branch, edit the Title (it will default to the branch name, if there is a matching Jira you should reference the Ticket ID, FS-1234), the Description (it will auto populate with commit messages from commits on the branch not already in FreeSWITCH™ master repo):

Congratulations! You just created your first Pull Request. 

Updating Pull Request with new code

If one of the developers ask you to modify your code, there's no need to create another pull request.

Each pull request tracks the branch from the forked repository, so when you commit more changes and pushes those changes to Stash, the pull request is automatically updated with the new commits.

Always create one branch for each pull request, if a developer asks for a change, then make the change in the specific branch, and push the new change.

Getting feedback

If you have not received feedback on your Pull Request by the regular Thursday Bug Hunt/Patch Review conference call, Call in to the bridge at 2PM US Central Time (1900 GMT) and ask to have your patch reviewed.

For more informations about our conference schedule, see ClueCon Weekly Conference call.


  • No labels