Developers, Developers, Developers, Developers

Do you know PHP?
Do you know Asterisk?

Learning to develop for FreePBX may be intimidating. One of my goals is to change that and expose more developers to what is referred to as the plumbing.

Our DEV Team has put together some great information on our wiki:
http://wiki.freepbx.org/display/DC/Developer+Corner+Home

There are different paths people take in learning a skill. We can relate these to swimming.

Toes in the water, 1 step at a time.
A good way to do this is to browse code at http://github.com/freepbx and look at how things are done. Once you have an idea of how things are done you can pull up http://issues.freepbx.org and go through some of the issues and try and fix them. If you are feeling adventurous you may even go after a feature request. Then submit a patch/Pull request. Note we need a CLA on file which is explained in the wiki above.

Jump in where you know you can touch

You may do some of the stuff above but maybe you want a bigger challenge. There are some orphaned modules in https://github.com/FreePBX-ContributedModules. Maybe take ownership of one of these and update it or do a full rewrite if needed. Look through the BMO stuff in the wiki and bring the module up to version 12.

Jump in the water with no idea of the depth
You may want to do the above stuff but maybe you want a bigger challenge. Create a module from the ground up. Follow through the WIKI info and look at various sources and make the next big thing.


No matter what way you like to approach it the WIKI can be very useful. If there is a subject in the wiki that you canā€™t find an answer for then tag me in a post in this section and we will work it out together.

Note I am a ā€œteach the man to fishā€ type so I wonā€™t write your code for you but we will make sure you get to the right place and document it along the way so others can find their path.

4 Likes

Hello: Iā€™ve opened a feature request and Iā€™m already working on it.

Iā€™d like to know whatā€™s the best approach on submitting changes/creating pull requests. The reason I ask is once the development env is set, you end up with remotes pointing to ssh://[email protected]/freepbx/ā€¦

Also, there is no develop branch to branch off from. But I do see a develop branch on GitHub.

So should I fork the GitHub repo and then open a pull request on GitHub instead?

It is not clear how one should proceed after the dev env.

Any pointers would help. Iā€™ve tried to find those info on the wiki but I couldnā€™t.

Thanks a lot.

You want to fork it first.
Then pull your fork locally.
Commit to your fork.
Push to your fork.
Then when done, submit a pull req from your fork to the original.

Per the response to your ticket, you need a CSA on file for your code to be accepted.

Yes, Iā€™ve done that and now I am in group ā€˜Developers-TOSā€™. Tks

1 Like

Ok, Thanks.

Another help, please. The wiki page clearly says I should branch off from develop branch when working on a new feature, but I just realized the develop branch for the dahdiconfig module seems outdated.

For example, the file dahdiconfig/views/dahdi_analog_settings.php has the newest commit from 27 Nov 2013, whereas the same file has the last commit from 16 Feb 2015 in other branches.

So, from what branch I should branch off to start a new feature?

Thank you.

Iā€™m going to update that but you branch from whatever release/ branch you want to base your work off of.

Great. Iā€™d like to start from release/14.0. Thanks a lot.

git clone [email protected]:FreePBX/dahdiconfig.git
git checkout -b feature/i-did-a-thing release/14.0
<do work>
git add -A
git commit -m 'I did some work'
git push origin feature/i-did-a-thing

Then initiate a pull request through Github

Ok. I forked from git.freepbx.org and was planning on working on it. But I can switch to GitHub. Thanks again.

It doesnā€™t matter. git.freepbx.org is our primary but lots of people know and use github.

Sure, tks.