Mailing list archives : pcb-rnd

ID:5858
From:rn...@igor2.repo.hu
Date:Sun, 23 Oct 2022 11:04:26 +0200 (CEST)
Subject:[pcb-rnd] pcb-rnd: new feature: order pcb; project state update (code freeze); hiatus & roadmap
Hi all,
 
althought this year was a less exciting one in the life of pcb-rnd, 
there's still some progress.
 
1. New feature: order pcb
 
I started to work on this back in 2019 but due to communication issues it 
went slow and then the nlnet sponsoration steered the project in a 
different direction. Nevetheless PCBWay finished their API so we have this 
new feature working now, as shown in this demo video:
 
https://archive.org/details/pcb-rnd-order
 
For the end user, the major advantage of this feature is that some of the 
fields are filled in automatically and manually filled in fields can be 
saved as board attributes. This means:
 
 - less chance for error in manual copying of numeric fields when copying 
data from pcb-rnd to the web ordering form
 
 - if you need to re-order the same board a months or years later, you 
don't need to remember all the settings, less chance of error reproducing 
the same settings (minus the case when the fab changes their options, of 
course)
 
For me, the main benefit is that I can talk to a fab. Now that I have 
contact, I am trying to convince them to help me with bbvia testing. Plus 
next year I plan to use this feature as a showcase trying to convince 
other fabs to provide a similar API.
 
 
2. Code freeze
 
Our upcoming release, pcb-rnd 3.0.6 is scheduled to November 2nd. We are 
netering code freeze, as per usual: please test svn HEAD in production, 
report bugs; only release-critical/packaging bugs will be fixed before the 
release, the rest of the bugs will enter the TODO.
 
3. roadmap: hiatus for librnd4
 
After this release, pcb-rnd's next release will be mainly about the 
librnd4 switchover. Which means some sort of hiatus in the project: I will 
mostly cease dealing with new features and bugfixes until the switchover 
is complete.
 
I expect the next normal dev cycle to start early next year, maybe in 
February, with the source already depending on the then fresh release of 
librnd 4.0.0.
 
 
4. reminder: what's librnd and why 4.0.0
 
Librnd is a bunch of the "generally useful" code moved out from pcb-rnd 
into a reusable "2D CAD framework" library. This includes the HIDs (GUI), 
menu system, runtime config system, polygon lib, unit system and some 
more. 
 
The reason to move this code out from pcb-rnd was to make it easier to 
develop other GUI Ringdove apps. This worked out well: camv-rnd's own code 
is surprisingly small and sch-rnd development this year went much faster 
than expected a few years ago.
 
At the initial project split librnd was 3.x.x, as it was forking out from 
pcb-rnd 3.x.x. Since librnd is a library, I decided to use semver there, 
and go for maximum API compatibility. This means I can not randomly change 
APIs. As time went on, I've found a few minor issues with the API while 
developing camv-rnd, and a lot more issues while developing sch-rnd (which 
is reasonable as sch-rnd is much bigger than camv-rnd). I've collected 
these on the TODO for 4.0.0. 
 
Librnd version 4.0.0 will _not_ be backward compatible with 3.x.x, so this 
will be major change in all ringdove app's life: with their early 2023 
release they will switch from depending on librnd 3 to depending on librnd 
4. I did everything to allow the two versions of librnd be installed in 
parallel, but this is the first time it would be tested in real life.
 
The librnd 4.0.0 effort will be huge. The API TODO for this one thing 
contains about 100 items... And any change in librnd API would potentially 
trigger an update in pcb-rnd, camv-rnd and sch-rnd. So a huge amount of 
work.
 
Now that sch-rnd is in beta testing, and the usual low traffic season 
(December-January) is coming, this is the best moment to stop normal 
developmnt on the apps and focus on this switchover. I expect this to 
start mid/late November and hopefully finish in 2 months.
 
 
Best regards,
 
Igor2
 
 
 
 
 
 
 

Reply subtree:
5858 [pcb-rnd] pcb-rnd: new feature: order pcb; project state update (code freeze); hiatus & roadmap from rn...@igor2.repo.hu