State |
Final |
Date |
2007-06-08 |
Proposed by |
Cehteh |
Development Framework
Here we collect how the tree/repository will be set up and which tools are needed/required for working on lumiera.
Description
-
Unix like shell environment with standard tools
-
we don’t require a specific linux distribution
-
Git 1.5.3 (not out yet, but really soon, we want submodules support)
-
GNU toolchain, autoconf/automake (maybe SCons or something else?)
-
Bouml (version case unresolved)
-
doxygen
Tasks
-
Cehteh will setup a initial repository (see → RfC: proposed repository structure)
-
ichthyo has setup a debian-APT-depot at deb/ichthyostega.de and will add backport packages there if necessary so the debian-people can stay near Etch/stable in the next time
-
Ichthyo volunteers to get the new source into a debian package structure from start (same as the current cinelerra is)
-
decide on a Unit Test framework (see → RfC Unit-Tests)
-
can we get some continuous integration running somewhere (nightly builds, testsuite)?
-
find a viable toolchain for writing more formal documentation. ReStructured Text, Docbook etc?
Cons
-
Git submodules are just not usable yet; we need to come along with one monolitic large project until they are available.
Alternatives
-
use visual studio and .NET 😇
Rationale
The project will be tied to a distributed infrastructure based on Git. With recent
Git submodules support it should be easy to let contributors only checkpout/work on
parts of the tree (plugins, documentation, i18n, …). We want to build up a
set of maintenance scripts in an ./admin directory.
At the moment we go for rather bleeding edge tools, because we want to stay at a given version to avoid incompatibility problems. Later on a version switch needs agreement/notification by all devs.
Comments
I am always in favor of getting the basic project organization and all scripting up and running very early in a project. I would like if the project would take a rather conservative approach on the required Libs and Tools, so that finally, when we get into a beta state, we can run/compile on the major distros without too much pain. I wouldn’t completely abandon the idea to target *bsd and osX as well later on.
I would propose to move Doxygen to “required”. The Idea to use SCons sounds quite appealing to me at the moment. Besides that, I think this RfC could be moved to “Draft”.
- Ichthyostega
-
2007-06-17T00:18:40Z
Moved to Draft. For Developer documentation I would prefer doxygen. For user documentation we can make a similar/same think like nicolasm did for cinelerra2, means wiki for edits, git to maintain it, based on gnu texinfo. Texinfo is quite limiting in its capabilities but it suffices, seeing the current cin2 docs, i say its rather well done.
We need to factor out some of the proposals from this page to subpages (scons, documentation, testing,…)
- ct
-
2007-06-17T17:27:59Z
It would really suck if we have to go through the experiences described in the article »Stop the autoconf insanity!«. I have experienced parts of that in the past. I have only some beginner experience with writing autotoolized projects (mostly based on trial-and-error) and no experience in any other build system (such as scons). As such, I still believe that autotools can be manageable (for me personally) once the initial hurdle of learning is overcome.
I all for Doxygen documentation. Related to documentation are Splint: Annotation-Assisted Lightweight Static Checking. See also descriptions of annotations (in comments). I suggest that we consider using such a tool for QA. Like ct said, this should be discussed in a subpage.
I agree with using currently bleeding-edge tools.
-
historic remark(Ichthyo): who wrote that comment? (neither me nor ct)
We have now a “compatibility wiki”, finalized this proposal
- ct
-
2008-03-26T13:43:26Z
​
​
​
Assessment 2025
In hindsight, this RfC captures the baseline of our project setup.
We soon settled upon the following toolchain, which is used up to today:
-
One published Git repository per developer, with direct pull / merging;
history is consolidated eventually into the »official Lumiera repository«, which is made accessible atgit://git.lumiera.org/LUMIERA -
We never used Git submodules…
-
SCons became the primary buildsystem soon, with Autotools discontinued in 2011
-
Trac is used as planning- and ticket system.
-
API documentation is extracted with Doxygen
-
Website and documentation pages are generated by Asciidoc, with source files for documentation maintained in-tree, published automatically on push.
-
A TiddlyWiki is used for development notes
-
for Unit-Tests, we use our own minimalist Test-runner. and a shell script to support definition of test collections.
-
A Debian package is maintained with git-buildpackage and published in our own DEB depot generated by the reprepro tooling.
-
UML plays only a marginal role today — yet in fact we generated our initial class hierarchy with Bouml, as proposed by Cehteh. Sometimes, UML design sketches are made with Umbrello, while schematic drawings, Icons and graphic elements for the GUI are maintained with Inkscape
-
Test-visualisation relies heavily on Graphviz and Gnuplot
- Ichthyostega
-
2025-09-20
Back to Lumiera Design Process overview