<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-2" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
I would even like to go one step further in the long run.<br>
<br>
The current situation is that rosbuild takes about 10 minutes for a
build. With adding more code and more modules to our codebase, this
time will increase. If we wanted to do something like auto-rejecting
commits that break build it would lock the commit process for this time
on every commit.<br>
<br>
Also as we get more developers and maybe start forming teams or
whatever, things will get problematic with our current "monolithic"
approach.<br>
<br>
We should think of changing the build process, so that not the whole
system is rebuild everytime someone changes one module.<br>
We currently treat reactos like one huge module, but it isn't. It's a
bunch of more or less independent things. A change in a usermode dll
should not lead to an notskrnl recompile, it just doesn't make sense
and only wastes time.<br>
<br>
I think it would be better to seperate the components from each other
as much as possible and only compile the modules that have been changed.<br>
<br>
Of cause all modules somehow depend on each other, but mostly through
well defined interfaces. These are exposed by the headers and import
libraries. And those 2 are the problem atm. <br>
It might be a good idea to completely separate the sdk from the os
itself. The sdk would contain both the headers and the spec files to
build the import libraries. If we made sure these are in a good shape,
we would eleminate most interdependencies as they should only rarely
change.<br>
<br>
We could try to split the current reactos tree into seperate trees,
maybe like this:<br>
sdk: headers, import library definitions, crt<br>
core: rtl, freeldr, hal, ntoskrnl, boot drivers, ntdll, smss<br>
drivers: other hardware drivers<br>
win32core: win32k, video drivers, gdi32, user32, csrss<br>
win32dll: the other win32 dlls<br>
sound: everything related to sound<br>
network: everything related to network<br>
reactx<br>
services<br>
apps<br>
<br>
Some of these trees could be optional, like network, sound, reactx<br>
It might even allow to create a bootable core system without win32
stuff, booting into a simple native console.<br>
Working with branches might as well profit from this.<br>
<br>
Just my 2 cents,<br>
Timo<br>
<br>
<br>
Aleksey Bragin wrote:
<blockquote cite="mid:288D8587-0395-49C2-8156-0FFEA9F19530@reactos.org"
 type="cite">I'll explain his idea.
  <br>
  <br>
The idea he would likes to propose is to separate the mess inside
rosapps, and provide a clear division of what goes where:
  <br>
1. trunk/reactos contains ONLY stuff which is vital for the system to
work minimally. Including explorer, GUI, and things like that, but
without calculator, solitaire, or anything like that.
  <br>
2. rosapps - components similar to those present in Windows, but not
vital for the boot process.
  <br>
3. addons - components, which are additional to the base set of apps
and drivers Windows ships with.
  <br>
  <br>
Comments are welcome on his idea.
  <br>
  <br>
My own comment is that the idea seems to recall what we originally been
discussing a year or more ago, but stopped caring as more devs got more
powerful PCs. There is no strict solution on what goes where now,
actually that's why his idea started - he proposed to move winver and
winhlp back to trunk, and I was arguing over it.
  <br>
  <br>
  <br>
WBR,
  <br>
Aleksey Bragin.
  <br>
  <br>
  <br>
On Mar 8, 2009, at 7:02 PM, Zachary Gorden wrote:
  <br>
  <br>
  <blockquote type="cite">Huh?  The rosapps module isn't included by
default in the build to begin with, so how does it decrease build
time?  Also, the applications in there are supposed to be providing
equivalent functionality found in Windows.  Downloader is an exception,
but what else is?
    <br>
    <br>
On Sun, Mar 8, 2009 at 8:00 AM, Dmitry Chapyshev
<a class="moz-txt-link-rfc2396E" href="mailto:lentind@yandex.ru">&lt;lentind@yandex.ru&gt;</a> wrote:
    <br>
Hi.
    <br>
    <br>
I suggest to divide rosapps on two parts:
    <br>
    <br>
1) Components which are present in Windows (rosapps)
    <br>
2) 3rd party components (3rdapps)
    <br>
    <br>
In rosapps it is necessary to place all components without which the
    <br>
system can normally work (calc, hh, winhlp32, charmap, games and etc)
    <br>
    <br>
In 3rdapps components which are not present in Windows (downloader,
    <br>
imagesoft and etc) will take places
    <br>
    <br>
Such placing of components will allow to reduce compilation time as you
    <br>
can not compile not the modules necessary to you (rosapps and/or
3rdapps)
    <br>
    <br>
Please tell your opinion on my proposition.
    <br>
    <br>
--
    <br>
WBR,
    <br>
Dmitry Chapyshev
    <br>
_______________________________________________
    <br>
Ros-dev mailing list
    <br>
<a class="moz-txt-link-abbreviated" href="mailto:Ros-dev@reactos.org">Ros-dev@reactos.org</a>
    <br>
<a class="moz-txt-link-freetext" href="http://www.reactos.org/mailman/listinfo/ros-dev">http://www.reactos.org/mailman/listinfo/ros-dev</a>
    <br>
    <br>
_______________________________________________
    <br>
Ros-dev mailing list
    <br>
<a class="moz-txt-link-abbreviated" href="mailto:Ros-dev@reactos.org">Ros-dev@reactos.org</a>
    <br>
<a class="moz-txt-link-freetext" href="http://www.reactos.org/mailman/listinfo/ros-dev">http://www.reactos.org/mailman/listinfo/ros-dev</a>
    <br>
  </blockquote>
  <br>
  <br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Ros-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Ros-dev@reactos.org">Ros-dev@reactos.org</a>
<a class="moz-txt-link-freetext" href="http://www.reactos.org/mailman/listinfo/ros-dev">http://www.reactos.org/mailman/listinfo/ros-dev</a></pre>
</blockquote>
<br>
</body>
</html>