Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Everything is now a module. There is no longer a special case for framework and fw_ari.

What is a branch

  A branch is no longer necessarily a release, as each module should at bare minimum have the following branches:

  • master

    • latest stable code, also includes the latest localization files from Weblate

  • develop

    • a development branch of master

  • feature/*

    • used to develop new features for the upcoming or a distant future release.

  • hotfix/*

    • Hotfix branches are very much like release branches in that they are also meant to prepare for a new production release, albeit unplanned. They arise from the necessity to act immediately upon an undesired state of a live production version. When a critical bug in a production version must be resolved immediately, a hotfix branch may be branched off from the corresponding tag on the master branch that marks the production version.

  • bugfix/*

    • Used to fix bugs against tickets
  • release/*

    • Release branches support preparation of a new production release.


Image Removed

How does a release happen? 

Previously a release, used to package up a given svn commit and store the tarball in a release directory in subversion. With git, however, there is no reason to store tarballs. Instead the proposed new release cycle will be to do the following:


  •  release/
  • release/
What about repositories

To do this we will be doing away with the old repo concept, in which repos were hardcoded into FreePBX. This concept was flawed and doesn’t offer expansion. Instead we will be using the repo tag to automatically display the repositories available to users based on what the module.xml has in it when fetched via module_admin.

How we do we beta/alpha

Beta is a new tag we are introducing through module.xml with two values, 0 or 1. If 1 or true, we will given users the option to install either the stable or beta release but default to stable.

TODO: Client side needs to display this. If customer is already on beta, default to beta not stable unless only stable is presented.

How do we differentiate between php version and components in tags

We aren’t going to do anything component wise on the server side at this time. We currently get the PHP version from the client side, allowing us to lookup modules based on the PHP version they were published for (at this time this is mostly for Zended modules).