Mailing list archives : pcb-rnd

ID:6316
From:rn...@igor2.repo.hu
Date:Mon, 29 Jan 2024 13:21:26 +0100 (CET)
Subject:[pcb-rnd] new: ringdove repo and ./build script revamp
Hi all,
 
we have a project/repo called ringdove and it got a major revamp today:
 
http://www.repo.hu/projects/ringdove
 
 
 
1. What it was originally
 
This repo originally was an attempt to make the transition easier when I 
finally managed to split off librnd from pcb-rnd. You may still remember 
the Good Old Times when we had only pcb-rnd, as our One and Only project, 
in a single repository. Life was real easy back then, checkout or 
unpack, ./configure, make, make install. 
 
Then happened librnd. Ever since that you have to download and install a 
separate project, librnd, before you can even ./configure pcb-rnd. Around 
the same time came camv-rnd, later came sch-rnd, so if you need a full 
Ringdove EDA suite, you have to download and compile quiet a lot.
 
Since I am planning 5..10 years ahead (see next point), I was aware of 
this roadmap, that's why I thought it'd be a good idea to have a dedicated 
Ringdove repo, with a script that could download and compiel both librnd 
and pcb-rnd, back in 2020. 
 
This was the technical reason for the repo.
 
 
 
2. Strategy
 
I am trying to follow what's going on around pcb-rnd (and around Ringdove 
by now), and besides the every-day tactical roadmaps (TODOs), I usually 
have a longer term strategy too. (This has helped a lot with nlnet 
applications too, since that system requires planning 1..2 years ahead 
too, which was real easy for me as I just had to look at my longer term 
roadmap and describe the first period in the appliction.)
 
Originally pcb-rnd was intended to be a single project, a PCB editor only. 
I was day dreaming about ansch editor earlier, first such 
daydreams documented for cschem was back in 2015. But it was only in 
2017 I really made up my mind about it. Ever since that it was clear I 
will have to build and maintain a whole EDA suite.
 
As part of this I made the Ringdove repo was that I knew
sooner or later we'd have a full suite, so we'd need to have some place
from where all the individual projects are accessible from.
 
 
The was the strategic reason for the repo 
 
 
 
 
3. What's new in the Ringdove repo
 
The main reason for the upgrade is about strategy: now that sch-rnd is 
having stable releases for some 8 months already, we really have a 
functional EDA suite and it's time to strengthen this image. Especially 
for new users, meeting our tools for the first time. 
 
Thus the main change is that by default the build script does NOT do svn 
checkouts but downloads latest stable release tarballs using wget. This 
happens if you run "./build" or "./build-all". I believe this is what most 
new users would want to have normally.
 
(However, our most recommended, number 1 option is still installing from 
distro packages where available.)
 
I've also revamped the web page and documentation shipped with this repo, 
so there's a collection of links for those who want to manually download 
the pieces.
 
Finally, I've made a release, so users can get the downloader script and 
documentation without an svn client: 
 
http://repo.hu/projects/ringdove/releases/
 
For this project I am using YearMonthDay for version numbers so it's not 
confused with the version numbers of the apps. The release tarballs 
contain only the script that can download the rest, not the source code 
for the apps, see below.
 
 
4. How may it affect you
 
If you used to use this repo to fetch and build all svn HEAD versions, 
maybe as a convenience tool for installing them in $HOME, that's still 
possible, only the syntax changed a bit. Instead of "./build" or "./build 
all", you have to run "./build all-svn".
 
If you introduce a new user to Ringdove, and it's not a special case (e.g. 
you know the new user is interested only in PCB layout), you can recommend 
http://ringdove.repo.hu instead of having to recommend one of the apps and 
then explain other libs and apps need to be downloaded too. The Ringdove 
repo's main page has an overview drawing of the software stack.
 
 
5. Why not an aggregate megapack
 
I don't plan to extend the Ringdove releases to contain all code of all 
apps. There are multiple reasons for this decision:
 
- Ringdove is a collection of independent subprojects, not an integrated 
CAD system; having them coming all from a single tarball would make the 
wrong impression
 
- it'd especially pose a risk of lazy packagers packaging the whole thing 
in a single big mega-package for their distros, which would defeat one of 
the main purposes of Ringdove (modularity and options)
 
- if users would have the wrong impression it's all a single big tarball 
with all sources in one place, they would also not realize bugs are 
tracked separately, releases are are done separately, etc
 
- I'd need to roll a new release after each and every app or librnd 
release, and I don't want to add more steps to the release process
 
So the plan is to keep it like this and make it very clear that this repo 
represends the suite and offers a script that donwloads the apps from 
other releases/repos. The only disadvantage of this setup is that if the 
user doesn't read any of the doc, downloads a Ringdove tarball and then 
tries to install it on an offline computer, it won't work.
 
(Btw, I also plan to maintain the clean separation: the Ringdove repo 
doesn't have app code but a script that downloads the rest; the rest of 
the projects don't attempt to download anything during 
compilation/installation and generally don't assume networking at all. I 
find it important to mention this becuse lately I see more and more 
terrible software that start downloading things from github or some 
custom package manager during ./configure or build, assuming all 
computers are always on-line and data traffic is for free and the 
servers are always available, etc.)
 
 
Best regards,
 
Igor2
 
 

Reply subtree:
6316 [pcb-rnd] new: ringdove repo and ./build script revamp from rn...@igor2.repo.hu