vipm-io / vipm-desktop-issues

All software has bugs. So does VIPM. Thanks for your help reporting them! We hope to squash them all :)
5 stars 1 forks source link

VI Package build fails if it includes an LVLIB or LVCLASS with a missing Friend VI #9

Closed jimkring closed 1 year ago

jimkring commented 2 years ago

Overview

When attempting to build a VI package with an lvlib or lvlcass that declares a friend that is not preseent on disk in the expected location, thee build will fail with an Error 7 stating that there is a missing VI.

VIPM API_vipm_api.lvlib:Parse Build Return Message_vipm_api.vi<ERR>
Code:: 7
Source:: 7882C6B20F4F1734FAE5DD4402F323AA<ERR>
The following source VIs or Libraries are missing.
Please correct this problem before rebuilding.

SSL.vi

The following source VIs or Libraries are the callers of missing files

Lonely.lvlib

VIPM Versions Affected: 2021, 2022
OS'es Affected: All
Status: Not yet fixed
Test Case: tests/Issue_000009_build_package_with_missing_friend
Workaround: See below

Error Symptoms

Building with VI Package Builder UI

A dialog is shown stating that there is a missing dependency. The missing Friend VI.

image

image

Building with VIPM API

An Error 7 occurs stating that there is a missing VI.

image

Root Issue

The issue is that the VI Package source includes an lvlib or lvclass that declares a friend that does not actually exist on disk. This does not cause problems for the lvlib, since it's more of a rule that applies to allowing the friend to call community-scoped members of the lvlib that declares the friend. However, VIPM is considering this friend a dependency, when it should not.

image

Possible Workaround

Prior to building the VI package, put a dummy VI (blank VI) in the location on disk where the Friend VI is expected to be found. This can be done programmatically using using pre-build and post-build custom actions (before and after the package build) in the VI Package Build spec.

jimkring commented 1 year ago

fixed in VIPM 2023.1