On Tue, Apr 8, 2025 at 7:17 PM Lwazi Dube <lwa...@gmail.com> wrote: > No. The open source project provides the ability for proprietary forks to > override the master branch default with the company default. Your approach > stalls the development process. A trivial change like this should not take > a week to commit.
I don't agree with this approach. Some defaults were set in NuttX and these defaults assure self-compatibility in various components that we should treat as sacred because people depend on it. Maintenance cost is nowadays higher than development cost unfortunately. We cannot change whatever we like whenever we like and blame users that their stuff stops working because of our upstream changes. There are commercial and industrial products running on NuttX and we should keep that in mind. Its not about how quickly we can change things, but how to add new features as an option/alternative without destroying existing working stuff. NuttX is like a foundation, it should be solid, so many things can be built on top of it. We should not change the foundations, not allow building different things at the same time in the same place which is impossible. We should offer a choice, not enforce changes. Linux may not be the best "reference" as it tends to change so often many people abandoned it as serious solution. Its a maintenance nightmare or single-use solution if you don't care what is inside. Unfortunately Linux is most popular so most software and drivers are written initially for Linux that propagates problems to all related OS (i.e. FreeBSD drm/kms video drivers), we try to avoid that in NuttX. Even Rust was not able to cope with Linux's internal changes pace, so they abandoned in-kernel maintenance and started writing from scratch RedoxOS in pure Rust, which seems to be long but reasonable path - people will have choice whether use Linux or switch to Redox, maybe in the long run Redox wins because of long term self-compatibility. Also in NuttX we have Rust port that does not impact all users, only interested folks can enable Rust if they want it, no one else is impacted, users have choice. I am sure the same approach can be applied to CRC stuff :-) > If Kconfig is in place it is now 100% your company's responsibility to > maintain your desired CRC defaults in your private proprietary board files. > Any change to the master will not affect you in this case. Keep > CONFIG_CRC16_XMODEM in your shipping product's config and ignore what > anchao is doing. An open source project's ability to innovate should not be > held up by your preferences. The last sentence is completely wrong. Its not about "preference" but impacting self-compatibility and long term maintenance. Messing the foundations and defaults is not innovation. Try building a home when the project constantly changes during the process, when you have 10 floors ready and suddenly you need to change pavements. Innovation is when you create new functionality and give users a choice without breaking existing working stuff. Back to the point, this discussion touched important area, lets focus on how to design a versatile CRC(16/32) API that would keep things operational and self-compatible, but create a new user selectable choices/alternatives. That seems the best constructive way forward :-) Thanks! :-) Tomek -- CeDeROM, SQ7MHZ, http://www.tomek.cedro.info