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 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.

Property Value Template
# 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 Example
> 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 attribute Command
> 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 attribute set Command
> 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 -

Example IP Attribute Set
> 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

Example IP Attribute Set
> 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 attribute list 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

Example IPV Attribute List
> 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 attribute get 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

Example IP Attribute Get
> 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 attribute delete 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

Example IP Attribute Delete
> pi ip attr del tutorial.tutorial MDXDocBtn
Successfully removed Attribute 'MDXDocBtn' from IP 'tutorial.tutorial'.