Unlike regular projects, which are intended for creating and managing specific workflows, libraries are designed to house common elements—like processes, enumerations, and media assets—that other projects may rely upon.

This makes libraries a cornerstone for establishing consistency and efficiency across various projects.

Key features

  • Resource Sharing:

    • Libraries facilitate the reuse of resources like processes, enumerations, and media assets across different projects. This allows for a more modular design, where commonly used elements are stored centrally.
    • Resources in a library can be included in other projects by setting the library as a dependency.
  • Dependencies:

    • A project can add a library as a dependency, meaning it will have access to the resources stored in that library.
    • Dependencies are managed through builds; each project can choose a specific version (build) of a library to depend on. This ensures that updates in the library do not automatically impact all projects unless intended.
  • Versioning:

    • Just like projects, libraries can be versioned. Each version of a library captures the state of its resources at a specific point in time.
    • This versioning allows projects to lock dependencies to specific library versions, providing stability and predictability during runtime.

Managing libraries

  1. Creating a Library:

    • Libraries can be created similarly to projects. The creation process involves setting a name, defining the resources it will contain, and managing its configuration settings.
    • Once created, resources can be added to the library incrementally, allowing for iterative development.

  1. Managing Library Resources:

    • Users can create, edit, delete, or version resources within the library. Resources include processes, enumerations, media files, and other elements that can be referenced by projects.
    • A library can have multiple versions, each capturing the resource state. This allows backward compatibility with older project builds relying on specific library versions.

  1. Adding Library Dependencies to Projects:

    • In the project workspace, libraries can be set as dependencies under the Dependencies section.
    • Users can select which build version of the library to reference. This allows projects to control how library changes affect them by choosing to update the dependency to newer library builds as needed.

Libraries can be added as a dependency only to Work-In-Progress (WIP) project versions.

Library build process

  • Builds in Libraries are tagged versions, allowing a snapshot of the current library resources to be used by projects. Each build in a library captures the state of all its resources.
  • Projects referencing a library can specify the exact build to use, ensuring that changes to the library do not inadvertently impact dependent projects.

Use cases

  1. Centralized Resource Management:

    • Organizations that need to maintain a standard set of processes or other resources can use libraries to store these centrally. Each project can then use the same library resources, ensuring consistency.
  2. Version-Controlled Dependency Management:

    • By utilizing builds and versioning within libraries, projects can safely depend on specific versions, reducing the risk of unexpected behavior due to resource updates.
  3. Streamlining Updates Across Projects:

    • When an update is required across multiple projects that rely on the same resources, it can be done by updating the library and releasing a new build. Each project can then choose to update to the new build when ready.

Best practices

  • Use libraries for resources that need to be standardized across multiple projects.
  • Carefully manage dependencies and choose specific builds to avoid unexpected runtime behavior.
  • Leverage versioning to maintain a clear history of resource changes, allowing rollbacks if necessary.

Libraries thus play a crucial role in modularizing the development process, enabling reusable and maintainable components across different projects. This leads to improved project organization, reduced redundancy, and simplified resource management.

FAQs