One way to organize parts is to reuse graphics from existing parts, by referencing to the exact same file from the core parts, and not including a copy in the fzpz.
In theory, this would lead to a stable collection: A fix needs only to be applied to one file, no need to track down all copies (and missing some) of the file.
There might also be a case were a fix would be a breaking change. For example, if some part had RX TX mixed up, most existing sketched already worked around that simply by wiring them in the correct way.
For this, Fritzing has an obsoletion mechanism:
- We can keep the old part, and add a new one with RX TX in desired order
- We can also add a replacedBy marker, and Fritzing will suggest to replace the specific part whenever it is encountered in a sketch.
However, my guts feeling is that this needs improvements.
Some questions and ideas.
-
Does Fritzing bundle the sketch as expected? Does it bundle a copy of the core SVG?
-
Are there specific tests cases we should take into account for releases ? Are there some SVGs that are very popular for re-use by reference instead of copy?
-
Should we improve the obsoletion mechanism: 1. Allow silencing warnings. 2. List the actual parts that are obsolete (currently we only select them), better support for individual replacments instead of the upfront “replace all” when loading a sketch. 3. Add a description field, to tell the user what was fixed about a part, and which changes to look out for?