It took me a few run-throughs to really understand what was going on too, so it helps to save the project to a new location or use version control when doing this.
It will help to understand that currently, the major breaking change for “legacy” libraries (not v6 Libraries) is that they are indexed by library name, in v4 the schematic file did not store the library name for the part
e.g.
R-> passives:R
So what the rescue tool is trying to do, is to match the unqualified symbol in your schematic with a qualified symbol in your libraries, using the local cache to save any components that cannot be matched. Then recommend a series of moves/copies or renames to make the schematic work. Certain changes in the official library to reflect name standards changes are automatically accomodated.
For that particular symbol, it is matching a symbol in the local cache (itself a library) with a symbol in the power library, thus matching 3V3 -> power:3V3, so that is what it has found. The tool is suggesting this “rescue” automatically, which is simply updating the schematic to point to the correct, fully qualified, component.
Any unmatched components present in the local cache will be “rescued” to a local library named PROJECT-rescue
There are two other cases where the symbol is either 1. in multiple libraries , prompting you to pick 2. not found in any library or local cache but is in schematic, eeschema will tell you and replace the component with a big ? . Unmatched components can be fixed post fact through the UI by editing the component properties.
Note: If the tool is not finding your custom libraries, make sure that the global library settings have your libraries added to them after upgrade. It is best to do this before rescue because otherwise you are renaming all symbol out of the PROJECT-rescue created library, one-by-one
The rescue process is there because the current file format does not integrate any symbol information inside the schematic file(s) themselves. (This is expected to change with version 6.)
To ensure that opening an old project does not change its meaning you need to have some saveguards against changes to your libraries. This is the rescue dialogs responsibility.
There are two failure modes it protects against. The simpler one is if one of the symbols used in your project did change inside the library but still has the same name. In that case the rescue dialog will show you two symbols. The original one that is in the cache lib and the changed one from the library. You then decide if you want to rescue or not. If you choose rescue then the symbol is copied from the cache lib into the rescue lib and all references inside the schematic are changed to point to the one in the rescue lib.
The one you experience is the one where the symbol is no longer found under the given name in the libraries as setup in the library tables. (Either the library or the symbol have been renamed or deleted.)
Notice that the right side of the rescue dialog is empty in this case. Meaning if you decide not to rescue you will end up with question marks in your schematic indicating that kicad has no symbol information. (you can then fix this by adding the misplaced symbol lib back to where it belongs. Or by manually updating the library references for these symbols.)
If you rescue kicad will again copy the cached symbol to the rescue lib and point the schematic to the rescued one.
No kicad really only looks at matches for the exact symbol reference (library alias plus symbol name)
In v4 it only checked for finding the correct symbol name searching through the libs in order of priority. This means in v4 one could rename a library without kicad complaining. It also meant that symbol names needed to be unique over all libs or you needed to take very good care of library priority.
This means the only time kicad v5 does something similar is when remapping a version 4 project which might be where your misconception comes from.
Okay, I think I understand this a little bit better now.
In this case, the situation is a little bit different than most users will probably experience. What I did was create a few new Symbols for Power Inputs and placed them in the KiCad power library. Note that all other Symbols did not need to be rescued because they are in a custom user library. The reason for placing these symbols in the KiCad power library is because of the workflow to hit “p” on the keyboard to bring up the selection of different Power Inputs.
What does anyone think of the suggestion that the Rescue Symbol dialog place the V5 Symbols back into the KiCad directory as an option (even creating a new library if needed)? Fairly certain that a couple of those Symbols are used in another project. Having this project repopulate the Symbols into the KiCad library would mean that other projects would not need to be Rescued.
Another option would be have a drop down menu to select an existing library. This would keep the project in sync with future library versions.
You didn’t need to do this. When you hit the “p” on the keyboard KiCad should show you all the symbols that are marked as a power symbol no matter what library they are. I have a few power symbols (custom names and/or custom glyphs) in my personal libraries and can access them this way.
Well, I probably did what I did before KiCad now does it this way.
I’m now going to try out what you suggest.
ON EDIT: @SembazuruCDE Thanks for the help! It now functions as you describe. Thinking about it, there have been some changes to how some special characters are supported. My custom library has the “_” character in it and it may not have been supported at one point in time.