[Paraview-developers] Proposed ParaView CVS hierarchy

Berk Geveci berk.geveci at kitware.com
Wed, 04 Feb 2004 14:15:07 -0500


Hullo,

The current ParaView directory structure does not represent the ParaView
architecture properly. As it is, all ParaView specific non-GUI and GUI
classes are contained in the ParaView directory and it is not possible to
separate the classes specific to client (GUI), client manager (non-GUI) and
server (non-GUI). Furthermore, we maintain two different CVS trees:
ParaView and ParaViewComplete. This allows users to build ParaView in so
many ways that it is very hard to maintain and support. Here is a proposed
hierarchy:

ParaView - VTK (link)

         - Utilities        - Xdmf (link)
                            - IceT (link)
                            - hdf5 (link)
                            - ...

         - Common           - KWCommon          (link)
                            - NetworkUtilities  (link)
                            - ...

         - Servers (link)   - Common
                            - StreamInterpreter
                            - ServerManager

         - TclTk (link)

         - GUI              - Widgets (link)
                            - Client

I tried to order the directories such that every line can depend on all
lines above it but does not depend on any below. The directories marked as
(link) are symbolic links to other repositories or sub-directories in other
repositories.

Pros:

  1. Much cleaner. It should be easier to locate a class based on which
     part of the ParaView architecture it belongs.

  2. Since the GUI and the non-GUI components are separated, it will be
     easier to change the configuration so that we can create independent
     executables for client and server, i.e. we can create a server that
     does not depend on any GUI code.

  3. Each directory can be another repository that is referenced by another
     project. For example, a Qt based application can include all
     directories but TclTk and GUI.

Cons:

  1. It will be no longer possible to build ParaView separately from VTK
     (linking against an external VTK).

  2. If we name the root directory ParaView, this tree will replace the
     current ParaView CVS tree and it will not be possible to checkout old
     versions of ParaView tree separately. To get the old versions, we will
     have to to checkout ParaViewComplete with a tag.
     
What do you think?

-Berk