Hi, Xiang,
Since NuttX use Kconfig system, the simple pull/apply/compile cycle
isn't enough to catch all possible error. Actually, all my commits
pass our local automation build(four config: sim, armv7-m, armv8-m and
armv7-a) before PR sent out.

It is hard to imagine how they could have passed with typos in errno values for example.  Perhaps your configurations just did not build the files that generated the compilation errors.  We really have to build many, many configurations to have confidence that the change does not break anything.

We have an obligation to assure our users the EVERY configuration that is included in the release builds correctly.  Not some of them, not most of them, not a representative set of them, but ALL of them.

I had a similar issues one an nxstyle commit recently.  Nxstyle built fine under Cygwin, but failed to build under Linux.  It needed to include stdint.h.  That inclusion was not necessary under Cygwin perhaps because stdint.h was included indirectly through some other header file.

Haitao is preparing the jenkins job to run all possible config, but
the config number is huge, we need to donate several powerful severs
to ensure the precheck can finish in half hour.

If we use a smaller set to qualify a PR for merging, then I think we would be okay.  We could then run the entire set of configurations asynchronously to assure that all configurations build.

Of course, there will be some errors:  Some cases where a PR builds in the smaller set of configurations, but not for the entire set.  That case would be rarer and should not affect so many users.  Any problems found with the entire set build could be fixed by the next day.  That seems like a reasonable compromise.

Greg

Reply via email to