{"action":"created","issue":{"url":"https://api.github.com/repos/getavalon/core/issues/303","repository_url":"https://api.github.com/repos/getavalon/core","labels_url":"https://api.github.com/repos/getavalon/core/issues/303/labels{/name}","comments_url":"https://api.github.com/repos/getavalon/core/issues/303/comments","events_url":"https://api.github.com/repos/getavalon/core/issues/303/events","html_url":"https://github.com/getavalon/core/issues/303","id":277305916,"number":303,"title":"Implement Application discovery and launch in core","user":{"login":"BigRoy","id":2439881,"avatar_url":"https://avatars0.githubusercontent.com/u/2439881?v=4","gravatar_id":"","url":"https://api.github.com/users/BigRoy","html_url":"https://github.com/BigRoy","followers_url":"https://api.github.com/users/BigRoy/followers","following_url":"https://api.github.com/users/BigRoy/following{/other_user}","gists_url":"https://api.github.com/users/BigRoy/gists{/gist_id}","starred_url":"https://api.github.com/users/BigRoy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BigRoy/subscriptions","organizations_url":"https://api.github.com/users/BigRoy/orgs","repos_url":"https://api.github.com/users/BigRoy/repos","events_url":"https://api.github.com/users/BigRoy/events{/privacy}","received_events_url":"https://api.github.com/users/BigRoy/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-11-28T09:03:30Z","updated_at":"2017-11-29T14:05:37Z","closed_at":null,"author_association":"COLLABORATOR","body":"# Issue\r\n\r\nCurrently the [Launcher](https://github.com/getavalon/launcher) allows to launch applications within the context of a project with its completely contained logic - this should be moved to the Avalon core where applications should be able to be listed, initialized and launched.\r\n\r\nThe Launcher currently uses `.toml` files to describe applications as described here: https://getavalon.github.io/2.0/reference/#project-executable-api\r\n\r\nThe api in core would return Application classes that can run or get triggered within a specific Session, e.g. like Maya.\r\n\r\n---\r\n\r\nA proposed api by @mottosso can be found [here](https://gitter.im/getavalon/Lobby?at=5a1c435aba39a53f1aee6d7b)\r\n\r\n```python\r\nfrom avalon import api\r\n\r\nfor app in api.discover(api.Application):\r\n  print(app.name)\r\n```\r\n\r\nOther references:\r\n\r\n- [ftrack actions](https://www.ftrack.com/actions) and [frack actions code sample](https://help.ftrack.com/developing-with-ftrack/key-concepts/actions?_ga=2.112482244.1554793833.1511857967-729796876.1487087569)\r\n- [shotgun actions](https://support.shotgunsoftware.com/hc/en-us/articles/115000067513-Integrations-Developer-Guide) and [shotgun maya actions code](https://github.com/shotgunsoftware/tk-multi-loader2/blob/master/hooks/tk-maya_actions.py)\r\n\r\n---\r\n\r\n### Use cases\r\n\r\nSome of my use cases:\r\n\r\n- Launch maya for a given task (similar to what launcher does now)\r\n- Initialize the application directory for many tasks (through code) without launching the application, e.g. set up many Maya folders.\r\n- Launch project manager or other apps that are not necessarily inside asset or task; e.g. a project manager could create a new project that does not yet have any assets/tasks.\r\n- List what applications I can run in my currently active environment or session; e.g. in a project outside of silo/asset/task, what Application/actions can I run?\r\n\r\nEventually be able to list the currently available Applications (or Actions?) in a current context, similar to ftrack, shotgun or even the current launcher. Here's a visual from ftrack:\r\n\r\n![](https://files.gitter.im/getavalon/Lobby/zIJ3/Capture.PNG)"},"comment":{"url":"https://api.github.com/repos/getavalon/core/issues/comments/347869842","html_url":"https://github.com/getavalon/core/issues/303#issuecomment-347869842","issue_url":"https://api.github.com/repos/getavalon/core/issues/303","id":347869842,"user":{"login":"BigRoy","id":2439881,"avatar_url":"https://avatars0.githubusercontent.com/u/2439881?v=4","gravatar_id":"","url":"https://api.github.com/users/BigRoy","html_url":"https://github.com/BigRoy","followers_url":"https://api.github.com/users/BigRoy/followers","following_url":"https://api.github.com/users/BigRoy/following{/other_user}","gists_url":"https://api.github.com/users/BigRoy/gists{/gist_id}","starred_url":"https://api.github.com/users/BigRoy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BigRoy/subscriptions","organizations_url":"https://api.github.com/users/BigRoy/orgs","repos_url":"https://api.github.com/users/BigRoy/repos","events_url":"https://api.github.com/users/BigRoy/events{/privacy}","received_events_url":"https://api.github.com/users/BigRoy/received_events","type":"User","site_admin":false},"created_at":"2017-11-29T14:05:37Z","updated_at":"2017-11-29T14:05:37Z","author_association":"COLLABORATOR","body":"> If you are using someone else's Maya action (maybe this is not the intend, then just ignore this), and you want to append an extra flag to the launch without duplicate/modify the action, how would you do that?\r\n\r\nAh, yes - purely for inheritance. I agree - this would help towards that design. 👍 Thanks."}}
{"actor":{"display_login":"BigRoy"}}