A few messages down in this thread, I ‘come correct’ on this exact point, based on my own experience being a SWE for decades. I apologize if I offended anyone.
(The following is presented with all sincerity. I am not being sarcastic.)
FWIW, this language irks me a little bit, too. It’s a frequent rallying cry of FOSS projects, but it’s fundamentally flawed. Why? Because, can a random end user really just dive in and implement new features at the drop of a hat? Is that actually realistic?
In my particular case, I was a professional SWE for 25+ years (but I haven’t been for the last decade). I’m probably better equipped than many end users to contribute something, but I’m still essentially not at all equipped to contribute code to a project like KiCad.
I spent most of my SWE career working on macOS apps in Objective-C. I ‘know’ C++ (or at least I used to, ~12 years ago), but even if I were Bjarne Stroustrup himself, it would still take a good deal of time to come up to speed on a package as big and complex as KiCad.
Now, if you had said: ‘Well, despite being forecast 5 years ago as ‘right around the corner’ it hasn’t happened, so either cope, fix it yourself, or stop complaining.’ I would feel like, ‘OK. Sounds good.’ But to say that an end user should feel “joy” to drop everything they’re actually working on, learn to code, learn the ins and outs of a huge package like KiCad, write the code, validate it across 3 platforms, then make a PR, and hope a maintainer agrees to merge it? If that’s “joy” to you, I’d guess that you’re a lot more into yak-shaving than I am. Around 2013 I tried to submit a patch to GDB that reduced a certain process from O(n^3) to O(n^2). I went back and forth for months, only to eventually be told, rather bluntly, that my patch would never be accepted.
Regardless, at this particular moment, I’m not looking for a new hobby, I’m trying to design a PCB with some tight physical tolerances. Thanks to the community on this thread I’ve learned of a number of features I was previously unaware of, and I also have a number of workarounds that get me where I need to go. Thanks to all who helped!
I’m sincerely not trying to be brusque here. However, I feel like ‘Joyfully go forth and implement the feature you want!’ is just as presumptuous (if not more so) than ‘why isn’t this feature that was just around the corner 5 years ago not implemented yet?’
Ian