What feels like a very long time ago, but really wasn't, the FOSSBilling project came into existence. It was forked from BoxBilling and we inherited quite a lot of messy and broken code.
BoxBilling was always an ambitious project which was started with great intentions and a solid and well written code base. Sadly, in the years since then it was largely abandoned for long periods of time, there were bursts of activity with poor quality code that was not coherent, and the world moved on around it, leaving many things really quite outdated.
Near the beginning of the FOSSBilling journey, a decision was taken that the best way forward for the short and longer terms would be:
- To spend some time working on immediate and urgent issues with the existing code base, to make it more stable and secure, and to fix things that were just 'broken'.
- In the longer term to create a new rewrite of the software built on the Laravel framework, and to provide a migration route from to that version when it was ready.
Since then, things have changed a bit.
We have made a lot of big improvements over the last year and are proud of where we have got to. The current code base is much more stable and secure than it was when the project was created. There have also been a lot of feature additions and visual improvements, and we have some very good active contributors now and are moving forward really quickly.
There have been thousands of commits, and we will release v0.4 soon, which is quite a big release and will again bring a lot more improvements.
The current code base has been improved and matured to an extent where it no longer makes any sense to divide efforts between continuing to improve it and creating a rewrite for the future.
So, after extensive discussions within the team of contributors, we have decided to drop any future plans for a transition to a Laravel based version of FOSSBilling and instead will be pushing forward and continuing to build on and improve the existing code.
The limited amount of work that has been done to date on the Laravel branch will be folded into the existing code where it is an improvement, the roadmap will be updated, and ultimately that branch will disappear in the near future.
Among many other things this means that, although there will continue to be breaking changes, especially until we reach a version 1.0 release, existing extensions and themes will be much easier to maintain and migrate.