IP, IPV, and IP Line metadata
Helix IPLM IPs support multiple metadata types that are used to capture higher level information about the IP or IPV and link it directly to the design data captured in the IP or release. IP Metadata types include, Labels, Aliases, and Properties that are viewable and configurable in either the PiCLI or IPLM Web interfaces. This section describes how to view, delete, or configure the metadata through each Helix IPLM interface.
IP metadata
Helix IPLM IPs support Label, Widget (Attribute), Properties, and ALIAS metadata types. The different metadata types are applicable to different parts of the IP
Object | Label | Attribute | Widget (IPLM Web) | Properties | ALIAS |
---|---|---|---|---|---|
IP | YES | YES | YES | YES |
|
IPL (IP Line) |
|
YES |
|
|
|
IPV (release) |
|
YES | YES | YES | YES |
See the Helix IPLM Metadata page for more information on strategies for capturing and displaying metadata.
IPs and labels
Labels are used to classify and filter IPs and Libraries in the IP and Library catalogs. Labels are created by a member of the Helix IPLM admin group, and can then be attached or detached from Libraries or IPs using the 'pi label attach/detach' commands. See the Labels page for more information on Labels.
Labels can be used to filter IPs in the IPLM Web IP catalog or on the command line via the 'pi ip list' command. See the Listing IPs in the Catalog page for details on these functions.
IPs and aliases
Aliases are used to attach meaningful names to particular IP releases (IPVs) which can then be used to reference the IPV. See the page on IP Aliases for more information.
IPs and properties
Properties are pre-defined typed fields that can be attached to IPs. They can be used to extend and customize the IP data model to support specific traceability and search requirements. More information on organizing IPs using properties can be found on the Properties page.
IP Properties can have either the IP or the IPV as their target. IP Properties with an IP target have one value per IP, IP Properties with an IPV target can have a new value per IP (with an option to automatically propagate their value to the next version if desired).
Defining properties and property sets
Properties are not applied to IPs directly instead they are first grouped into property sets. Property sets can contain any number of individual properties. The properties included in a property set are typically grouped by type, ie financial, process, amplifier spec, etc. Property sets are then attached to individual IPs, once attached all the properties in the attached property set are available to be set on the IP or IPV.
Properties and property sets are first defined by an admin and are then available for use on IPs. See the Properties page for more information on creating properties and property sets, and on attaching them to IPs.
Setting property values on IPs and IPVs in IPLM Web
Property sets are attached to the IP by typing (with auto filtering) the name of the property set in the 'Property Sets' field. Once applied the properties belonging to that property set will be available on the IP and can have their values set. The IP/IPV indicator next to the property shows whether the value applies to the IPV (one value per Release) or the IP (one value per IP). Select Save to save the values.
Setting property values on IPs and IPVs on the command line
Property values are set from PiCLI using the 'pi ip prop' command.
> pi ip prop -h Usage: pi ip properties [-h] [--template TEMPLATE] identifier Description: Edit the IP/IPV Properties on an existing IP. The command puts the IP/IPV specification into a temporary file and invokes the editor specified by the EDITOR environment variable. Saving the file edits IP/IPV Properties of the IP. Positional arguments: identifier The name of the IP or IPV whose Properties are being edited. Optional arguments: --template TEMPLATE, -t TEMPLATE Use the specified template to edit the IP/IPV Properties. The template is an ASCII file that defines the IP/IPV Properties on the IP. This can be used to edit IP/IPV Properties using a script and avoid the interactive editor. -h, --help Show this help message and exit Examples: # Edit the IP/IPV Properties on LATEST Version on Line TRUNK of IP lib.ip pi ip prop lib.ip # Edit the IP/IPV Properties on Version 2 on Line dev of IP lib.ip pi ip prop lib.ip@2.dev # Read IP/IPV Property values from a Template file and set on IPV lib.ip@2.dev pi ip prop -t ip_prop_values.tpl lib.ip@2.dev
The command brings up the property value template, which has an entry for each property that is included in in a property set attached to the IP. The properties are split into an 'IP_PROPERTIES' section and an 'IPV_PROPERTIES' section. The properties can be edited and the template saved to make the change.
# Properties for IP tutorial.tutorial [IP_PROPERTIES] # Target power # Default value: 0.5 # Suffix: mW target_power = # Target size # Default value: 1.0 # Suffix: sq-mm target_size = 35.0 # licensing class for the IP # Default value: UNSET license_class = B # Properties for IPV tutorial.tutorial@7.TRUNK [IPV_PROPERTIES] # IP Catetory # Can be one of: # Category1 # Category2 # Category3 # Category4 # Category5 # Category6 # Category7 IPCategory = Category7 # Input Referred Offset latest release # Suffix: uV Vio_rel = 6.0 # Nominal Power Consumption design value at release # Suffix: mW PowerNominal_rel = 1.4
> pi ip prop tutorial.tutorial Successfully edited IPV 'tutorial.tutorial@7.TRUNK'.
IPs, attributes, and widgets
Attributes are text strings that can be attached to various Helix IPLM objects. Specially formatted attributes will display on IPLM Web as widgets. If the attribute does not match the formatting of a particular widget type, it will not be displayed on IPLM Web but it will still be accessible via PiCLI and the Helix IPLM API. See Attributes and Widgets for more information.
IPs can display widgets on their Details page. While there is no inherent restriction, the data displayed on the IP page may tend to be applicable to the overall IP block, ie Datasheet type information, while the widgets displayed on IPV pages may be more focused on the qualification state of that particular release.
Widgets on the Details page
Attributes (and widgets) are managed by using PiCLI or the Helix IPLM API.
Display widgets are set on IPs using the IP Attribute commands described in the following section. For more information on how to format attributes so they display as widgets see Widgets. All available widget formats are supported on IPs.
Managing IP attributes
The 'pi ip attribute' commands are used to manage attributes on IPs, IP Versions (IPVs), or IP Lines (IPLs).
> pi ip attr -h Usage: pi ip attribute [-h] SUBCOMMAND ... Description: Commands related to IP, Line or IPV Attributes. These subcommands are used to delete, get, list information about and set Attributes on IPs, Lines and IP Versions. Optional arguments: -h, --help Show this help message and exit Available sub-commands: SUBCOMMAND delete (del, remove, rm) Delete an Attribute from a IP, Line or IPV. get Get the value of an Attribute from a IP, Line or IPV. list (ls) List the Attributes on a IP, Line or IPV. set Set the value of an Attribute on a IP, Line or IPV.
Setting attributes on IPs
The 'pi ip attribute set' command is used to set an attribute on an IP.
> pi ip attr set -h Usage: pi ip attribute set [-h] [--file FILE] identifier attr_name [attr_value] Description: Set the value of an Attribute on a IP, Line or IPV. Attributes are open text fields in the IP, Line or IPV. Users can set any key/value pair asan Attribute on a IP, Line or IPV. Helix IPLM performs no checks on Attributes. Optionally users can define the Attribute value in a text file, location specified with --file option (useful for complicated JSON strings, etc). Users may also read from command STDIN directly and redirect with standard Unix. Note that the use of attr_value and --file are mutually exclusive. Positional arguments: identifier IP, Line or IPV identifier on which to set the Attribute. attr_name Name of Attribute to set. attr_value Value of Attribute to set. Optional arguments: --file FILE Specify path to file containing the Attribute value. -h, --help Show this help message and exit Examples: # Set Attribute additional_info on IP lib.ip with value NONE pi ip attr set lib.ip additional_info "NONE"# Set Attribute additional_info on IP lib.ip with value from contents of file info.txt pi ip attr set lib.ip additional_info --file info.txt # Set Attribute test_results on IP lib.ip with value from STDOUT of script run_regression.py run_regression.py | pi ip attr set lib.ip test_results --file -
> pi ip attr set tutorial.tutorial 'MDXDocBtn' '{"display": "button", "data":{"text":"Helix Docs", "url":"https://help.perforce.com/methodics/"}}'
Successfully set Attribute 'MDXDocBtn' on IP 'tutorial.tutorial'.
Setting attributes on IPs from a file
The 'pi ip attribute set' command can use the contents of a file to set an attribute using the --file option
> pi ip attr set tutorial.tutorial 'MDXDocBtn' --file MY_ATTR_FILE Successfully set Attribute 'MDXDocBtn' on IP 'tutorial.tutorial'.
Listing Attributes on IPs, IPLs, or IPVs
The 'pi ip attribute list' command is used to list the attributes set on an IP, IP Version (IPV), or IP Line (IPL). The target of the attribute list is set by the type of identifier supplied to the command.
> pi ip attr list -h Usage: pi ip attribute list [-h] identifier Description: List the Attributes on a IP, Line or IPV. All Attributes on the IP, Line or IPV are listed. Positional arguments: identifier IP, Line or IPV identifier the Attributes to list are on. Optional arguments: -h, --help Show this help message and exit Examples: # List the Attributes on IP lib.ip pi ip attr list lib.ip
> pi ip attr list tutorial.tutorial@6.TRUNK ┌───────────────────────┬───────┬───────────────────────────────┐ │ NAME │ USER │ TIME │ ╞═══════════════════════╪═══════╪═══════════════════════════════╡ │ COLLATERAL_GENERATORS │ admin │ 2020-03-26 16:05:33 -0400 EDT │ │ FAQ │ admin │ 2020-03-26 15:58:10 -0400 EDT │ │ JOB_INFO │ admin │ 2020-03-26 16:05:33 -0400 EDT │ │ REQUIREMENTS_TRACE │ admin │ 2020-03-26 16:02:06 -0400 EDT │ │ Regressions │ admin │ 2020-03-26 15:58:08 -0400 EDT │ │ Resources │ admin │ 2020-03-26 15:58:10 -0400 EDT │ │ jenkins-build │ admin │ 2020-03-26 16:05:34 -0400 EDT │ │ jenkins-status │ admin │ 2020-03-26 16:05:34 -0400 EDT │ └───────────────────────┴───────┴───────────────────────────────┘ Found 8 matching object(s).
Getting Attribute Values from IPs, IPLs, and IPVs
The 'pi ip attribute get' command is used to retrieve the attribute set on an IP, IP Version (IPV), or IP Line (IPL). The target of the attribute get is set by the type of identifier supplied to the command.
> pi ip attr get -h Usage: pi ip attribute get [-h] identifier attr_name Description: Get the value of an Attribute from a IP, Line or IPV. The Attribute value is returned directly by this command. Positional arguments: identifier IP, Line or IPV identifier to get Attribute value from. attr_name Name of Attribute to get. Optional arguments: -h, --help Show this help message and exit Examples: # Get the value of Attribute additional_info from IP lib.ip pi ip attr get lib.ip additional_info
> pi ip attr get tutorial.tutorial MDXDocBtn
{"display": "button", "data":{"text":"Helix Docs", "url":"https://help.perforce.com/methodics/"}}
Deleting Attributes from IPs, IPLs, and IPVs
The 'pi ip attribute delete' command is used to delete an attribute set on an IP, IP Version (IPV), or IP Line (IPL). The target of the attribute delete is set by the type of identifier supplied to the command.
> pi ip attr del -h Usage: pi ip attribute delete [-h] identifier attr_name Description: Delete an Attribute from a IP, Line or IPV. Positional arguments: identifier IP, Line or IPV identifier to delete Attribute from. attr_name Name of Attribute to delete. Optional arguments: -h, --help Show this help message and exit Examples: # Delete Attribute additional_info from IP lib.ip pi ip attr del lib.ip additional_info
> pi ip attr del tutorial.tutorial MDXDocBtn Successfully removed Attribute 'MDXDocBtn' from IP 'tutorial.tutorial'.