{"action":"created","comment":{"url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/comments/241626530","pull_request_review_id":184947617,"id":241626530,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYyNjUzMA==","diff_hunk":"@@ -131,37 +135,51 @@ public static Version GetInstalledAsmVersion2(IEnumerable<Version> versions, ref\n                 getASMInstallsFunc = getASMInstallsFunc ?? GetAsmInstallations;\n                 var installations = getASMInstallsFunc(rootFolder);\n \n-                //first find the closest matches using major, minor and build version.\n+                // first find the exact match or the lowest matching within same major version\n                 foreach (var version in versions)\n                 {\n+                    Dictionary<Version, string> versionToLocationDic = new Dictionary<Version, string>();","path":"src/Tools/DynamoShapeManager/Utilities.cs","position":28,"original_position":28,"commit_id":"50f8ec5a8046f2b7fcd137bd51969793cd36aac5","original_commit_id":"50f8ec5a8046f2b7fcd137bd51969793cd36aac5","user":{"login":"mjkkirschner","id":508936,"node_id":"MDQ6VXNlcjUwODkzNg==","avatar_url":"https://avatars3.githubusercontent.com/u/508936?v=4","gravatar_id":"","url":"https://api.github.com/users/mjkkirschner","html_url":"https://github.com/mjkkirschner","followers_url":"https://api.github.com/users/mjkkirschner/followers","following_url":"https://api.github.com/users/mjkkirschner/following{/other_user}","gists_url":"https://api.github.com/users/mjkkirschner/gists{/gist_id}","starred_url":"https://api.github.com/users/mjkkirschner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjkkirschner/subscriptions","organizations_url":"https://api.github.com/users/mjkkirschner/orgs","repos_url":"https://api.github.com/users/mjkkirschner/repos","events_url":"https://api.github.com/users/mjkkirschner/events{/privacy}","received_events_url":"https://api.github.com/users/mjkkirschner/received_events","type":"User","site_admin":false},"body":"if these locations are always paths maybe it makes sense to use a `directoryInfo` or `Path` to be super explicit about what is happening. Not sure what ramifications this has though.","created_at":"2018-12-14T02:16:34Z","updated_at":"2018-12-14T02:16:34Z","html_url":"https://github.com/DynamoDS/Dynamo/pull/9309#discussion_r241626530","pull_request_url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/comments/241626530"},"html":{"href":"https://github.com/DynamoDS/Dynamo/pull/9309#discussion_r241626530"},"pull_request":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309"}}},"pull_request":{"url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309","id":237944349,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM3OTQ0MzQ5","html_url":"https://github.com/DynamoDS/Dynamo/pull/9309","diff_url":"https://github.com/DynamoDS/Dynamo/pull/9309.diff","patch_url":"https://github.com/DynamoDS/Dynamo/pull/9309.patch","issue_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues/9309","number":9309,"state":"open","locked":false,"title":"LibG lookup logic update to include more clients and more tolerant","user":{"login":"QilongTang","id":3942418,"node_id":"MDQ6VXNlcjM5NDI0MTg=","avatar_url":"https://avatars2.githubusercontent.com/u/3942418?v=4","gravatar_id":"","url":"https://api.github.com/users/QilongTang","html_url":"https://github.com/QilongTang","followers_url":"https://api.github.com/users/QilongTang/followers","following_url":"https://api.github.com/users/QilongTang/following{/other_user}","gists_url":"https://api.github.com/users/QilongTang/gists{/gist_id}","starred_url":"https://api.github.com/users/QilongTang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QilongTang/subscriptions","organizations_url":"https://api.github.com/users/QilongTang/orgs","repos_url":"https://api.github.com/users/QilongTang/repos","events_url":"https://api.github.com/users/QilongTang/events{/privacy}","received_events_url":"https://api.github.com/users/QilongTang/received_events","type":"User","site_admin":false},"body":"Please Note:\r\n1. Before submitting the PR, please review [How to Contribute to Dynamo](https://github.com/DynamoDS/Dynamo/blob/master/CONTRIBUTING.md)\r\n2. Dynamo Team will meet 1x a month to review PRs found on Github (Issues will be handled separately)\r\n3. PRs will be reviewed from oldest to newest\r\n4. If a reviewed PR requires changes by the owner, the owner of the PR has 30 days to respond. If the PR has seen no activity by the next session, it will be either closed by the team or depending on its utility will be taken over by someone on the team\r\n5. PRs should use either Dynamo's default PR template or [one of these other template options](https://github.com/DynamoDS/Dynamo/wiki/Choosing-a-Pull-Request-Template) in order to be considered for review.\r\n6. PRs that do not have one of the Dynamo PR templates completely filled out with all declarations satisfied will not be reviewed by the Dynamo team.\r\n7. PRs made to the `DynamoRevit` repo will need to be cherry-picked into all the DynamoRevit Release branches that Dynamo supports. Contributors will be responsible for cherry-picking their reviewed commits to the other branches after a `LGTM` label is added to the PR.\r\n\r\n### Purpose\r\n\r\n[DYN-974](https://jira.autodesk.com/browse/DYN-974)\r\nAs a Dynamo Client, I want LibG fallback to most compatible major version.\r\n\r\nThis PR:\r\n1. Update the ASM lookup logic so DynamoShapeManager will look for ASM **NOT ONLY** in **Revit** but also other clients like **Civil3D**. Currently it is set as a private property in DynamoShapeManager.Utilities, and we can expose this property later and ask clients to overwrite\r\n```\r\n        private static readonly List<string> ProductsWithASM = new List<string>() { \"Revit\", \"Civil\", \"FormIt\" };\r\n```\r\nDebug picture sample as below, you can see both Revit and Civil3D with ASM are found:\r\n![image](https://user-images.githubusercontent.com/3942418/49855432-44378100-fdbb-11e8-8d04-e6f42729b0ce.png)\r\n\r\n2. Update the lookup logic instead of just looking for exact matching version of ASM, look for the best match within same major version of ASM which can be \r\n      - perfect match or\r\n      - lowest existing one **within the same major** if fail to find a perfect match. e.g. DynamoShapeManager Looking for latest ASM 225.5.0 delivered with R2020.x but user only have ASM 225.0.0 delivered with R2020 locally, DynamoShapeManager will try to load ASM from there. This would make sure DynamoSandbox is more tolerant finding a compatible and relatively latest version of ASM on user computer to work with.\r\n\r\n### Declarations\r\n\r\nCheck these if you believe they are true\r\n\r\n- [x] The code base is in a better state after this PR\r\n- [ ] Is documented according to the [standards](https://github.com/DynamoDS/Dynamo/wiki/Coding-Standards)\r\n- [ ] The level of testing this PR includes is appropriate\r\n- [ ] User facing strings, if any, are extracted into `*.resx` files\r\n- [ ] All tests pass using the self-service CI.\r\n- [ ] Snapshot of UI changes, if any.\r\n- [ ] Changes to the API follow [Semantic Versioning](https://github.com/DynamoDS/Dynamo/wiki/Dynamo-Versions), and are documented in the [API Changes](https://github.com/DynamoDS/Dynamo/wiki/API-Changes) document.\r\n\r\n### Reviewers\r\n\r\n@aparajit-pratap @ColinDayOrg @mjkkirschner @alfarok \r\n\r\n### FYIs\r\n\r\n@kronz \r\n","created_at":"2018-12-12T08:03:15Z","updated_at":"2018-12-14T02:16:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"185546bb20d65c95f7752a1cf1fc11aacad500f9","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1056947173,"node_id":"MDU6TGFiZWwxMDU2OTQ3MTcz","url":"https://api.github.com/repos/DynamoDS/Dynamo/labels/2.x","name":"2.x","color":"bfe5bf","default":false},{"id":43211833,"node_id":"MDU6TGFiZWw0MzIxMTgzMw==","url":"https://api.github.com/repos/DynamoDS/Dynamo/labels/Improvement","name":"Improvement","color":"c7def8","default":false},{"id":207906980,"node_id":"MDU6TGFiZWwyMDc5MDY5ODA=","url":"https://api.github.com/repos/DynamoDS/Dynamo/labels/PTAL","name":"PTAL","color":"1d76db","default":false},{"id":45496795,"node_id":"MDU6TGFiZWw0NTQ5Njc5NQ==","url":"https://api.github.com/repos/DynamoDS/Dynamo/labels/bug","name":"bug","color":"ee0701","default":true}],"milestone":null,"commits_url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309/commits","review_comments_url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309/comments","review_comment_url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues/9309/comments","statuses_url":"https://api.github.com/repos/DynamoDS/Dynamo/statuses/50f8ec5a8046f2b7fcd137bd51969793cd36aac5","head":{"label":"DynamoDS:LibGLookUp","ref":"LibGLookUp","sha":"50f8ec5a8046f2b7fcd137bd51969793cd36aac5","user":{"login":"DynamoDS","id":6528209,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY1MjgyMDk=","avatar_url":"https://avatars3.githubusercontent.com/u/6528209?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoDS","html_url":"https://github.com/DynamoDS","followers_url":"https://api.github.com/users/DynamoDS/followers","following_url":"https://api.github.com/users/DynamoDS/following{/other_user}","gists_url":"https://api.github.com/users/DynamoDS/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoDS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoDS/subscriptions","organizations_url":"https://api.github.com/users/DynamoDS/orgs","repos_url":"https://api.github.com/users/DynamoDS/repos","events_url":"https://api.github.com/users/DynamoDS/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoDS/received_events","type":"Organization","site_admin":false},"repo":{"id":3395179,"node_id":"MDEwOlJlcG9zaXRvcnkzMzk1MTc5","name":"Dynamo","full_name":"DynamoDS/Dynamo","private":false,"owner":{"login":"DynamoDS","id":6528209,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY1MjgyMDk=","avatar_url":"https://avatars3.githubusercontent.com/u/6528209?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoDS","html_url":"https://github.com/DynamoDS","followers_url":"https://api.github.com/users/DynamoDS/followers","following_url":"https://api.github.com/users/DynamoDS/following{/other_user}","gists_url":"https://api.github.com/users/DynamoDS/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoDS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoDS/subscriptions","organizations_url":"https://api.github.com/users/DynamoDS/orgs","repos_url":"https://api.github.com/users/DynamoDS/repos","events_url":"https://api.github.com/users/DynamoDS/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoDS/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DynamoDS/Dynamo","description":"Open Source Graphical Programming for Design","fork":false,"url":"https://api.github.com/repos/DynamoDS/Dynamo","forks_url":"https://api.github.com/repos/DynamoDS/Dynamo/forks","keys_url":"https://api.github.com/repos/DynamoDS/Dynamo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DynamoDS/Dynamo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DynamoDS/Dynamo/teams","hooks_url":"https://api.github.com/repos/DynamoDS/Dynamo/hooks","issue_events_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues/events{/number}","events_url":"https://api.github.com/repos/DynamoDS/Dynamo/events","assignees_url":"https://api.github.com/repos/DynamoDS/Dynamo/assignees{/user}","branches_url":"https://api.github.com/repos/DynamoDS/Dynamo/branches{/branch}","tags_url":"https://api.github.com/repos/DynamoDS/Dynamo/tags","blobs_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/refs{/sha}","trees_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DynamoDS/Dynamo/statuses/{sha}","languages_url":"https://api.github.com/repos/DynamoDS/Dynamo/languages","stargazers_url":"https://api.github.com/repos/DynamoDS/Dynamo/stargazers","contributors_url":"https://api.github.com/repos/DynamoDS/Dynamo/contributors","subscribers_url":"https://api.github.com/repos/DynamoDS/Dynamo/subscribers","subscription_url":"https://api.github.com/repos/DynamoDS/Dynamo/subscription","commits_url":"https://api.github.com/repos/DynamoDS/Dynamo/commits{/sha}","git_commits_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/commits{/sha}","comments_url":"https://api.github.com/repos/DynamoDS/Dynamo/comments{/number}","issue_comment_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues/comments{/number}","contents_url":"https://api.github.com/repos/DynamoDS/Dynamo/contents/{+path}","compare_url":"https://api.github.com/repos/DynamoDS/Dynamo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DynamoDS/Dynamo/merges","archive_url":"https://api.github.com/repos/DynamoDS/Dynamo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DynamoDS/Dynamo/downloads","issues_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues{/number}","pulls_url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls{/number}","milestones_url":"https://api.github.com/repos/DynamoDS/Dynamo/milestones{/number}","notifications_url":"https://api.github.com/repos/DynamoDS/Dynamo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DynamoDS/Dynamo/labels{/name}","releases_url":"https://api.github.com/repos/DynamoDS/Dynamo/releases{/id}","deployments_url":"https://api.github.com/repos/DynamoDS/Dynamo/deployments","created_at":"2012-02-09T07:35:33Z","updated_at":"2018-12-13T19:54:34Z","pushed_at":"2018-12-13T21:26:51Z","git_url":"git://github.com/DynamoDS/Dynamo.git","ssh_url":"git@github.com:DynamoDS/Dynamo.git","clone_url":"https://github.com/DynamoDS/Dynamo.git","svn_url":"https://github.com/DynamoDS/Dynamo","homepage":"http://dynamobim.org","size":1404501,"stargazers_count":664,"watchers_count":664,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":381,"mirror_url":null,"archived":false,"open_issues_count":425,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":381,"open_issues":425,"watchers":664,"default_branch":"master"}},"base":{"label":"DynamoDS:master","ref":"master","sha":"f3267e106139c692e6ca75d952ef6ea07e61baac","user":{"login":"DynamoDS","id":6528209,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY1MjgyMDk=","avatar_url":"https://avatars3.githubusercontent.com/u/6528209?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoDS","html_url":"https://github.com/DynamoDS","followers_url":"https://api.github.com/users/DynamoDS/followers","following_url":"https://api.github.com/users/DynamoDS/following{/other_user}","gists_url":"https://api.github.com/users/DynamoDS/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoDS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoDS/subscriptions","organizations_url":"https://api.github.com/users/DynamoDS/orgs","repos_url":"https://api.github.com/users/DynamoDS/repos","events_url":"https://api.github.com/users/DynamoDS/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoDS/received_events","type":"Organization","site_admin":false},"repo":{"id":3395179,"node_id":"MDEwOlJlcG9zaXRvcnkzMzk1MTc5","name":"Dynamo","full_name":"DynamoDS/Dynamo","private":false,"owner":{"login":"DynamoDS","id":6528209,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY1MjgyMDk=","avatar_url":"https://avatars3.githubusercontent.com/u/6528209?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoDS","html_url":"https://github.com/DynamoDS","followers_url":"https://api.github.com/users/DynamoDS/followers","following_url":"https://api.github.com/users/DynamoDS/following{/other_user}","gists_url":"https://api.github.com/users/DynamoDS/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoDS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoDS/subscriptions","organizations_url":"https://api.github.com/users/DynamoDS/orgs","repos_url":"https://api.github.com/users/DynamoDS/repos","events_url":"https://api.github.com/users/DynamoDS/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoDS/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DynamoDS/Dynamo","description":"Open Source Graphical Programming for Design","fork":false,"url":"https://api.github.com/repos/DynamoDS/Dynamo","forks_url":"https://api.github.com/repos/DynamoDS/Dynamo/forks","keys_url":"https://api.github.com/repos/DynamoDS/Dynamo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DynamoDS/Dynamo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DynamoDS/Dynamo/teams","hooks_url":"https://api.github.com/repos/DynamoDS/Dynamo/hooks","issue_events_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues/events{/number}","events_url":"https://api.github.com/repos/DynamoDS/Dynamo/events","assignees_url":"https://api.github.com/repos/DynamoDS/Dynamo/assignees{/user}","branches_url":"https://api.github.com/repos/DynamoDS/Dynamo/branches{/branch}","tags_url":"https://api.github.com/repos/DynamoDS/Dynamo/tags","blobs_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/refs{/sha}","trees_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DynamoDS/Dynamo/statuses/{sha}","languages_url":"https://api.github.com/repos/DynamoDS/Dynamo/languages","stargazers_url":"https://api.github.com/repos/DynamoDS/Dynamo/stargazers","contributors_url":"https://api.github.com/repos/DynamoDS/Dynamo/contributors","subscribers_url":"https://api.github.com/repos/DynamoDS/Dynamo/subscribers","subscription_url":"https://api.github.com/repos/DynamoDS/Dynamo/subscription","commits_url":"https://api.github.com/repos/DynamoDS/Dynamo/commits{/sha}","git_commits_url":"https://api.github.com/repos/DynamoDS/Dynamo/git/commits{/sha}","comments_url":"https://api.github.com/repos/DynamoDS/Dynamo/comments{/number}","issue_comment_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues/comments{/number}","contents_url":"https://api.github.com/repos/DynamoDS/Dynamo/contents/{+path}","compare_url":"https://api.github.com/repos/DynamoDS/Dynamo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DynamoDS/Dynamo/merges","archive_url":"https://api.github.com/repos/DynamoDS/Dynamo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DynamoDS/Dynamo/downloads","issues_url":"https://api.github.com/repos/DynamoDS/Dynamo/issues{/number}","pulls_url":"https://api.github.com/repos/DynamoDS/Dynamo/pulls{/number}","milestones_url":"https://api.github.com/repos/DynamoDS/Dynamo/milestones{/number}","notifications_url":"https://api.github.com/repos/DynamoDS/Dynamo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DynamoDS/Dynamo/labels{/name}","releases_url":"https://api.github.com/repos/DynamoDS/Dynamo/releases{/id}","deployments_url":"https://api.github.com/repos/DynamoDS/Dynamo/deployments","created_at":"2012-02-09T07:35:33Z","updated_at":"2018-12-13T19:54:34Z","pushed_at":"2018-12-13T21:26:51Z","git_url":"git://github.com/DynamoDS/Dynamo.git","ssh_url":"git@github.com:DynamoDS/Dynamo.git","clone_url":"https://github.com/DynamoDS/Dynamo.git","svn_url":"https://github.com/DynamoDS/Dynamo","homepage":"http://dynamobim.org","size":1404501,"stargazers_count":664,"watchers_count":664,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":381,"mirror_url":null,"archived":false,"open_issues_count":425,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":381,"open_issues":425,"watchers":664,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309"},"html":{"href":"https://github.com/DynamoDS/Dynamo/pull/9309"},"issue":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/issues/9309"},"comments":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/issues/9309/comments"},"review_comments":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309/comments"},"review_comment":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/pulls/9309/commits"},"statuses":{"href":"https://api.github.com/repos/DynamoDS/Dynamo/statuses/50f8ec5a8046f2b7fcd137bd51969793cd36aac5"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mjkkirschner"}}