Mail Archives: geda-user/2017/12/09/05:24:59
Hello geda-users,
pcb-rnd has reached a symbolic milestone: we are beyond 66.667% in the
code change statistics, which means more then 2/3 of the C source code
lines are either new or got a relevant change since the fork.
(Indentation or moving the code around is considered irrelevant; for more
details on how/why this rate is calculated, please see
http://repo.hu/projects/pcb-rnd/devlog/20171117_chgstat.html )
To celebrate the symbolic event, I've implemented an "invoke external
editor" action. This makes it possible to click on a subcircuit and get a
second pcb-rnd (or a text editor) started up, the object edited, saved,
and auto-replaced on the original board with the edited version. Sort of
in-place footprint instance edition, without copy to buffer, save buffer,
breakup, rebuild, etc. I think this could make a lot of user's life easier
- this is my way to say thank you to the pcb-rnd community.
66.667% is just a number, it is not significant in itself. What is
important is all the new features and _major_ refactoring/cleanup behind
the numbers, which often resulted in fixing decade old bugs or
misfeatures. I believe the last 1 year of pcb-rnd was among the top 3 most
productive years in project history, including PCB, back to the mid 90's!
It is not practical to list all the changes we did since the fork - the
list would be so huge nobody would read it. To pick a few highlights
randomly:
1. Full data model rewrite: more flexible layer model (hello editable mask
and paste layers!), subcircuits (hello footprints with no restrictions!),
padstacks (hello arbitrary, per layer type shaped vias/pins/pads and
blind/buried vias!), font upgrade (hello multiple fonts, arcs and polygons
in fonts!). And our own file format that can keep up with the innovation.
2. modularized I/O: file format compatibility with kicad, eagle, protel,
hyperlynx, fidocad and gEDA/pcb; schematics import from kicad, LTSpice,
TinyCAD and gEDA/gaf. And more (see the bridges drawing on our home
page!).
3. Code modularization: majority of the code moved out from core to
optional plugins.
4. Build system: simpler, faster, more portable.
5. Feature support: advanced search with a query language, property
editor, flag editor, edakrill/gedasymbols integration, use boards as
footprint libs, improved rubber band mode, shape generator.
6. Rewrite of old code to be more portable and depend on minilibs instead
of glib. This also improves compilation time and long term stability of
the project. Replaced lists, hashes, vectors, dynamic strings, the undo
administration, the plugin system.
What we plan for 2018: this list would be too long too. Picking three:
1. Remove the retired old data model from the code base: elements, pins,
pads, vias, element-lines, element-arcs.
2. Rewrite find.c from scratch, because the new data model provides much
better administration of parent-children/subtree relations.
3. more I/O plugins - pcb-rnd is the EDA that eventually is going to read
and write every reasonable file format out there.
If you haven't yet: consider switching to pcb-rnd. It is compatible; it
fixes decade old bugs; it is progressing fast. It is the most dynamically
growing software & community around gEDA. We need a lot of user
contribution (directed user testing) - that's an easy way to instantly
become a valuable contributor. Sing up today!
Web: http://repo.hu/projects/pcb-rnd
pcb-rnd 1.2.7 is to be released right before the end of the year.
Regards,
Igor2
- Raw text -