Commit graph

641 commits

Author SHA1 Message Date
a0d83b4fe8 Library: investigate design for an opaque inline functor
This is a design study to find out what would be required
to build an opaque function wrapper, similar to `std::function`,
yet without using any heap memory ever.

Such a building block would allow for some interesting options
for a well structured design of elaborate data structures.

This changeset provides an implementation draft.

__Two important findings to note__:
 * it is impossible to get away with just a single function pointer
 * because at the very least we need to invoke the destructor of the
   embedded delegate. Thus something akin to a "manager" is required.
 * this implies that the component would not be so efficient as I hoped,
   since it requires two pointers and requires to emit code for each
   type of delegate.
 * by making the component **NonCopyable**, I avoided the complexities
   of virtual copy support. In case the latter is desired, it would be
   much simpler to switch to a classical OO approach with a VTable
   and use our `PolymorphicValue` wrapper to handle copy and cloning.
2026-04-08 01:53:53 +02:00
e0d6362bad BufferProvider: document the adapted structure in UML
There was an old UML diagram created at the time of the first draft.
It is integrated into the »OutputSlot« page in TiddlyWiki. This description
and the diagram are highly relevant for understanding the design in this case.

Unfortunately, Umbrello was "improved" with a lot of features since I used it
for the last time, but the **quality** of the software has been **degraded**,
it is now buggy and the layout is imprecise and gets messed up easily.
2026-03-14 20:44:27 +01:00
9c74466778 Tests: build an link a test-support library
This is something I wanted to clean-up since a very long time indeed,
but always postponed it, since it requires a lot of nasty clean-up and disentangling....

Several parts had been stashed away into `src/lib/test`, which are not really related:
 * the testrunner and testsuite builder
 * generic helper utilities
 * specialised test-support facilities, e.g. the EventLog

This changeset introduces a new top-level test folder and a namespace `::test`
Code from this folder is linked into a shared library `libtestsupport.so`,
which resides in the linkage hierarchy between »Vessel« and »Vault«,
yet is no longer part of the Lumiera application and only linked into the test-suite.
2026-03-06 23:16:32 +01:00
35f946d8d9 DOC: minor wording improvements 2026-03-04 12:52:04 +01:00
8e250839f4 Application: Adjustments to the Layer structure
During the last months, a lot of gradual changes to policies and guidelines
had been finalised and documented. Moreover, recent clarifications regarding
memory management in the render engine will lead to a clearer definition
of the »Vault« Layer's role, with some ''engine code'' expected to move down.

On this occasion, I reworked relevant sections in the documentation to
confirm the role that now falls to central parts of the overall architecture.
Notably I decided to rename those parts related to the application backbone
as »Vessel« — to underpin the more active and defining role they assumed.
2026-03-03 22:16:09 +01:00
7d237647d4 DOC: normalise towards a single form of gitweb-URL
In the past we allowed a lot of leeway when referring to our
web-interface to the Lumiera Git repositories (git.lumiera.org/gitweb)
Unfortunately this caused the AI scraper bots »out there« to capture
millions of URLs for all the different flavours of spelling them out.

And now they haunt our website and try to scrap that content again and again;
even while we effectively prevent that kind of abuse, rejecting those
ongoing attempts at content-scraping causes a dangerously high amount of traffic.

With this changeset, all cross references in the documentation section
are rewritten to the only remaining valid form of that Gitweb URL.
2026-02-15 23:02:52 +01:00
b22ffdacb6 Infrastructure: evaluate Anubis -- document setup 2026-01-13 02:34:27 +01:00
1f0b8085e3 Infrastructure: document simple webserver load monitoring 2026-01-11 02:30:17 +01:00
9df85992ee Infrastructure: upgrade and document the Lumiera Trac 2026-01-08 23:16:29 +01:00
1266427d68 DOC: Intro -- clearer wording
The paragraph that describes the pull processing seems slightly confusing,
notably the follow-up processing is done by child nodes, not siblings.
I attempted to use a more descriptive language
2026-01-06 17:17:45 +01:00
8220981e1b DOC: amend a silly mistake
This was a classical ''collaborative f***up''.
 - in 2018, `cehteh` wrote a infrastructure config summary
 - late in 2025, `ichthyo` merged various documentation content
   and placed that piece of information into the technical docu.

Unfortunately, the Baidu search engine has picked that info up,
and in the last week of December 2025, some stray bots started
to »visit« the staging area.
2025-12-28 23:24:42 +01:00
bd48b17f70 Status: Release published -- now again in Development Phase
Hereby I introduce a ''Development Status'' page, where the
current phase of the release cycle can be marked and similar
status information is published. This page also includes
the Changelog (from the file NEWS). Since updates must
be checked into Git and then pushed to our website,
such status marks are documented in the history.

Some notes regarding the phases of the Release cycle
were also added to the Release checklist.

+ some additional links resources and documentation tweaks
2025-12-11 05:11:55 +01:00
d0f7b3787c Merge branch 'rel/0.pre.04' into integration 2025-12-03 14:44:55 +01:00
0bc87264cd RELEASE: 0.pre.04
This is a **preview release** — Lumiera is not usable yet.

Publication was again motivated by a series of major upgrades and clean-up.
Compilation now requires C++23 and Debian/Trixie is considered the reference
platform. The GUI is connected to the core over an asynchronous messaging
bus and the timeline display has been reshaped to accommodate flexibly
nested structures of media content, instructed by the session through
a series of _diff messages_. A scheduler has been implemented to drive
the Render Engine, but the connection to the player and UI for output
is yet unfinished.
2025-12-02 16:48:55 +01:00
651cf144a5 Release: general washdown
- comb through the Website, starting at the frontpage
- add a **news** entry to confirm this major upgrade step (C++23)
- improve the wording in various overview pages
- adapt the ''release checklist'' to align it with **git-flow**
- reorganise the image folder(s) on the website
- the animated beating heart is back ;-)
2025-11-30 21:22:23 +01:00
797174ef19 Release: extensive makeover of Build and Debian documentation
On the Website, there is a set of interconnected pages related
to compiling from source, the Debian package and our DEB depot.

Although these pages have always been superficially kept up-to-date,
the overall presentation feels dated and generally not well organized.
During the last weeks, I have almost entirely rewritten all those pages,
added information about the (now reworked) DEB package, explained the
alternate ways to build from a Debian source package (notably the
`mk-build-deps` for handling the build dependencies, which effectively
the only method which always worked during the last years, since our
DEB package was totally outdated)

Furthermore, I have tested most of the build steps with the current
source trees, repositories and package definition, and finally I
have also updated and polished the front-page of our DEB-Depot
(-> see commit on the depot-Branch)

Wheew ... quite some work done!
2025-11-29 18:04:30 +01:00
eb4c49e1b2 Build: upgrade, tighten and document the prerequisites
Many versions enforced with this changeset are chosen such
as to support Ubuntu/Noble (24.04) and otherwise use versions
reasonably close to Debian-Trixie (≙reference-platform)

Since we now require a fairly modern compiler for C++23,
I have added now an explicit version check, which however
is performed only if the defined compiler is named `g++*`

Furthermore, I combed through all of our build tutorials and documentation pages
and updated a lot of information regarding dependencies and build practices...
2025-11-28 04:24:52 +01:00
8b2a329898 Build: some further code clean-up and documentation
* Simplify some constructs from the Python-3 migration
 * update copyright, since I did maintain the SCons build continuosly
 * remove unused method from Buildhelper

Furthermore, the documentation page for our build system
https://lumiera.org/documentation/technical/build/SCons.html
has been reworked, to add a synopsis, some further background
information about the internal structure of SCons and about
the specific conventions and definitions used for Lumiera
2025-11-27 18:21:22 +01:00
ceceaf4ece Release: compile authorship information
Some recherche regarding the requirements and conditions of the GPL
made it clear that we are obliged to have at least an summary statement
of all authors and the years of their contributions embedded somewhere
in the source itself. The Git history alone is not sufficient to fulfil
this requirement, since a code base could be packaged as Tarball
and passed-on outside of any Git repository.

Thus I propose the following policy
- add yourself to the copyright header whenever you made
  some ''significant'' contribution to a code file
- maintain a list of relevant authors at top-level,
  indicating a time range of their contribution
- use the same information also in the debian/copyright (DEB package)
- clarify in the LICENSE that authorship can be extracted from Git

__Remark__: Anton Yakovlev made a single code contribution in 2009 (87e528bd),
which was never used anywhere and removed as part of a general clean-up in 2023.
Thus I do not list him as a code author, but he is mentioned in credits.txt
2025-11-24 00:52:47 +01:00
6c3f0edf10 Release: update README
...and split-out the description of preview-releases,
since that rather belongs into some kind of changelog (NEWS).

Furthermore, check the links to the build dependencies
2025-11-22 01:40:43 +01:00
5c8e88e59e Build: provide a placeholder page for the (planned) User-Manual
Debian-Docbase allows to register some HTML documentation;
My old package definition added placeholder config, which renders
the documentation configuration invalid (as pointed out by Lintian).
However, I still think it is a good idea to have the anchor point
already defined, and thus I came up with the idea of in fact
providing some usable placeholder content...

As it turns out, we also have a placeholder page at the Lumiera website,
where the User Manual is assumed to be located later — so why not extend
this one and then provide the HTML-rendering for the DEB package?

To allow for this setup
 * I have now extended the placeholder page for the Website
   to include some generic description about Lumiera (from the 'about' page)
 * Furthermore, I added the screenshot (from the »Outer Space« page)
 * and I use this a an opportunity to document the various test / demo
   facilities currently available in the GUI, since these are rather obscure.
   While only intended for the developer, it seems still worthwhile
   to describe the possible effects — it may well be that we retain
   some of that test/demo functionality and in that case, we have
   now already some starting point for a documentation

 * Then, to include that page as stand-alone HTML, I used the 'Print Edit WE'-plugin
   from Firefox, to encode the images as inline-base64 URLs (which are restored
   by a tiny JavaScript embedded into that page)

 * and last but not least, our SCons buildsystem needs the ability
   to install such a documentation file, since it seems most adequate
   to handle this requirement as part of the generic installation (and
   not hidden in some Debian scripting)
2025-11-18 23:09:54 +01:00
11efb6e9de Git-flow: Illustrations
Vectorgraphic drawings to show the Git-flow branching scheme
explained in the accompanying text
2025-11-10 19:20:15 +01:00
1c234d5a0b clean-up: some Doxygen improvements
- reorganise the navigation tab structure
- place all further index lists into a common "Index" tab
- include a list of concepts
- remove the various "member" sub-tabs, these are not helpful
- the "modules" tab is now called "topics" (since C++ has now Modules!)
- generally re-sync DoxygenLayout.xml with a current pristine template
- comb though the Doxygen Warnings and fix a lot of small problems
2025-11-05 02:55:45 +01:00
19497f8a7b clean-up: update content of the introductory overview pages
The »Outer Space« and »Inner Core« documents present a comprehensive
overview of the vision, architecture and essential parts of the implementation.

In the light of changes to policy, design and implementation approaches,
some updates were necessary to align these crucial texts with the current
state of planning and implementation. Notably I have added a recent Screenshot
of the UI, showing a nested track structure pushed up by Diff from the core.

Over the last weeks, I conducted an extended analysis of the inception time
of the Lumiera project, which gave me a sharpened understanding of the goals,
going forward. I have also written an in-depth essay "Complexity and Flexibility".
See the corresponding commits in the Website repository.
2025-10-28 02:23:42 +01:00
051cb31e28 clean-up: re-classify essential RfCs
The RfC documents were written to complement discussions of the Lumiera developers;
yet since the time where ''Ichthyo'' is working basically alone on the project,
this kind of discussions have ceased. During the following years, some ideas
promoted by the existing RfC documents became rather detached from the
actual state of development in the code base.

Many of the existing RfC documents require some commentary to place them
into context, and some of the decisions taken in the early stage of the
project should be **re-assessed**. This includes the decision to reject
some proposals, which initially might have seemed desirable, yet could not
be reconciled with the understanding of the matter and topic in question,
as was gained through the ongoing analysis and development.
2025-10-08 00:48:13 +02:00
c7528bbe8a clean-up: some RfCs became effectively final
The purpose of RfCs is to channel and document discussions
among a group of developers regarding questions of design.
While there is unfortunately no longer a group of developers
discussing matters and working together on the code base,
some questions can be considered more or less settled,
by being implemented and validated.

- the Scheduler
- structure of the Developer Documentation
- Application installation as relocatable bundle
2025-09-21 05:40:15 +02:00
67695c97b8 clean-up: drop superseded or obsoleted RfCs
See added comments for the reason
2025-09-21 05:40:15 +02:00
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
0c3cd9027c DOC: clarify UI / discussion
- indicate clearly that a ''past discussion'' is documented here
- point out what is the primary focus for UI design ''currently''
- arrange some links better
- use cross-links / Linkfarm; especially cross-link to
  the discussion regarding Wouter's Workflow proposals (2025)
2025-09-19 19:51:28 +02:00
217ec447c0 DOC: reorganise time handling pages (use Linkfarm)
Create a new subcategory "design/architecture/time"
and rearrange several pages related to time handling and time codes.

NOTE: starting with this changeset, a ''Link-Farm'' is required for cross-links;
since we don't have an automatic solution for this task yet, I have created
the necessary forwarding pages manually in the website repository.
2025-09-19 19:34:27 +02:00
25eb6a61e3 clean-up: link maintenance
- use HTTPS
- avoid redirects
- supply Archive.org snapshots for old resources
2025-09-19 19:34:27 +02:00
Christian Thäter
060cbae2cd DOC: Server and Mailinglists 2025-09-02 02:03:24 +02:00
43a9036c0d Workflow-publish: minor layout tweaks and spelling fixes 2025-08-31 00:48:44 +02:00
537c89298b DOC: FrOSCon meeting -- additions and corrections as proposed by Wouter 2025-08-31 00:47:39 +02:00
592622d750 Workflow-publish: adapt additions to Asciidoc 2025-08-23 18:50:13 +02:00
Wouter Verwijlen
f6427474ad Workflow-discussion: Lumiera Workflow Proposals (draft v3)
...fine-tuned a few small bits here and there in the
   current chapter of the workflow document

===========================================================
Remark from Ichthyo(committer):

Converted from PDF to raw text with

    pdftotext wouter250819v3.pdf WorkflowProposals.txt

Images extracted with:

    pdfimages -png -j wouter250819v3.pdf wouter/wouter250819v3

Again adding the images separately to the Website-repository,
in order to save storage space in the main repository....
2025-08-23 17:55:42 +02:00
4dba1c816d DOC: FrOSCon meeting -- integrate improvements from Benny 2025-08-23 04:29:08 +02:00
4eb24220c9 DOC: FrOSCon meeting -- minor fixes and cross-links 2025-08-23 03:37:08 +02:00
6a42606c3a Workflow-publish: adapt additions to Asciidoc
- add markup to match formatting from PDF
- link to the images extracted into the website Git-repository
- adjust image sizes to fit into the text
- add some cross references

(incidentally: TimelineDiscussion.txt -- store image locally)
2025-08-23 01:55:23 +02:00
Wouter Verwijlen
68633de53b Workflow-discussion: Lumiera Workflow Proposals (draft v2)
Chapter 2 (about the timeline) is now complete.
- extend discussion regarding trackless
- add section about Tools / Modes / Views
- section: Adding clips to the timeline
- section: Selecting clips
- section: Arranging clips
- section: Trimming clips
- section: Splitting and merging clips
- section: Removing clips
- add subchapter regarding sections of the timeline
- Adding and editing transitions
- Changing timeline clip properties

===========================================================
Remark from Ichthyo(committer):

Converted from PDF to raw text with

    pdftotext wouter250629v2.pdf WorkflowProposals.txt

Images extracted with

    pdfimages -png -j wouter250629v2.pdf wouter/wouter250629v2

Images required no cropping;
the white background images were omitted.

Again adding the images separately to the Website-repository,
in order to save storage space in the main repository....
2025-08-22 16:42:55 +02:00
262fe7f3bb Workflow-publish: rewrite the text from Wouter into Asciidoc 2025-08-22 01:55:50 +02:00
Wouter Verwijlen
a2890a627f Workflow-discussion: Lumiera Workflow Proposals (draft v1)
This is the version from 4.Apr
 - add a subchapter about the current NLE landscape
 - add a subchapter on tracks vs. trackless
 - add a bit more information in the navigation subchapter.
===========================================================
Remark from Ichthyo(committer):

Converted from PDF to raw text with

pdftotext wouter250404v1.pdf WorkflowProposals.txt

Images extracted with

pdfimages -png wouter250404v1.pdf

...and then cropped in Gimp ("crop to content");
images 06 and 11 needed to be split in two parts
cropped in Gimp ("crop to content")

NOTE: Adding the images separately to the Website-repository,
      in order to save storage space in the main repository,
      because content, once added, can not be removed from Git....
2025-08-22 00:23:42 +02:00
a021fe1189 DOC: rework the "Target audience" and add an overall conclusion
- included the list of "Personas", quoting from Wouter's document
- add some details from the ensuing discussion
- close the document with a section "Conclusions" to list the
  most relevant open points
2025-08-21 21:26:21 +02:00
e2d9fea710 DOC: Add section "Target audience"
TODO the ordered list of target groups. I didn't have a list of all target
groups and their priority, so please provide the list somebody.
2025-08-21 21:26:21 +02:00
eb887706e5 DOC: minutes (continued...) 2025-08-21 21:26:21 +02:00
7bbb21a8ad DOC: minutes of FrOSCon meeting
Topic: proposals for Lumiera Workflow
Present:
- Wouter Verweijlen
- Benny Lyons
- Hermann Voßeler

Note: This commit creates a new subsection
      for the discussion related to Wouter's »Lumiera Workflow Proposals«....
2025-08-19 15:15:36 +02:00
aba5781754 Dev: bump version to 0.pre.05~dev
__Explanation__: in line with the Git-flow scheme, the version number
embedded in-tree will now indicate the ''expected next release version,''
yet marked with a suffix `~dev` (which sorts ''before'' this version number)
2025-07-21 18:54:15 +02:00
6c079839c2 Release: version of upcoming release -- with Git-flow
Starting with ''preview release'' `v0.pre.04`, branch and version tags
will be handled in accordance to the **Git-flow** naming scheme.
Notably this implies that from now on the version in-tree will indicate
the ''next expected release,'' adorned by a suffix to mark the preview.

To accommodate this transition to Git-flow
- the new branch `integration` will be introduced
- the version number will once (and the last time for this release)
  be adjusted ''before'' forking the release branch
- branch `master` will transition to reflect the latest released state
- several existing branches will be discontinued, notably
  `gui`, `steam`, `vault`, `release`, `play`
2025-07-21 03:23:45 +02:00
17ee3ac1cb Release: Introduce the Git-flow branching model
Starting with the upcoming ''preview release'', branches, branch names and tags
will be rearranged to follow the Git-flow pattern instead of the existing
ad-hoc organisation with a release branch.

The documentation provided here defines the actual naming conventions
and some fine points regarding the version number upgrades
and placement of release tags.


Furthermore, two helper-scripts are provided to automate version number updates
- `buildVersion.py` : extract current version from git tag and allow to bump version
- `setVersion` : manipulate all relevant files with `sed` to update the version info
2025-07-21 02:46:28 +02:00
170b68ac5c Upgrade: further extend usage of the tuple_like concept + generic apply
This changeset removes various heuristics and marker-traits
by a constraint to tuple_like types. Furthermore, several usages
of `apply` can thereby be generalised to work on any tuple_like.

This generalisation is essential for the passing generic data blocks
via `FeedManifold` into the node invocation
2025-07-02 01:16:08 +02:00