Over the last year, Asus has been moving an increasing amount of code into closed-source binary files, as they seek to prevent end-users (and third party developers) from bypassing existing radio regulations, most particularly those recently put in place by the FCC. While this does allow third party developers to continue their work, it creates a couple of problems, and make my work on this project increasingly difficult.
Whenever a new GPL release is published by Asus to accompany a new firmware release, many of the binary components of that GPL are only compatible with this specific router model. That means that a compatible GPL release must also exist for all other models to make it possible to also support these other models, unless the changes are minor enough to allow older binary blobs to still be compatible. Now, since the amount of code moved into these components keeps increasing, it means the likelihood of older versions to remain compatible is constantly decreasing. 380.61 for instance required two different "hacks" to be able to support all models in this release. I deemed it was important to do this time, as this is the first release compatible with the new firmware validation (which has been in place for two months now). I do not expect to go through the same headaches for future releases however.
After reviewing my options, I have come to the following conclusions:
1) From now on, Asuswrt-Merlin releases will never be guaranteed to support all models. Support will always depend on what GPL releases are available from Asus.
2) The amount of original development (meaning new features or major changes) on this project will continue to decrease. The current code is diverting too much from Asus's original code, and that code is becoming increasingly complex. Merging new GPL releases is increasingly difficult. Rather than completely fork away from Asus's development, I decided for the time being to stand my ground at the current code state, and focus primarily on just keeping up-to-date with new releases from Asus.
3) Release frequency will continue to be more erratic, as they have been for the past year, unlike in the past where I would typically push out a new release every month. Once again, this will be tied to Asus's own release schedule for the specific models I'm supporting.
4) I might need to drop support for some models earlier than originally anticipated, as I have become too dependent on Asus issuing updates for all of these models at the same time. Less popular models such as the RT-AC56U or the RT-AC3200U might be the first potential victims (especially the latter, as it's the only model running on its own unique SDK version)
In short, I would say that from now on, Asuswrt-Merlin has reached a certain level of maturity, where focus will be moved away from on-going development and more into maintenance mode. Less frequent releases, with fewer changes. I'll see how things will work out over the coming months.
Whenever a new GPL release is published by Asus to accompany a new firmware release, many of the binary components of that GPL are only compatible with this specific router model. That means that a compatible GPL release must also exist for all other models to make it possible to also support these other models, unless the changes are minor enough to allow older binary blobs to still be compatible. Now, since the amount of code moved into these components keeps increasing, it means the likelihood of older versions to remain compatible is constantly decreasing. 380.61 for instance required two different "hacks" to be able to support all models in this release. I deemed it was important to do this time, as this is the first release compatible with the new firmware validation (which has been in place for two months now). I do not expect to go through the same headaches for future releases however.
After reviewing my options, I have come to the following conclusions:
1) From now on, Asuswrt-Merlin releases will never be guaranteed to support all models. Support will always depend on what GPL releases are available from Asus.
2) The amount of original development (meaning new features or major changes) on this project will continue to decrease. The current code is diverting too much from Asus's original code, and that code is becoming increasingly complex. Merging new GPL releases is increasingly difficult. Rather than completely fork away from Asus's development, I decided for the time being to stand my ground at the current code state, and focus primarily on just keeping up-to-date with new releases from Asus.
3) Release frequency will continue to be more erratic, as they have been for the past year, unlike in the past where I would typically push out a new release every month. Once again, this will be tied to Asus's own release schedule for the specific models I'm supporting.
4) I might need to drop support for some models earlier than originally anticipated, as I have become too dependent on Asus issuing updates for all of these models at the same time. Less popular models such as the RT-AC56U or the RT-AC3200U might be the first potential victims (especially the latter, as it's the only model running on its own unique SDK version)
In short, I would say that from now on, Asuswrt-Merlin has reached a certain level of maturity, where focus will be moved away from on-going development and more into maintenance mode. Less frequent releases, with fewer changes. I'll see how things will work out over the coming months.