Managing IP Libraries

IP Libraries are used in Helix IPLM to group and organize IPs. Libraries can be decorated with Widgets to create a project dashboard. This page details creating, editing, and deleting Libraries from IPLM Web and PiCLI.

Library fields

When adding or editing an IP Library in the Helix IPLM platform, the following fields are available to configure the Library:

Field Definition
name The name of the Library. Helix IPLM objects are tracked by UUID, so names can be modified after creation. Library naming has the following restrictions, listed in the section Fixing Mistakes - IP Rename, Delete, Obliterate, rm-from-filelist.
vendor Field to track the internal or external supplier of the IPs in a particular IP Library. The vendor field can be used to list Libraries on the command line.
description A text field describing the Library, this gets displayed when the Library is listed or viewed in the CLI or IPLM Web.
icon The icon to use with the Library in IPLM Web. See the IPLM Web section for more information on configuring icons.
hooks

Hooks are scripts tied to events in the lifecycle of IPs, these scripts are used for a variety of purposes, often including automatic characterization and documentation at the time of release, compilation at the time of release or workspace construction, pre-or post integrate actions, amongst many other automation functions. Hooks can be defined at either the IP Library level, or the individual IP level. If defined at the Library level the hooks defined will apply to all the IPs contained in that Library. If a hook is defined at the IP level, it will override the Library level setting. The hooks section of the template is where these scripts are set as the defaults for the IPs in a Library. Client side hooks are run only from the workspace, not for server side releases, see the Server Side Hooks and Events sections for alternative methods of automation. More information on client side hooks, including how to pass arguments to them is available at Hooks.

  • pre_release hook - called before the release is captured, used for running 'smoke tests' to determine if workspace is worthy of a release
  • post_release - called after the release is captured, used for initiation continuous integration flows or other characterization using the new release
  • post_load - called after a workspace with the IP is loaded
  • post_update - called after a workspace
  • pre_integrate - called by pi merge/integrate command before integration
  • post_integrate - called by pi merge/integrate command after integration

Renaming and deleting Libraries

Libraries can only be deleted if they do not contain any IPs. See Fixing Mistakes - IP Rename, Delete, Obliterate, rm-from-filelist for more information on deleting and obliterating IPs.

Libraries are tracked in Helix IPLM via UUIDs, so they can be renamed as needed, there are some consequences for IPs loaded into workspaces when their name changes (including the Library name) so some care must be taken. See Fixing Mistakes - IP Rename, Delete, Obliterate, rm-from-filelist for details.

Permissions and Libraries

Only members of the admin group can create or delete IP Libraries. Once created Libraries support Read/Write/Owner permissions with the following capabilities:

Permission Allows Implied Permissions
Read (r)

Listing the Library object (not its IP)

Viewing Library metadata including permissions

None
Write (w)

Edit Library fields (excluding permissions)

Creating new IPs in the Library

Deleting existing IPs in the Library

Library Read (r)
Owner (o) Edit Library Permissions Library Read (r)

See the Permissions Management for a full discussion of object permissions.

Library name restrictions

Forbidden Characters Reason for restriction
' / ' UNIX filename separator
'\', '?', or '*'
UNIX Special Characters
No Whitespace Command parsing
'@', '#', '.' (dot), or colon ':'
Helix IPLM Special Characters

Accessing the Libraries page in IPLM Web

The Libraries page can be accessed (as an admin) in the Create->New Library menu: 

Creating a new IP Library

To create a Library click the Create New Library button at the top of the Libraries Page.

Add a Library Name, and if desired, a Description and Hook Scripts and click Save:

Editing an existing IP Library

To edit an existing Library, select one of the existing Libraries to the side of the Libraries Page.

From this page the Library Description, Name, and Hook Scripts can be modified.  Once modifications are complete click the Save button at the top of the form.  

Deleting an existing IP Library

Note the option to delete an existing Library is only available if the Library does not contain any IPs.

Command line

Creating and editing IP Libraries

Libraries can be created on the command line using the 'pi lib add' command, and edited with the 'pi lib edit' command. 

Note

Libraries can be created and edited from IPLM Web and the Helix IPLM API as well. A description of the fields in the Library creation template is shown at the top of the page.


The format of the 'pi library add' command is:

pi library add Command
> pi library add -h
Usage: pi library add [-h] [--template TEMPLATE | identifier]

The format of the 'pi library edit' command is:

pi library edit Command
> pi lib edit -h
Usage: pi library edit [-h] [--template TEMPLATE] identifier

Libraries can be created by directly editing the template that comes up when the command is run, or a template can be submitted via the --template option at the time of Library creation or edit.

If a Library name is provided to the pi lib add command, the Library name is pre-filled in the IP template.

Examples:

pi lib add newlib Command Example
> pi lib add newlib
Successfully created Library 'newlib'.

pi lib edit newlib Command Example
> pi lib edit newlib
Successfully edited Library 'newlib'.

A description of the template option:

Library Edit Template
--template TEMPLATE, -t TEMPLATE
                        Use the specified template to edit the Library. The
                        template is an ASCII file that defines the Library.
                        This can be used to edit Libraries with a script and
                        avoid the interactive editor. To read the template
                        from STDIN, set TEMPLATE='-'.

Deleting Libraries 

Libraries can be deleted from PiCLI using the 'pi library delete' command. The format for the 'pi library delete' command is:

pi library delete Command
> pi lib delete -h
Usage: pi library delete [-h] identifier

Libraries can't be deleted if they have any IPs. See Fixing Mistakes - IP Rename, Delete, Obliterate, rm-from-filelist for more information on the 'pi ip delete' and 'pi ip obliterate' commands.

pi library delete newlib Command
> pi lib delete newlib
Successfully deleted Library 'newlib'.