LUMIERA.clone/doc/devel/rfc/RepositorySetup.txt
Ichthyostega b556d2b770 clean-up: comb through the historical pages to fix markup errors
Some sections of the Lumiera website document meeting minutes,
discussion protocols and design proposals from the early days
of the project; these pages were initially authored in the
»Moin Moin Wiki« operated by Cehteh on pipapo.org at that time;
this wiki backed the first publications of the »Cinelerra-3«
initiative, which turned into the Lumiera project eventually.

Some years later, those pages were transliterated into Asciidoc
semi-automatically, resulting in a lot of broken markup and links.
This is a long standing maintenance problem problem plaguing the
Lumiera website, since those breakages cause a lot of warnings
and flood the logs of any linkchecker run.
2025-09-21 05:40:15 +02:00

127 lines
4.5 KiB
Text

Design Process: Repository Setup
================================
[options="autowidth"]
|====================================
|*State* | _Final_
|*Date* | _2007-06-09_
|*Proposed by* | ct
|====================================
Repository Setup
----------------
Here we describe the Directory hierachy and how the git repository are set up.
Description
~~~~~~~~~~~
------------------------------------------------------------
far incomplete
./admin/ # administrative scripts, tools etc
./doc/user/ # user docs
./doc/devel/ # development docs
./uml/ # uml model
./tests/
./tests/bugs/
./wiki/ # tiddlywiki for semi-persistent documentation
./oldsrc/ # cinelerra2 sources
./src/$COMPONENT/ # new source, per component (lets see how bouml generation
works for this)
------------------------------------------------------------
The Cinelerra-2 sources are put into `oldsrc` on a per-case base.
We want to use the new GIT feature of ``Superprojects and Submodules'' when it is
ready for general use. Then we will transform several subtrees into separate
GIT repos which will be linked to from the main Project (then called the
_Superproject_) as _Submodules_.
Pros
^^^^
* Because its a text-like structure, it is partially self-documenting
* GIT is flexible and with the planned submodules it can be separated in
chunks of manageable size if necessary
Cons
^^^^
* Can get large and confusing
* has no real ``portal'' or entrance point for people wanting to join
Rationale
~~~~~~~~~
Every important document, draft, text and code (including) prototypes should be
checked into one SCM (or a set of related SCMs). This Repo should be ``almost
everything'' you need for the project. Because we try to use a distributed
development model, every dev can/should have his own copy and fed his changes
back.
This ``Repository approach'' avoids the problems of a central infrastructure and
helps cut down project management time. Basically, every dev is responsible
himself for getting every important piece of information added into ``the
general view of matters'' in a consistent way.
Comments
--------
- Basically the structure is just fine.
- Maybe add a ``pastebin'' somewhere in the dev-documentation area?
- I would add the source tree roots at level 2, so we can have several
submodules here:
** oldsrc
** cin3
** prototype
Ichthyostega:: 6/2007
Yes I left source dirs out but this sounds fine, note that with git, there is
no problem to reorganize the repo (in contrast to CVS) later. We can fix
things afterward when we find better ways.
ct:: '2007-06-17T17:36:46Z'
Whats prototype for? won't that be better a branch?
ct:: '2007-06-17T22:04:39Z'
I just wanted to show there could be additional things beside the main tree
(later to be separate submodules). The example was meant as a classical
throwaway prototype. But I agree, in our case we just start hacking at the
new tree and make feature/tryout/prototype branches...
The point I wanted to make is: every directory 2 levels deep in the source
tree, e.g. /src/cinelerra3 or /src/oldsrource should be a completely
self-contained tree which can be built without needing anything of the rest
of the repo. Thats an prerequisite for moving to Submodules IMHO. But you
seem rather to put the sourcetree-roots 1 level deep. As we have just two
trees at the moment (and can easily reorganize), I have no objections against
this. The only point I really care is to try to keep the source tree
self-contained without any dependencies to the rest of the ``design GIT''
(because of this Superprojects-Submodules thing...)
Ichthyostega:: '2007-06-17T23:45:06Z'
We could make the trees deeper than one level, I didn't intended 1-level
depth. but also be careful with that not to make it too complex. While I am
not sure if we want a complete oldsrc, that just adds weight and confusion
for now (lets see). Neither I am fully decided about the hierarchy in /src
(want /libs /plugins or /src/libs /src/plugins or /src/render/plugins? name
it rather 'effects' than 'plugins'?). While I am quite sure that I want to
separate /oldssrc and /src quite much (in /src should only be new stuff or
stuff which is carefully reviewed, with known license and author).
ct:: '2007-06-18T08:38:43Z'
I made this proposal 'final' now further details are likely better worked out
in the Git repository (and we already started to define things there) see
./admin/treeinfo.sh
ct:: '2007-06-27T16:01:52Z'
''''
Back to link:/x/DesignProcess.html[Lumiera Design Process overview]