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:
latest stable code, also includes the latest localization files from Weblate
a development branch of master
used to develop new features for the upcoming or a distant future release.
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.
- Used to fix bugs against tickets
Release branches support preparation of a new production release.
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:
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).