Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DYN-7341: PM redesign search tab with compatibility info #15522

Merged
merged 34 commits into from
Oct 21, 2024

Conversation

dnenov
Copy link
Collaborator

@dnenov dnenov commented Oct 1, 2024

Purpose

Follow DYN-7341. Related tasks:

A redesign of the PM search & install functionality.

  • package item row redesign
  • package item details redesign
  • introduced version compatibility (against Dynamo and Host)
  • release notes
  • incompatible and unknown compatibility installation warning prompt

Current State

iimFy4tMRG

Declarations

Check these if you believe they are true

  • The codebase is in a better state after this PR
  • Is documented according to the standards
  • The level of testing this PR includes is appropriate
  • User facing strings, if any, are extracted into *.resx files
  • All tests pass using the self-service CI.
  • Snapshot of UI changes, if any.
  • Changes to the API follow Semantic Versioning and are documented in the API Changes document.
  • This PR modifies some build requirements and the readme is updated
  • This PR contains no files larger than 50 MB

Release Notes

  • cherry picking WIP changes
  • contains Greg update to 3.0.2.6334
  • refactoring some of the view model code to simplify and remove unnecessary complexity
  • added compatibility tests
  • added test for latest compatible version
  • will set the detail version expander corresponding to the currently selected package version to expanded upon opening the package details view
  • changed invoking of the scroll up to happen after the view has finished generating to make sure it scrolls all the way to the top
  • added tooltips and related resources
  • added fallback message to compatibility section inside detail items if no compatibility is found
  • properly centers the messagebox in Dynamo/Package Manager window

Reviewers

@QilongTang
@zeusongit

FYIs

dnenov added 9 commits October 1, 2024 09:57
- bumped greg to 6334
- initial UI changes
- blocker reached - not sure where the host compatibility information is coming from
- now uses listview with expanding items instead of a datagrid
- finished the ui elements as per the design
- starting transitions
- version is compatible changes icon
- main ui changes are done
- add back the package dependencies links (should be working in the current live version)
- merged specific files from commit
- picking specific files only
- replaced the mockup data with the real Greg response
- adapted the solution, but will work on simplifying it further
@dnenov dnenov added the WIP label Oct 1, 2024
@QilongTang QilongTang added this to the 3.4 milestone Oct 1, 2024
- added public properties to the declared API doc
Copy link

github-actions bot commented Oct 1, 2024

UI Smoke Tests

Test: success. 11 passed, 0 failed.
TestComplete Test Result
Workflow Run: UI Smoke Tests
Check: UI Smoke Tests

dnenov added 3 commits October 2, 2024 12:14
- visibility when no version compatibility infos are found
- removed table interactions
- simplified the way to instantiate the information feeding the compatibility table - now directly and dynamically takes that from the compatibility_matrx response
- test added
dnenov added 5 commits October 2, 2024 18:53
- refactoring some of the view model code to simplify and remove unnecessary complexity
- added compatibility tests
- added test for latest compatible version
- will set the detail version expander corresponding to the currently selected package version to expanded upon opening the package details view
- changed invoking of the scroll up to happen after the view has finished generating to make sure it scrolls all the way to the top
- added tooltips and related resources
- added fallback message to compatibility section inside detail items if no compatibility is found
- properly centers the messagebox in Dynamo/Package Manager window
dnenov added 2 commits October 7, 2024 16:39
- added a temporary compatibilityMap in lieu of the route to come
- added tests to complement the complex compatibility computation
@dnenov dnenov marked this pull request as ready for review October 7, 2024 15:43
dnenov added 2 commits October 7, 2024 16:43
- captured a large portion of tests failing after adding a new message box prompt
@zeusongit
Copy link
Contributor

In the GIF when installing a package with unknown compatibility, the message shown is for incompatibility.
Is this expected?
Screenshot 2024-10-15 at 2 44 22 PM

@reddyashish
Copy link
Contributor

Also @dnenov there is one conflict, resolve it.

@dnenov
Copy link
Collaborator Author

dnenov commented Oct 17, 2024

This is taken care of, I will leave the gif for posterity, as currently I have nothing to demonstrate the prompt with otherwise :/ But, just so it is clear, only incompatible packages will trigger this prompt!

- new greg version
- API break fixed by introducing a new overload constructor
- logging error when we try to navigate to a bad link in the package details (links are provided by package authors, so we cannot control the conversion to a valid URI)
- comments to public properties
- small UI aligment to enforce consistency of line height between packages with and without Host information
- first stab at replacing the static compatibility map with the one coming from the new greg route
- struggling to find the best design patter for the most efficient way of serving the data to each individual `PackageManagerSearchElement`
- `PackageManagerSearchElement` are internalized using only the 'Header' corresponding to each individual package
- the `PackageManagerSearchElement` is part of the `DocumentationBrowserViewExtension`
- Ideally the Compatibility Map is only loaded once per Dynamo session. Furthermore, we do that inside the PackageManagerSearchViewModel, which is part of `DynamoCoreWPF`
- as a consequence, the individual `PackageManagerSearchElement`s have no visibility over the `PackageManagerSearchViewModel`
- is the best way fowrard to make the `PackageManagerSearchViewModel` visible to the `PackageManagerSearchElement` and create the map a static property in a singleton?
- moved the static compatibility map to the PackageViewModel (thank you Aaron and Ashish!!!)
- fixed tests
- added test
@dnenov dnenov changed the title Pm redesign search tab cherrypick DYN-7341 - Pm redesign search tab cherrypick Oct 18, 2024
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-7341

@dnenov dnenov changed the title DYN-7341 - Pm redesign search tab cherrypick DYN-7341: Pm redesign search tab cherrypick Oct 18, 2024
@dnenov
Copy link
Collaborator Author

dnenov commented Oct 18, 2024

DynamoCoreWpfTests.NodeAutoCompleteSearchTests.NodeSuggestions_CanAutoCompleteOnCustomNodesOutPort_WithSpaceInPortName this passes locally, not sure why it's failing.
image

@@ -237,5 +447,13 @@ private void DetectDependencies()
PythonVersion = pythonEngineVersions.Count > 0 ? string.Join(", ", pythonEngineVersions) : Dynamo.Properties.Resources.NoneString;
Hosts = hostDependencies.Count > 0 ? string.Join(", ", hostDependencies) : Dynamo.Properties.Resources.NoneString;
}

private static string CapitalizeFirstLetter(string word)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can maybe move this to utilityclass later

/// </summary>
/// <param name="dateString"></param>
/// <returns></returns>
private string GetFormattedDate(string dateString)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment here

@QilongTang QilongTang removed the WIP label Oct 21, 2024
@QilongTang QilongTang merged commit e2f6813 into DynamoDS:master Oct 21, 2024
23 of 24 checks passed
@QilongTang QilongTang changed the title DYN-7341: Pm redesign search tab cherrypick DYN-7341: PM redesign search tab with compatibility info Oct 29, 2024
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.

4 participants