pcb-rnd knowledge pool
Long term plans: pcb-rnd 3.0.0, hidlib and ringdove
ver_3.0 by Tibor 'Igor2' Palinkas on 2019-07-21 | Tags: roadmap, pcb-rnd, 3.0.0, 3.0, hidlib, rndlib, ringdove |
Abstract: n/a
There is no schedule on this yet: it's just a real long term plan on how dependencies would be resolved within the ringdove suite.
librnd phase 1: booting other apps
For the first period of time, in the pcb-rnd 2.x.x era, the hidlib (and more generally: librnd) will be part of pcb-rnd. When you install pcb-rnd, it will also install the librnd (hidlib included) that then can be used by other ringodve applications. pcb-rnd itself will not depend on the new libs yet. camv-rnd and other users will compile only if librnd is fully installed (by configuring, compiling and installing pcb-rnd).
Librnd (lib ringdove) is a modular set of libraries and include:
- the hidlib, with the HIDs and all major generic infrastructure (e.g. the action system)
- the polygon clipping code from pcb-rnd, turned into a library
- a small collection of 3rd party minilibs, to support the above two, just in case the minilibs are not system-installed and not delivered by the application using the hidlib
librnd phase 2: separating librnd within pcb-rnd
Still pcb-rnd 2.x.x, we will then start separating librnd within pcb-rnd a bit more. pcb-rnd will start to depend on librnd it installs. However, this won't affect other librnd users, there is no change for them compared to phase 1.
librnd phase 3: stand-alone librnd (pcb-rnd 3.0.0)
There will be a long development cycle when we remove librnd from pcb-rnd to move it to a stand-alone project.
This means:
- pcb-rnd will start to require librnd as an external dependency
- some configuration aspects of pcb-rnd, including which HIDs are configured, will be moved to librnd and will be configured there
- so once librnd is configured with a specific set of HIDs, the same set of HIDs will be available for all ringdove applications until librnd (and the applications) are recompiled.
This change will be so huge that the first version number will be bumped to mark the new era, thus pcb-rnd becoming 3.0.0.
The new pcb-rnd depencendy and the ringdove suite
One of the strengths of pcb-rnd is ease of compilation. Part of this is the extreme low dependencies. 3.0.0 starting to depend on librnd will sacrifice some of this advantage. And all our other ringdove suite member projects will depend on this same lib too.
Users running from distribution packages are not affected, but users compiling from source (e.g. from SVN checkouts) are. I plan two things to ease this flow:
- since the HIDs will become a thin layer, it will be esier to not do a lot of changes to the HIDs. Which means librnd would be stable, probably would get less releases than pcb-rnd (or other apps in the suite).
- I'd set up an svn branch in the ringdove project that svn externs the apps and provides a common ./configure. For most svn users this will provide the same user experience as compiling pcb-rnd now and eliminates maintaining separate checkouts and installations of librnd and pcb-rnd.