Skip to content

Undefined GCV in an if-global-variable condition is info, not an error - #124

Merged
jcombs-pointblue merged 1 commit into
masterfrom
gcv-condition-undefined
Nov 3, 2026
Merged

jcombs-pointblue merged 1 commit into
masterfrom
gcv-condition-undefined

Conversation

@jcombs-pointblue

Copy link
Copy Markdown
Contributor

gcv-undefined counted <if-global-variable> conditions as errors. The engine reads an undefined GCV in a condition as having no value: not-available is true and equal is false. Nothing fails. Packages use this to test GCVs that another package may define. For example, the SCIM driver's ReformatMembersAndGroups tests drv.entitlement.Group as "not-available or false".

  • An available or not-available test is no longer reported.
  • Any other op on an undefined GCV is the new info gcv-undefined-condition, because the outcome of that test never changes.
  • A GCV that is also substituted (token-global-variable, ~name~) is still gcv-undefined (E).
  • Library policies follow the same rule.

docs/validation.md and CHANGELOG are updated. New tests are in ValidatorTest. The full suite passes: 1050 tests, 0 failures.

Checked on the edir3 tree: the 2 MITLL-Druva errors are now 2 infos, and validate reports 0 errors.

🤖 Generated with Claude Code

The engine reads an undefined GCV in <if-global-variable> as having no value
(not-available is true, equal is false) and nothing fails. available /
not-available tests are no longer reported; other ops are the new info
gcv-undefined-condition. A GCV that is also substituted stays gcv-undefined.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@jcombs-pointblue
jcombs-pointblue merged commit 86a37d8 into master Nov 3, 2026
4 checks passed
@jcombs-pointblue
jcombs-pointblue deleted the gcv-condition-undefined branch November 3, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant