{"action":"created","issue":{"url":"https://api.github.com/repos/eirannejad/pyRevit/issues/119","repository_url":"https://api.github.com/repos/eirannejad/pyRevit","labels_url":"https://api.github.com/repos/eirannejad/pyRevit/issues/119/labels{/name}","comments_url":"https://api.github.com/repos/eirannejad/pyRevit/issues/119/comments","events_url":"https://api.github.com/repos/eirannejad/pyRevit/issues/119/events","html_url":"https://github.com/eirannejad/pyRevit/issues/119","id":171472501,"number":119,"title":"Package Manager Proposal Discussion","user":{"login":"gtalarico","id":9513968,"avatar_url":"https://avatars.githubusercontent.com/u/9513968?v=3","gravatar_id":"","url":"https://api.github.com/users/gtalarico","html_url":"https://github.com/gtalarico","followers_url":"https://api.github.com/users/gtalarico/followers","following_url":"https://api.github.com/users/gtalarico/following{/other_user}","gists_url":"https://api.github.com/users/gtalarico/gists{/gist_id}","starred_url":"https://api.github.com/users/gtalarico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gtalarico/subscriptions","organizations_url":"https://api.github.com/users/gtalarico/orgs","repos_url":"https://api.github.com/users/gtalarico/repos","events_url":"https://api.github.com/users/gtalarico/events{/privacy}","received_events_url":"https://api.github.com/users/gtalarico/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":18,"created_at":"2016-08-16T17:29:05Z","updated_at":"2016-08-29T16:41:21Z","closed_at":null,"body":"Sketch of Package Manager Concept for discussion:\r\n<br />\r\n<br />### What does it do\r\n<br />Allows pyrevit users to install/remove/update pyrevit extensions from within revit.\r\n<br />\r\n<br />### How it works\r\n<br />1. A Package Index in json format is Stored on PyRevit Repo\r\n<br />2. Package stores (name, version, url, and description).\r\n<br />3. Pulls json from Repo using requests or .net webclient\r\n<br />4. Find pyrevit local dir by package manager script location\r\n<br />5. Check local folders and compare to name of packages in packages.json\r\n<br />6. Determine if remote package is installed, and compare version to local packages \r\n<br />(use version variable insite package's __init__.py  or version.py file instead of opening files and re searching for __version__ for better performance and reliability)\r\n<br />\r\n<br />7. Render a Datagrid with action buttons for every row:\r\n<br />Package name, remote version, local version, description, and actions:\r\n<br />Not installed: Install\r\n<br />Installed but not latest: Upgrate + Remove\r\n<br />Installed and latest: Remove\r\n<br />\r\n<br />Actions:\r\n<br />* Remove: Delete folder\r\n<br />* On install/Upgrade: Clone remote repo from json: url path into folder 'packagename'\r\n<br />\r\n<br />\r\n<br />### Implementation Details:\r\n<br />PACKAGES.JSON (stored on pyrevit repo): item # 1/2/3 abovelist:\r\n<br />example: \r\n<br />[\r\n<br />{'name':'pyrevitplus','version':'1.0.0', 'url':'github.com/gtalarico/pyrevitplus, 'description': 'Tools for XXX'},\r\n<br />{'name':'selectiontools', version':'1.0.0', 'url':'github.com/gtalarico/pyrevitplus, 'description': 'etc'},\r\n<br />]\r\n<br />\r\n<br />Once packages is read and compared to local folders, a local_packages dictionary is created in memory, adding the following keys:\r\n<br />'installed': True/False,\r\n<br />'local_version': '0.2.0'' \r\n<br />\r\n<br />local_packages is then used to render datagrid, and add appropriate actions.\r\n<br />Note: If program cannot reach packages.json, TaskDialog warns user, and dialog is closed.\r\n<br />UI:\r\n<br />- Use WPF\r\n<br />- Simple white window, with full-size data-grid as described above\r\n<br />- Future Feature: Add button to manually install package by browsing to .zip file (version 2.0)"},"comment":{"url":"https://api.github.com/repos/eirannejad/pyRevit/issues/comments/243179752","html_url":"https://github.com/eirannejad/pyRevit/issues/119#issuecomment-243179752","issue_url":"https://api.github.com/repos/eirannejad/pyRevit/issues/119","id":243179752,"user":{"login":"eirannejad","id":8197916,"avatar_url":"https://avatars.githubusercontent.com/u/8197916?v=3","gravatar_id":"","url":"https://api.github.com/users/eirannejad","html_url":"https://github.com/eirannejad","followers_url":"https://api.github.com/users/eirannejad/followers","following_url":"https://api.github.com/users/eirannejad/following{/other_user}","gists_url":"https://api.github.com/users/eirannejad/gists{/gist_id}","starred_url":"https://api.github.com/users/eirannejad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eirannejad/subscriptions","organizations_url":"https://api.github.com/users/eirannejad/orgs","repos_url":"https://api.github.com/users/eirannejad/repos","events_url":"https://api.github.com/users/eirannejad/events{/privacy}","received_events_url":"https://api.github.com/users/eirannejad/received_events","type":"User","site_admin":false},"created_at":"2016-08-29T16:41:21Z","updated_at":"2016-08-29T16:41:21Z","body":"I get an error. The portable git is installed in `__git__` folder.\n\n[image: Inline images 2]\n[image: Inline images 1]\n\nOn 27 August 2016 at 15:04, Gui Talarico <notifications@github.com> wrote:\n\n> Reopened #119 <https://github.com/eirannejad/pyRevit/issues/119>.\n>\n> —\n> You are receiving this because you were mentioned.\n> Reply to this email directly, view it on GitHub\n> <https://github.com/eirannejad/pyRevit/issues/119#event-769840086>, or mute\n> the thread\n> <https://github.com/notifications/unsubscribe-auth/AH0XHCs47L2f8UtS6gKQW2Hp7aXmtCLMks5qkLSKgaJpZM4JlqBV>\n> .\n>\n"}}
{"actor":{"display_login":"eirannejad"}}