This test request is the second part of test req #25. 1. library window: Enable local lib symbol placement then place a few instances of a symbol, e.g. a resistor. You'll see that the subtree of the library window is automatically updated with the new local lib entry. If you place the same resistor from (any) external library the code will figure it matches the symbol that's already in the local lib so it won't add it multiple times in the local lib. However, if you want to make sure you don't accidentally place a second, slightly different resistor symbol, you can simply use the subtree and place from there. Note: the subtree is always per sheet, not per project or per user. 2. library window: count uses After step 1, select a symbol from the subtree. A row of buttons labelled "local lib" will appear on the lower left side of the library dialog. If you click on the # button, it will count all symbol refs (group ref object) on the sheet pointing to this specific local lib entry. The total number is printed in the log and if it's non-zero, you also get a tree view with the group refs listed so it's easy to navigate to them. 3. library window: remove entry After step 1, the second button is a big X, which removes the symbol from the local library. If the symbol ref count is non-zero, that'd lead to broken symbol refs from the sheet. To avoid that, all symbol refs to the selected symbol are converted to embedded symbols. This means each symbol ref is replaced with a full copy of the symbol from the local lib. Then the entry is removed from the local lib. 4. library window: refresh button Finds the first matching symbol (by name) in the external lib and upgrades the local lib instace from there. Sheet symbol refs will automatically follow. If you have moved floaters on symbol refs, this operation works well only if the new version of the symbol is really just a slight edit of the original. If you made a big edit on the symbol or you replace the symbol with a different one, floater positions may reset. (But if you use local lib you probably want floaters placed the same way all the time anyway). Known bug: second click on the refresh button does wierd things. 5. devmap library: always local lib'd If you are using devmap, you can look at the available devmaps in a very similar library window, the devmap library, using the window menu or hotkey {w w d}. Unlike symbols, devmaps don't have embedded versions, only local lib vesion. So any time you compile the page, any devmap not already in the sheet local lib is copied from the external devmap lib to the sheet local devmap lib. This is how we guarantee that sheets are portable even with devmap: on another system your sheet will work without having to have all the external files (symbol and devmap libs) present there. 6. devmap library: local buttons The devmap library window offers similar buttons to manage the devmap library: - # will count devmap usage and helps you navigate to the symbols using specific devmaps - the refresh button will replace the devmap lib copy from the external devmap library. This is useful if you had to make a fix in your devmap libs. - there is no X button: at the moment you can't remove a devmap from the local library because we wouldn't be able to embed.