first of all, please, these scenarios objectively exist. e.g VDD18 as VDD_IO, VDD_CORE, VDD_OPA…; or, GPIOA7, is also DO of certern module, and DI for another.
different approachs:
Netties: quite clean, sometimes helps, even helps layout as waypoints, I use this quite a lot, e.g. remote voltage sensing for GND and 0.8V 100A VDD_CORE (the bright side). but it breaks the net. and sometimes have negative impact to layout, more netties need more tiem to place. also freerouting does not work very well with netties.
directly connect, chaotic and DRC error, unpredictable final net name.
global ports/labels: global ports suck! it’s extremely dirty and chaotic. nobody should use them for nets other than power or global reset.
German compound nouns, like Rechtsschutzversicherungsgesellschaften, just concate all names and aliases, e.g. GPIOA7_ALICE_DO_BOB_DI, but this can get infinitively long
hierachy ports: works well for large projects. not so suitable for all scales.
Implementation
for C++ and python API, a net object can have an extra aliases field/member, and can be shown in schematics and pcb editor.
Can you show a specific use case? I mean, how/where exactly would you use different aliases? You only told you want to use them, but didn’t tell how and why.
Same here, I’m confused about what an implementation would look like.
I also sense some misconceptions from OP Terrance_Huang.
For example:
Netties: … but it breaks the net.
Yes it does, and that’s on purpose. This is the reasons net ties are implemented in the first place.
directly connect, chaotic and DRC error, unpredictable final net name.
Direct connect, as in using a wire? In that case KiCad has no choice as to invent a net name on it’s own. (Each net must have a name). You can put a label on it to give it a defined name.
global ports/labels: global ports suck! it’s extremely dirty and chaotic. nobody should use them for nets other than power or global reset.
I quite like using labels. Nothing wrong with them, If your project is on a single sheet, there is almost no difference between local and global labels. Also, telling other people what they should or should not do usually gets ill received. When you use multiple labels on a single net, KiCad assigns the final net name by following some documented rules. (Overlapping with your point 2? → Read the manual).
…
Not all tools a fit for all goals. Don’t use a hammer to drive in a screw. It might sort of work, but the result is not optimal.