DYN-10096: On package install engine_version checks are suppressed if compatibility_matrix check passes#17173
Conversation
There was a problem hiding this comment.
See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-10096
…n-checks-are-suppressed-if-compatibility_matrix-check-pass
jasonstratton
left a comment
There was a problem hiding this comment.
Address the two comments and I think it's good. ... Just let me know when you're done in order to merge.
Thanks for the review, @jasonstratton ! I've addressed both comments, the PR should be ready to merge. |
…n-checks-are-suppressed-if-compatibility_matrix-check-pass
johnpierson
left a comment
There was a problem hiding this comment.
Tested locally and working great. Tested with Rhythm which is marked compatible with 4.0, but has an engine version of 2.17
There was a problem hiding this comment.
Pull request overview
This PR updates Dynamo’s package-install warning logic so that compatibility_matrix is treated as the authoritative compatibility source during installation, preventing engine_version heuristics from overriding an explicitly compatible matrix result (addressing incorrect warnings seen when installing packages like Clockwork).
Changes:
- Skip
engine_version-based warning dialogs whencompatibility_matrixexplicitly reports compatibility (compatible == true). - Generalize the “older Dynamo” warning heuristic to flag any dependency whose
engine_versionmajor is lower than the current Dynamo major. - Add UI tests covering both “compatibility_matrix compatible => no engine warnings” and “compatibility_matrix null => engine warnings still apply”.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs |
Adjusts engine-version warning gating based on compatibility_matrix result; updates major-version heuristic for “older Dynamo” warnings. |
test/DynamoCoreWpf2Tests/PackageManager/PackageManagerUITests.cs |
Adds tests to ensure engine-version warnings are suppressed when compatibility matrix is explicitly compatible, and still shown when compatibility data is absent. |
| //this message has a url link so we use the rich text box version of the message box. | ||
| showRichTextBox: true, | ||
| MessageBoxButton.OKCancel, | ||
| MessageBoxImage.Warning); |
| //if any of the required packages use a pre 3.x version of Dynamo, show a dialog to the user | ||
| //allowing them to cancel the package download |
| // also identify packages that have a Dynamo engine version from a different major version as a special case, | ||
| // as different major Dynamo versions may use different runtime frameworks - these packages may not be compatible. | ||
| // This check will return empty if the current major version does not require this validation. |
| var olderDynamoMessage = $"{string.Format(Dynamo.Wpf.Properties.Resources.MessagePackageOlderDynamo, productName)} {Dynamo.Wpf.Properties.Resources.MessagePackOlderDynamoLink}"; | ||
|
|
||
| // Actually perform the download & install operations. | ||
| pmVmMock.Object.ExecutePackageDownload(id, pkgVersionObject, ""); |
| var olderDynamoMessage = $"{string.Format(Dynamo.Wpf.Properties.Resources.MessagePackageOlderDynamo, productName)} {Dynamo.Wpf.Properties.Resources.MessagePackOlderDynamoLink}"; | ||
|
|
||
| // Actually perform the download & install operations. | ||
| pmVmMock.Object.ExecutePackageDownload(id, pkgVersionObject, ""); |
|




Purpose
This PR fixes DYN-10069, where Clockwork installation on Dynamo 3.6.1 incorrectly triggers engine version warnings despite valid compatibility.
Root cause is in
PackageManagerClientViewModel.ExecutePackageDownload(), which evaluates bothcompatibility_matrixand publishedengine_version. The engine version check can override valid compatibility results.Fix:
compatibility_matrixthe primary compatibility sourceengine_versionwhen compatibility is unknown or incompatiblecompatibility_matrixreports compatibilityDeclarations
Check these if you believe they are true
Release Notes
Fixes incorrect package compatibility warnings during installation when packages are marked compatible via the compatibility matrix.
Reviewers
@DynamoDS/eidos
@jasonstratton
FYIs
@johnpierson
@dnenov