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