#### 13.4.5 symversion attribute

The symversion= attribute is used to version the contents of symbols. Because symbols are, by default, referenced from the schematic and not embedded within it, problems can occur in a schematic using a particular symbol if that symbol file is modified. For instance, if pins are moved in the symbol, the schematic net lines will no longer connect to the correct pins. The symversion= attribute allows tracking such breaking changes to symbols and notifying the user of potential problems when a schematic is loaded.

This attribute is optional, but if present it must take the following form:

major.minor

where major and minor are integers. The major number is incremented when a change is made to a symbol that might break an existing schematic using the prior version of symbol when the new version is introduced. The minor number is only incremented when a minor change is made (a change that cannot break an existing schematic, such as cosmetic changes while retaining structure such as location of the pins).

If this attribute is inside a symbol and that symbol is placed onto a schematic, the symversion= attribute will be automatically “promoted”, causing a copy of the symversion=M.N attribute to be stored on the symbol instance in the schematic itself. When a symbol is loaded from disk, the value of the symversion= inside the symbol file (if any) and the symversion value attached to the symbol instance on the schematic are compared. If the values differ, then libgeda will output a warning message (for minor version changes) or an error message (for major version changes).

This attribute should normally be made invisible when placed inside a symbol file. This attribute is always promoted when it is found inside a symbol during component placement. Users should not attach this attribute manually to instantiated symbols in a schematic.

Examples:

    symversion=1.1
    symversion=2.0