On Wed, Jan 15, 2020 at 2:21 AM Gregory Nutt <spudan...@gmail.com> wrote: > > 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.
Yes, that's typo errors just happened when the write buffer isn't enable, all our config enable the write buffer unfortunately. > > 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. The report from Haitao show that all arm 400 config can build within 94min with his machine, so I think it is reasonable to achieve half hour goal by: 1.Enable more optimaition(e.g. ccache, ramdisk...) 2.Use more powerful machine(e.g. big memory, more cpu core and fast SSD) And we can use one Linux machine build all arm config, and anthor Windows machine build the rest config with cygwin, msys, wsl. We are discussing internally to donate several build machines to ensure all build could finish within half hour. > > Greg