Not going to call you an idiot, but the methodology you propose would not be appropriate for this project.  The objective is to create an entire operating system and provide something that is usable for the end user, not create a giant mess of parts that may or may not integrate well into each other.  The work that a lot of distros do is quite frankly massively overredundant, caused by all the projects pretty much doing whatever they want.  And splitting into a bunch of "mini" projects doesn't solve the fundamental issue of lack of manpower.  It just disperses what we do have even more.

On Fri, May 15, 2009 at 3:03 AM, Peter Millerchip <peter.millerchip@gmail.com> wrote:
Hi,

I've been lurking on this list for several years, but I have some
thoughts about this issue so I hope you don't mind me posting now.

It seems to me as though discussions like this are more of a
"distro-level" thing - if you consider how Linux does things, the
kernel is a separate project from the userland, and it's up to the
distros (like Ubuntu, Fedora, etc.) to decide whether to ship a tftp
server.

Now, I must admit I'm not an expert on the internals of ReactOS at
all, so please forgive me if this idea is not technically feasible,
but couldn't we make a similar kind of separation in ReactOS? As far
as I can see, there's no technical reason why even something like
USER32.DLL couldn't be a completely separate project from the ReactOS
kernel, using maybe a different branch of the source code and testing
on Windows XP. After all, the GNU tools were written in this way,
gradually replacing core components of various Unixes.

So, if we follow the same kind of development model as Linux, the
ReactOS kernel would be the sole ReactOS project. Then you would have
different maintainers for different parts, say USER32.DLL. Then you
would have someone who compiles "distros" of ReactOS, picking and
choosing the best pieces to go with the kernel itself. You could have
a "netboot-specialised" distro which included the tftp and PXE stuff,
or a more general "newbie" distro.

I would expect that many of the subprojects would share code in order
to make things a bit easier - but the important thing to realise is
that they wouldn't be forced to. Say if the USER32 maintainer decided
to do a Wine sync, but the kernel guys didn't want to, this would
actually be OK and would still work fine. The USER32 maintainer could,
if they wanted, have a completely separate source tree from the
ReactOS kernel. As long as the USER32 DLL worked on Windows XP, it
would be good - if the ReactOS kernel didn't work with it, it would be
a bug in the kernel.

So, is this idea feasible or is there some reason why it wouldn't
work? Please feel free to call me an idiot if I've missed some
important technical detail, but it seems to me that introducing this
kind of separation would really help the project to move forward very
quickly in the same way that Linux has.

Best regards,

Peter Millerchip.