I'd like to take this time to explain a couple of changes that will be happening to this project starting with the 376.44 release.
The recent merge with GPL 376_xxxx from Asus proved to be quite difficult. As Asuswrt and Asuswrt-Merlin keep evolving, their codebase are drifting further apart, making each new GPL release harder to merge in that the previous one. Asus are being very aggressive in their firmware development, constantly adding new major features, and making numerous tweaks here and there. The last merge forced me to revert various IPv6-related fixes that had been applied to Asuswrt-Merlin over the past few months so I could merge the revamped IPv6 code from Asus. Two years ago, merging a new GPL was roughly 3-4 hours of work (one evening). With GPL 376_xxxx, the merges took me between two and three evenings, and that's not taking into account the RT-AC87 support development...
So, I won't be making new releases anymore every time Asus is pushing out a new GPL anymore. The increasing amount of work involved in GPL merges make that too taxing. I simply cannot keep up (as a one-man project) with Asus's entire dedicated team of developers rate of development.
Also because of this codebase drift, I am currently putting a stop on any new feature addition to Asuswrt-Merlin for the time being. I need to either find a way to reduce the amount of work involved in merging two increasingly drifting codebases, or limit the frequency of those painful merges. For now the latter is the only solution I could find. If Asus's development pace ever slows down I might go back to my previous development pace, but that will be something to evaluate once we get there. So for the coming months the focus will be strictly on keeping up with Asus's own changes, and bugfixing (where they don't require radical changes in the codebase - the IPv6 bugfixes were a killer there).
Another issue is how different the Asus routers are becoming with each new generation. We currently have the following generations:
- Old SDK5 device (RT-N16)
- First gen SDK6 (RT-N66, RT-AC66
- First gen ARM devices (RT-AC56, RT-AC68
- Quantenna device (RT-AC87)
All four require their own, separate copy of the closed-source components used by Asus. On top of that you can expect a fifth one to appear in the coming months, with the implantation of Broadcom's SDK7 (used for the RT-AC3200). This means that whenever Asus releases a new GPL for one of these four generations, I only get the updated closed source component of that specific generation. So if for example Asus were to release FW 376_5000 for the RT-AC87 with a whole new AiCloud, it would be impossible for me to implement it on the other generations until Asus also released the GPL for these other generations, with their corresponding closed source bits.
Because of this, there will be some change in my current (informal) release schedule. In the past I generally released new updates every time Asus pushed out a new GPL release, and I did it simultaneously for all supported routers. As this will become increasing difficult to do (sometimes even impossible), I will no longer guarantee that each new release I make will be simultaneously for all supported routers. I will have to go with what proprietary bits I get out of the GPL on which I will be basing this new release. This shouldn't be a major problem, as Asus has shown by now they are still committed into supporting their older routers.
So the bottom-line is, keeping up with Asus's current pace of development has outgrown my capacity as a one-man team of keeping up with them, so expect less frequent releases from me, and these won't always be for all supported routers at the same time. And the emphasis will be strictly on merging new code and fixes, with a temporary stop on any new feature development from myself.
The recent merge with GPL 376_xxxx from Asus proved to be quite difficult. As Asuswrt and Asuswrt-Merlin keep evolving, their codebase are drifting further apart, making each new GPL release harder to merge in that the previous one. Asus are being very aggressive in their firmware development, constantly adding new major features, and making numerous tweaks here and there. The last merge forced me to revert various IPv6-related fixes that had been applied to Asuswrt-Merlin over the past few months so I could merge the revamped IPv6 code from Asus. Two years ago, merging a new GPL was roughly 3-4 hours of work (one evening). With GPL 376_xxxx, the merges took me between two and three evenings, and that's not taking into account the RT-AC87 support development...
So, I won't be making new releases anymore every time Asus is pushing out a new GPL anymore. The increasing amount of work involved in GPL merges make that too taxing. I simply cannot keep up (as a one-man project) with Asus's entire dedicated team of developers rate of development.
Also because of this codebase drift, I am currently putting a stop on any new feature addition to Asuswrt-Merlin for the time being. I need to either find a way to reduce the amount of work involved in merging two increasingly drifting codebases, or limit the frequency of those painful merges. For now the latter is the only solution I could find. If Asus's development pace ever slows down I might go back to my previous development pace, but that will be something to evaluate once we get there. So for the coming months the focus will be strictly on keeping up with Asus's own changes, and bugfixing (where they don't require radical changes in the codebase - the IPv6 bugfixes were a killer there).
Another issue is how different the Asus routers are becoming with each new generation. We currently have the following generations:
- Old SDK5 device (RT-N16)
- First gen SDK6 (RT-N66, RT-AC66
- First gen ARM devices (RT-AC56, RT-AC68
- Quantenna device (RT-AC87)
All four require their own, separate copy of the closed-source components used by Asus. On top of that you can expect a fifth one to appear in the coming months, with the implantation of Broadcom's SDK7 (used for the RT-AC3200). This means that whenever Asus releases a new GPL for one of these four generations, I only get the updated closed source component of that specific generation. So if for example Asus were to release FW 376_5000 for the RT-AC87 with a whole new AiCloud, it would be impossible for me to implement it on the other generations until Asus also released the GPL for these other generations, with their corresponding closed source bits.
Because of this, there will be some change in my current (informal) release schedule. In the past I generally released new updates every time Asus pushed out a new GPL release, and I did it simultaneously for all supported routers. As this will become increasing difficult to do (sometimes even impossible), I will no longer guarantee that each new release I make will be simultaneously for all supported routers. I will have to go with what proprietary bits I get out of the GPL on which I will be basing this new release. This shouldn't be a major problem, as Asus has shown by now they are still committed into supporting their older routers.
So the bottom-line is, keeping up with Asus's current pace of development has outgrown my capacity as a one-man team of keeping up with them, so expect less frequent releases from me, and these won't always be for all supported routers at the same time. And the emphasis will be strictly on merging new code and fixes, with a temporary stop on any new feature development from myself.
Last edited: