Mailing list archives : pcb-rnd

ID:4211
From:ge...@igor2.repo.hu
Date:Tue, 23 Jun 2020 11:08:39 +0200 (CEST)
Subject:[pcb-rnd] preparing for the final librnd separation + ringdove
Hi all,
 
we are getting closer and closer to the final librnd separation. It is 
inevitable for our ringdove suite: almost all GUI ringdove apps will 
depend on librnd. 
 
******
* Please read on. I know it's long. 
* But this definitely does affect you.
* You will need to take actions in the future about these.
******
 
Librnd is already a separate island within pcb-rnd, but it still lives 
within the pcb-rnd repo and build infa. That means if you want to compile 
camv-rnd for example, you will first need to install pcb-rnd. Which is not 
good: I want to keep ringdove a suite of independent software projects, 
not a large, integrated single project. For that, I will need to 
restructure dependencies:
 
- we will have a separate librnd projects (and repository)
 
- pcb-rnd will depend on librnd
 
- camv-rnd, sch-rnd and other ringdove applications will also depend 
directly on librnd.
 
So at the end, technically you'll need to install (and update and 
recompile reinstall, as things evolve) librnd, then you can install (and 
update and recompile and reinstall, as things evolve) one or more of the 
ringdove apps.
 
We are not eyt very close to this transition to happen, but it's better to 
start preparing early so there would be no disruption in your work. I 
can't tell when exactly this will happen, but I hope it would before the 
end of the year. So in a sense it's not that far away...
 
There will be 3+1 ways using/installing pcb-rnd (and other ringdove 
apps), and you will need to choose one:
 
 
1. Distribution packages
 
If you are using a distribution that has official pcb-rnd packages, and 
you are using pcb-rnd from package, not compiled from source, then you 
don't need to do anything. All change will be done by the packagers the 
only thing you will experience is different number of packages installed 
in an upgrade after the transition.
 
(If you distro doesn't have a package yet, please contact them; I offer 
full support to every distro who is planning to package pcb-rnd and 
thanks to our great packagers we have ready-to-use, always-up-to-date 
versions in .deb and .rpm to start from.)
 
2. From source, svn, full manual mode
 
After the transition you will need to have two checkouts for pcb-rnd:
 
svn://svn.repo.hu/librnd/trunk
 
svn://svn.repo.hu/pcb-rnd/trunk
 
Each project will have its own configure, make, make install. Since 
pcb-rnd will depend on librnd, you will sometimes need to also update and 
configure and build and install librnd before you can upgrade your 
pcb-rnd. In other words: librnd will behave  like an external, 3rd party 
dependency.
 
In this setup you have full control over checkouts and versions, but this 
means sometimes the number of steps for getting svn HEAD version of librnd 
compiled will be doubled. Fortunately our build system is rather smooth 
and the number of steps is kept low, so this may still be viable.
 
 
3. From source, svn, semi-automated
 
Another option is to check out a single svn repo, the ringdove repo 
instead, from:
 
svn://svn.repo.hu/ringdove/trunk
 
This is a thin meta-project. This repository does three things:
 
- it has some ringdove suite related documentation (will host the ringdove 
home page too)
 
- it svn externs all the independent libs and apps we will ever need for a 
complete installation of ringdove, so you can check out or update 
everything with a single svn command and if it succeeds, you are 
guaranteed to have a collection of source versions that work together - 
and it will always be the freshest development version
 
- it offers central ./configure and make that configures/builds/installs 
all libs and apps that are considered usable (at least beta testing level) 
at any given time
 
 
So you can keep the minimum number of steps with a virtual "all in one" 
setup, while I can keep the projects separate and can avoid code 
duplication. 
 
Keeping things modular also allows users to use method 1 or 2 to get a 
partial installation, e.g. if someone wants to use pcb-rnd with gschem 
they won't need to compile or install sch-rnd, while having this 
meta-repo may help those who want to always use the latest dev version 
from everything.
 
 
4. From source, release tarballs
 
My current plan is that I am _not_ going to roll mega-tarball source 
releases of ringdove (that would consist all apps in one big archive). 
There are multiple reasons for this:
 
- especially in the beginning app releases won't be synced (and I am 
unsure whether they ever would be), so there wouldn't be real good way to 
version ringdove itself
 
- more importantly, I want to avoid implicit fusion of ringdove apps; 
implicit as in: "in theory they are separate projects but in practice 
99.9% of the users just get the mega-tarball and compile at once", which 
in turn may sneak into packaging, etc.
 
So if you are installing from stable tarball source releases, you will 
need to follow the steps described in point 2 and just download and 
install each component separately.  For pcb-rnd, this will mean, at a 
minimum: librnd and pcb-rnd.
 
(Note: this is not very different from what you are already doing now, if 
you prefer this method: you get your schematics editor from one tarball 
and pcb-rnd from another. You may also need to get the latest whatever lib 
for fulfilling the dependency of your sch editor; and after the 
transition, the same way you'll need to get the latest librnd to fulfill 
pcb-rnd's requirements)
 
 
 
 
=======
 
So what you should do now: you should read the above and consider which of 
the three setup fits your workflow and your relation to pcb-rnd the best. 
We have full support for all three, they are all accessible and work 
already, and you can switch between them any time.
 
However, if you are using pcb-rnd from source at the moment, when we get 
to do the final step of the librnd separation, there definitely will be a 
sudden change in how you need to compile pcb-rnd. So it's better if you do 
the switch before that, when you have the time, than wait for that event 
force the date of the change on you.
 
If you have any question about these, don't hesitate to ask!
 
Best regards,
 
Igor2
 
 

Reply subtree:
4211 [pcb-rnd] preparing for the final librnd separation + ringdove from ge...@igor2.repo.hu