Mailing list archives : pcb-rnd

ID:6310
From:rn...@igor2.repo.hu
Date:Tue, 23 Jan 2024 06:46:25 +0100 (CET)
Subject:[pcb-rnd] sch-rnd: project progress (zooming out) - milestone reached!
Hi all,
 
a year ago around this time we were workign hard (testing and fixing bugs 
in the beta test versions 0.9.x of sch-rnd) targeting the first stable 
version, 1.0.0, eventually released in May. Two years ago around this time 
I started intensive coding on the first alpha version, 0.8.0, that got 
released at 2022-03-28.
 
So if we zoom out a bit and look at our rodmap, where are we now, with the 
hierarchic design support added?
 
Well, two years earlier, 2020-01-20, I sat down and wrote a roadmap 
listing all the important things we need to do to get our own schematic 
editor as good as it can replace gschem/lepton. I could do that because we 
already had the cschem design document so I had a full overview of the 
implementation details.
 
Here is that roadmap originally written in January 2020:
 
http://www.repo.hu/projects/sch-rnd/TODO.roadmap
 
Originally all bullet items started with a -, and I modified the ones to + 
as they got implemented. By now there are only 3 of them not yet done:
 
 - symbol "version" checks, update symbol
 
 - hubs
 
 - buses
 
 
The first one would be some action and mechanism so that you can 
semi-automate upgrading sheet symbols from the external library. The 
second, the hub object, is used to do tricky things, like joining two 
segments of differnetly named networks, star grounding, connecting a wire 
or terminal to a bus. And finally, real bus support.
 
I've just realized we have reached a milestone by having a working 
hierarchic sheets feature: all the remaining features are things gschem 
doesn't have (as far as I know)! 
 
In other words, this week, after 2 years of active development and some 
years of low-investment design/planning sch-rnd has finally reached the 
level of being as feature-complete as gschem was on the main features and 
from now on we will be working on extras. This is an important milestone 
in the sense that for historical reasons most of pcb-rnd users used gschem 
or lepton, and from now on sch-rnd doesn't have any major functionality 
missing compared to those.
 
 
 
 
--- Project history summary (timeline) ---
 
2015-10-20 cschem r1 - Plans considering an own sch editor (daydreaming)
 
A lot of this has changed over the time, but the key idea of not having a 
"netlister" with feedback to the GUI already appears. Back in 2015 I 
didn't know we'd have librnd and I was not yet fully dedicated to 
developing an sch editor, I was only daydreaming. I still had some hope of 
getting gEDA to the right track. 
 
 
 
2016-01-01 Rethink the plans
 
From the devlog: "Cschem is a project I plan to start within the next few 
years". This is the full entry:
 
http://www.repo.hu/projects/sch-rnd/developer/archive/20160101_cschem.html
 
This included a detailed feature plan, which already includes the most 
important characteristics and differences from gschem, including project 
files, back annotation, scripting plugins, 
 
 
2017-06-30 cschem r2 - design kickoff
 
An important design decision made: break compatibility with gschem. Up to 
this point, since 2015, the plan was to write a gschem replacement; from 
this point on the plan changed to simply write an sch editor. What helped 
me making this decision was the experience with pcb-rnd and learning more 
and more about how gschem's design is broken and being 100% compatible 
with that would restrict us.
 
2017-07-21 cschem r14 - start the actual design doc
 
 
2018-02-11 cschem r328 - more or less complete design doc
 
 
2018-02-20 cschem r331 - first bits of code (abstract and concrete model)
 
 
2018-03-16 cschem r350 - added scconfig
 
From this point on, I was doing cschem development in the background very 
slowly, because pcb-rnd took most of my time.
 
 
2019-11-26 cschem r527
 
In 2019 I started to worry about gEDA going downhill while being 
pcb-rnd's implicit dependency. So I decided I should spend a bit more 
time on cschem. In October I revised the design doc and in November I 
started coding again. Around this time I already had the librnd plan 
going, although it was not yet moved out into a separate lib, so cschem 
depended on pcb-rnd's hidlib.
 
Steady but slow development followed by a gap of 1 year between 
the summer of 2020 and the summer or 2021. 
 
2021-10 around r1100: intensive development started
 
2022-03-28 r2888: first alpha release: 0.8.0
 
2022-08-18 r5281: first beta release: 0.9.0
 
2023-05-03 r7146: first stable release: 1.0.0
 
2024-01-23 r10226: hierarchic design works, reached milestone
 
 
 
(I've collected this timeline because I may want to eventually draw it 
similar to what we have for pcb-rnd)
 
In retrospect, I think the actual time spent is reasonably short compared 
to the complexity of the task. If I could go back the only things I would 
do differently: I should have realized that gEDA was unfixable earlier and 
I should have less gaps so we could have all these 1 or maybe 2 years 
earlier.
 
 
Best regards,
 
Igor2
 
 

Reply subtree:
6310 [pcb-rnd] sch-rnd: project progress (zooming out) - milestone reached! from rn...@igor2.repo.hu