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