As we merge in a number of positive CommUnity UCaaS submissions, it is a good reminder of the challenges associated with private forks and forks in general. We know that the reality of Asterisk and any widely adopted Open Source project is that wide spread adoption is going to bring a number of forks and private changes. Almost all users are all eventually going to find something they want to behave differently.
While private forks may be inevitable, those changes remaining private-only does not have to be. Even if some or most of the changes made in a private fork are not generally applicable, those changes that are can be submitted to the public project. This has a few big advantages over leaving your changes in a private fork.
First and foremost, merging into mainline Asterisk moves the burden of maintenance from you to the community. As new versions are released, your changes come along by default. It can take years for private systems to upgrade versions. Knowing that the change you made in version 1.8 is still tested and in version 20 is a huge advantage over having to re-work your local patch and hoping for the best.
Second, submissions run through CI and get reviewed by the community at large. This might seem daunting but in truth it helps strengthen the work we all do. The review process might help find a bug in what you are submitting or a reviewer might suggest a better way to do something. Submissions are run through not just our testing but get used in the wild. Having the world run your changes can result in improvements and bug fixes over time. That said, you’re not completely off the hook. If a change ultimately causes issues, we would generally request you take a look.
Lastly, and perhaps the most important to us is that if there are good improvements sitting out there the community would love to have them. Please always consider “paying back” the community by submitting your solution, particularly if the community has helped you craft that solution. We all benefit from Asterisk being better.