Hi joost, thanks for your response, but a few thoughts…
You mentioned that a Software library is a black box to you, only familiarising yourself with the API calls you need. You’d never work that way with electronic design for a commercial board. That’s great I’m not asking you to change the way you work. I only suggested that information be stored in files in a more flexible manner, so that if people wanted to use a more collaborative process, assisted by version control, they could.
I don’t think that 100% of Kicad users are creating commercial boards, but even if I was, if there was a SMPS hierarchical schematic sheet which I could treat as a black box which exported 3 symbols (Vin, Vout and Gnd) I’d be happy with that black box as well. I have no problem that people might want to spend time rolling their own SMPS. I’ve actually done that, but I now want a more flexible way of including that “module” into a number of other designs. On that note I’m not sure where you draw the line with what a component/library/module is. I’ve used an LM5088 for my SMPS, and it’s got maybe 10 or so components around it. If a company took those components and put them into a package with three pins, (Vin, Vout and Gnd, a bit like a linear 7805) which I could place on my schematic like a 7805, would that be philosophically different?
Maybe it’s my SW background. Every time I create a new project which needs a linked list I don’t write a linked list from scratch. That would be a waste of effort and is not the focus of the new SW project. I’ve written one in the past and I’ll just reuse it. Likewise for my SMPS. I’m happy for people out there who want to rewrite a linked list for every project, as I’m happy for people to redesign a SMPS for every project. Everybody works different. Maybe I’m just lazy, or don’t get the same kick out of designing an SMPS.
And your point about Designators being important. Did I say that they weren’t important? I’m sorry if I gave that impression. I merely suggested that they be moved to a different file. So that rather then contaminating a hierarchical schematic sheet they be stored in a project specific file. I’m not saying that designators have to be different in every design, If you have two related designs and want to harmonise designators I’m not suggesting impacting that possibility.
I think I’m advocating flexibility here not trying to constrain how you work. On that last paragraph on how SW and HW are very different. You don’t have to tell me
On that note I recently watched an EEVBlog video [1] where Mr. Dave was doing a mailbag video in which he reviewed a USB Oscilloscope which somebody had sent him. Mr. Dave had a bit of a melt down when he saw the Eagle schematics for the product. It’s open hardware but the schematics, according to Mr Dave, were a Dog’s dinner, (bit of a mess) He (Mr. Dave) wondered about that fact and suggested that if this was an Open Source SW project somebody would have cleaned up the schematics in the file and issued a Pull Request back to the project. That does not appear to be the philosophy of Open Hardware. (Well that’s the impression I took from Mr. Dave). Maybe there’s a chicken and egg thingy where the tools don’t lend themselves to that philosophy because Hardware Engineers don’t practice that philosophy, or vice versa. Software tools are designed with collaboration in mind. They don’t have to be used in that manner. I’m sure there are a multitude of SW project which don’t use a collaborative philosophy at all. It’s not compulsory. But even if your doing your own personal SW project in isolation I’d still suggest Version Control be a good thing.
I’m going to try and take time this weekend to look at the code for Eeschema and ponder about how information is stored for a hierarchical schematic sheet. I’ll probably run away again but who knows.
[1] https://youtu.be/2Z3URu9vQBk (It’s at about 42:30)