To add to the patch-to-merge workflow discussion, an anecdote.

Earlier today I jokingly wrote "For the build system we should
require more PMC votes than we have PMC members!!"

Soon after, I grabbed the latest updates and tried to build my
configurations and... the build was broken!

I wrote:

[[[

Uh oh, commit 1c91aec6ae77b49608741e5aa30b8b6876017934 ("tools/ and
fs/procfs:  Simplify .version file generation") breaks the build if
not in a git clone:

$ make
Create .version
fatal: not a git repository (or any parent up to mount point /home/nate)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Missing versioning information
USAGE: tools/version.sh [-d|-h] [-b <build>] [-v <major.minor>] <outfile-path>
Try 'tools/version.sh -h' for more information
make: *** [tools/Makefile.unix:266: /home/nate/nuttx/.version] Error 1

If git is not available or building a copy of NuttX which is not a git
clone, the create version logic should degrade gracefully in a way
that does not break the build!

]]]

Thankfully, Greg fixed this at warp speed with commits
3e4450e2376bb99da2ed5a3f0380044ce868e564 and
10b8c01abfa58276f006c282e1d88481fb0a4a8e.

The point is, though, that this is precisely why we need to qualify
what gets into the system. I feel pretty strongly that we can be
flexible with things like drivers, hacking on architectural support
for new chips and boards, etc. The impact of bugs or incomplete code
there will be minimal and those are easy to catch and fix. I would
like to make it easy for contributors to get their code out there and
to feel like there's incentive to contribute, and not to put too many
roadblocks in the way that would become a deterrent for contributors.

BUT!!

The core of the OS and the build system need the highest level of
qualification. Screwups there are really disruptive!

Problems in the build system might quickly become apparent.

Problems in the core OS could go undetected until intermittent
problems that are extremely hard to trace appear in the field. Since
NuttX goes to places like space, "in the field" might be kind of,
slightly, REALLY far away!

So we definitely need to continue discussing what process changes to
these critical parts should undergo on their way into NuttX.

Cheers,
Nathan

Reply via email to