Symbol inheritance: open question

Hi all,
Does anybody use inheritance when creating new symbols?
I have never used this feature and I wonder if anyone could tell in what cases is being actually used.
Is it only a replacement of the aliases?

After 2 weeks nobody has answer to this post.
I guess nobody is using this feature.

Symbol inheritance was one of the reasons to deprecate the idea of .sweet symbol libraries where a symbol library was a .sweet folder and each symbol had its own individual file. Same as footprints and .pretty libraries.

I have always thought it would bring consistency to library management: same set up for symbols and footprints. And even 3D models.

It would be interesting to hear a librarian weigh in here, because my impression is that the benefits really become apparent when you’re managing a library with a lot of similar parts, which can be more easily managed with inheritance. There are a lot of symbols that are mostly identical to another symbol in the library, but have some difference that is incompatible with the old alias system (e.g. different footprint than the base symbol).

For my personal usecase, inheritance is a nice to have but not that big of a deal. I don’t create a lot of symbols for big families of parts, and it’s also not a huge deal to copy/paste to make a new symbol based on an existing symbol here and there rather than using inheritance. But I can easily see how it would reduce the maintenance burden in a big library with lots of related symbols.

I don’t think I follow your point about inheritance making .sweet libraries less useful. Can you explain more?

I think currently, it’s mostly a replacement for aliases that additionally allows to override fields (i.e. just updated terminology for the new file format).

I’ve used it for the RaspberryPi-PicoW symbol:

I can’t. It was an answer I got from one of the developers, I don’t remember who he was.

Sure, I have not seen any other use. That’s one of the reasons I started this post.

I guess it was mostly code refactoring using newer C++ idioms as preparation for possible later enhancements (and better code maintainability and to quieter get rid of undesired functionality).

Yes, but was that not the goal of inheritance?

Is there something you wish you could do with inheritance that you can’t do?

In my opinion inheritance or aliases are not important as with .sweet libraries it would be possible to copy-paste a file inside the folder and make as many independent symbols as versions (alias) of a given component.

In my opinion the point of inheritance is that you shouldn’t have to make independent copies (the benefit being the normal don’t-repeat-yourself thing where if you need to make a fix to all of your related symbols, like changing the shape, you only have to do it once instead of once for each symbol).

Even without .sweet libraries, you can still duplicate a symbol as many times as you like in a library if you want independent symbols. You just have to do it through the symbol editor rather than your OS file manager.

Yes, I’m aware of how the libraries work. I usually start my own libs by copying a symbol from the standard libraries. With footprints it is easier.

I would like the consistency of the libraries, same for symbols, footprints and 3d models. That’s all.

I like them better than the previous “alias” TBH. @gkeeth you got this :slight_smile:

I only want to add something that was not mentioned yet, they keep library files smaller. (Easier navigation in the file.) Of course the real benefit is shown better in large libs.

@pedro it is only a matter of choice/personal preference i think.

Exactly! It is a matter of “taste”.

In previous versions footprint libraries were made of a single file too.