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