{"action":"created","comment":{"url":"https://api.github.com/repos/mlflow/mlflow/pulls/comments/214752399","pull_request_review_id":151870261,"id":214752399,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNDc1MjM5OQ==","diff_hunk":"@@ -272,3 +313,15 @@ const shellEscape = (str) => {\n   return str;\n };\n \n+const styles = {","path":"mlflow/server/js/src/components/RunView.js","position":137,"original_position":137,"commit_id":"78d9b7aecaae94c35649018178fbf38e7704ddfa","original_commit_id":"78d9b7aecaae94c35649018178fbf38e7704ddfa","user":{"login":"mateiz","id":228859,"node_id":"MDQ6VXNlcjIyODg1OQ==","avatar_url":"https://avatars0.githubusercontent.com/u/228859?v=4","gravatar_id":"","url":"https://api.github.com/users/mateiz","html_url":"https://github.com/mateiz","followers_url":"https://api.github.com/users/mateiz/followers","following_url":"https://api.github.com/users/mateiz/following{/other_user}","gists_url":"https://api.github.com/users/mateiz/gists{/gist_id}","starred_url":"https://api.github.com/users/mateiz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mateiz/subscriptions","organizations_url":"https://api.github.com/users/mateiz/orgs","repos_url":"https://api.github.com/users/mateiz/repos","events_url":"https://api.github.com/users/mateiz/events{/privacy}","received_events_url":"https://api.github.com/users/mateiz/received_events","type":"User","site_admin":false},"body":"Put the styles in the CSS if possible, not here, since it's confusing to split them across two types of files.","created_at":"2018-09-03T20:22:50Z","updated_at":"2018-09-03T20:28:56Z","html_url":"https://github.com/mlflow/mlflow/pull/382#discussion_r214752399","pull_request_url":"https://api.github.com/repos/mlflow/mlflow/pulls/382","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/mlflow/mlflow/pulls/comments/214752399"},"html":{"href":"https://github.com/mlflow/mlflow/pull/382#discussion_r214752399"},"pull_request":{"href":"https://api.github.com/repos/mlflow/mlflow/pulls/382"}}},"pull_request":{"url":"https://api.github.com/repos/mlflow/mlflow/pulls/382","id":211189986,"node_id":"MDExOlB1bGxSZXF1ZXN0MjExMTg5OTg2","html_url":"https://github.com/mlflow/mlflow/pull/382","diff_url":"https://github.com/mlflow/mlflow/pull/382.diff","patch_url":"https://github.com/mlflow/mlflow/pull/382.patch","issue_url":"https://api.github.com/repos/mlflow/mlflow/issues/382","number":382,"state":"open","locked":false,"title":"Add ability to edit run names in the UI","user":{"login":"smurching","id":2358483,"node_id":"MDQ6VXNlcjIzNTg0ODM=","avatar_url":"https://avatars1.githubusercontent.com/u/2358483?v=4","gravatar_id":"","url":"https://api.github.com/users/smurching","html_url":"https://github.com/smurching","followers_url":"https://api.github.com/users/smurching/followers","following_url":"https://api.github.com/users/smurching/following{/other_user}","gists_url":"https://api.github.com/users/smurching/gists{/gist_id}","starred_url":"https://api.github.com/users/smurching/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smurching/subscriptions","organizations_url":"https://api.github.com/users/smurching/orgs","repos_url":"https://api.github.com/users/smurching/repos","events_url":"https://api.github.com/users/smurching/events{/privacy}","received_events_url":"https://api.github.com/users/smurching/received_events","type":"User","site_admin":false},"body":"Adds the ability to edit run names in the UI, based on mocks from @gioa.\r\n\r\n## Screenshots\r\n![screen shot 2018-08-30 at 12 44 46 pm](https://user-images.githubusercontent.com/2358483/44875261-872d7880-ac52-11e8-91df-8b31d2cdb044.png)\r\n![screen shot 2018-08-30 at 12 44 30 pm](https://user-images.githubusercontent.com/2358483/44875260-8694e200-ac52-11e8-80e8-8d61fc9f0a7f.png)\r\n\r\n## Implementation\r\nPython API changes:\r\n* Specify run name by setting an \"_MLFLOW_RUN_NAME\" tag when creating a run\r\n* Pass an empty string for the `run_name` field of `RunInfo`, to prepare for deprecating the `run_name` field.\r\n\r\nJS changes:\r\n* Adds action / reducer logic for setting tags\r\n* Adds a `RenameRunFormView` containing the rename-run form\r\n* Adds a `RenameRunModal` that renders a `RenameRunFormView`, passing down the callbacks needed to submit data to the server / close the parent modal on form submission\r\n* Adds a dropdown menu in `RunView` containing a \"Rename Run\" option that, when clicked, renders a `RenameRunModal`. Other items (e.g. \"Delete Run\") could be added to the menu moving forward.\r\n* Updates to `BreadcrumbTitle` & `CompareRunView` to use the new tag for rendering the run name\r\n\r\n## Testing\r\nManually verified the following behaviors:\r\n* Renaming runs works in the typical case\r\n* Users can't close the rename dialog while the form is submitting (simulated by adding a sleep to the server)\r\n* Failed rename-run form submissions result in an alert --> redirect to the parent experiment page\r\n\r\nTODO: Probably need to change the Java API in the same way as the Python one. Also, IMO the relationship between RenameRunModal & RenameRunFormView is a bit complicated (the form performs lots of operations that affect the modal), would appreciate any suggestions towards simplifying that.","created_at":"2018-08-27T18:25:40Z","updated_at":"2018-09-03T20:28:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8ae85115bf94d0d603439f7c8c4c7437ca8d4412","assignee":{"login":"andrewmchen","id":4492809,"node_id":"MDQ6VXNlcjQ0OTI4MDk=","avatar_url":"https://avatars3.githubusercontent.com/u/4492809?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewmchen","html_url":"https://github.com/andrewmchen","followers_url":"https://api.github.com/users/andrewmchen/followers","following_url":"https://api.github.com/users/andrewmchen/following{/other_user}","gists_url":"https://api.github.com/users/andrewmchen/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewmchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewmchen/subscriptions","organizations_url":"https://api.github.com/users/andrewmchen/orgs","repos_url":"https://api.github.com/users/andrewmchen/repos","events_url":"https://api.github.com/users/andrewmchen/events{/privacy}","received_events_url":"https://api.github.com/users/andrewmchen/received_events","type":"User","site_admin":false},"assignees":[{"login":"andrewmchen","id":4492809,"node_id":"MDQ6VXNlcjQ0OTI4MDk=","avatar_url":"https://avatars3.githubusercontent.com/u/4492809?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewmchen","html_url":"https://github.com/andrewmchen","followers_url":"https://api.github.com/users/andrewmchen/followers","following_url":"https://api.github.com/users/andrewmchen/following{/other_user}","gists_url":"https://api.github.com/users/andrewmchen/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewmchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewmchen/subscriptions","organizations_url":"https://api.github.com/users/andrewmchen/orgs","repos_url":"https://api.github.com/users/andrewmchen/repos","events_url":"https://api.github.com/users/andrewmchen/events{/privacy}","received_events_url":"https://api.github.com/users/andrewmchen/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mlflow/mlflow/pulls/382/commits","review_comments_url":"https://api.github.com/repos/mlflow/mlflow/pulls/382/comments","review_comment_url":"https://api.github.com/repos/mlflow/mlflow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mlflow/mlflow/issues/382/comments","statuses_url":"https://api.github.com/repos/mlflow/mlflow/statuses/78d9b7aecaae94c35649018178fbf38e7704ddfa","head":{"label":"smurching:run-name-updates","ref":"run-name-updates","sha":"78d9b7aecaae94c35649018178fbf38e7704ddfa","user":{"login":"smurching","id":2358483,"node_id":"MDQ6VXNlcjIzNTg0ODM=","avatar_url":"https://avatars1.githubusercontent.com/u/2358483?v=4","gravatar_id":"","url":"https://api.github.com/users/smurching","html_url":"https://github.com/smurching","followers_url":"https://api.github.com/users/smurching/followers","following_url":"https://api.github.com/users/smurching/following{/other_user}","gists_url":"https://api.github.com/users/smurching/gists{/gist_id}","starred_url":"https://api.github.com/users/smurching/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smurching/subscriptions","organizations_url":"https://api.github.com/users/smurching/orgs","repos_url":"https://api.github.com/users/smurching/repos","events_url":"https://api.github.com/users/smurching/events{/privacy}","received_events_url":"https://api.github.com/users/smurching/received_events","type":"User","site_admin":false},"repo":{"id":136405291,"node_id":"MDEwOlJlcG9zaXRvcnkxMzY0MDUyOTE=","name":"mlflow","full_name":"smurching/mlflow","owner":{"login":"smurching","id":2358483,"node_id":"MDQ6VXNlcjIzNTg0ODM=","avatar_url":"https://avatars1.githubusercontent.com/u/2358483?v=4","gravatar_id":"","url":"https://api.github.com/users/smurching","html_url":"https://github.com/smurching","followers_url":"https://api.github.com/users/smurching/followers","following_url":"https://api.github.com/users/smurching/following{/other_user}","gists_url":"https://api.github.com/users/smurching/gists{/gist_id}","starred_url":"https://api.github.com/users/smurching/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smurching/subscriptions","organizations_url":"https://api.github.com/users/smurching/orgs","repos_url":"https://api.github.com/users/smurching/repos","events_url":"https://api.github.com/users/smurching/events{/privacy}","received_events_url":"https://api.github.com/users/smurching/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/smurching/mlflow","description":"Open source platform for the complete machine learning lifecycle","fork":true,"url":"https://api.github.com/repos/smurching/mlflow","forks_url":"https://api.github.com/repos/smurching/mlflow/forks","keys_url":"https://api.github.com/repos/smurching/mlflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/smurching/mlflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/smurching/mlflow/teams","hooks_url":"https://api.github.com/repos/smurching/mlflow/hooks","issue_events_url":"https://api.github.com/repos/smurching/mlflow/issues/events{/number}","events_url":"https://api.github.com/repos/smurching/mlflow/events","assignees_url":"https://api.github.com/repos/smurching/mlflow/assignees{/user}","branches_url":"https://api.github.com/repos/smurching/mlflow/branches{/branch}","tags_url":"https://api.github.com/repos/smurching/mlflow/tags","blobs_url":"https://api.github.com/repos/smurching/mlflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/smurching/mlflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/smurching/mlflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/smurching/mlflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/smurching/mlflow/statuses/{sha}","languages_url":"https://api.github.com/repos/smurching/mlflow/languages","stargazers_url":"https://api.github.com/repos/smurching/mlflow/stargazers","contributors_url":"https://api.github.com/repos/smurching/mlflow/contributors","subscribers_url":"https://api.github.com/repos/smurching/mlflow/subscribers","subscription_url":"https://api.github.com/repos/smurching/mlflow/subscription","commits_url":"https://api.github.com/repos/smurching/mlflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/smurching/mlflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/smurching/mlflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/smurching/mlflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/smurching/mlflow/contents/{+path}","compare_url":"https://api.github.com/repos/smurching/mlflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/smurching/mlflow/merges","archive_url":"https://api.github.com/repos/smurching/mlflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/smurching/mlflow/downloads","issues_url":"https://api.github.com/repos/smurching/mlflow/issues{/number}","pulls_url":"https://api.github.com/repos/smurching/mlflow/pulls{/number}","milestones_url":"https://api.github.com/repos/smurching/mlflow/milestones{/number}","notifications_url":"https://api.github.com/repos/smurching/mlflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/smurching/mlflow/labels{/name}","releases_url":"https://api.github.com/repos/smurching/mlflow/releases{/id}","deployments_url":"https://api.github.com/repos/smurching/mlflow/deployments","created_at":"2018-06-07T01:31:16Z","updated_at":"2018-07-30T20:18:52Z","pushed_at":"2018-08-31T23:01:19Z","git_url":"git://github.com/smurching/mlflow.git","ssh_url":"git@github.com:smurching/mlflow.git","clone_url":"https://github.com/smurching/mlflow.git","svn_url":"https://github.com/smurching/mlflow","homepage":"https://mlflow.org","size":4867,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mlflow:master","ref":"master","sha":"a3b2605a6525edc36d17e15794bd51914952a946","user":{"login":"mlflow","id":39938107,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5OTM4MTA3","avatar_url":"https://avatars3.githubusercontent.com/u/39938107?v=4","gravatar_id":"","url":"https://api.github.com/users/mlflow","html_url":"https://github.com/mlflow","followers_url":"https://api.github.com/users/mlflow/followers","following_url":"https://api.github.com/users/mlflow/following{/other_user}","gists_url":"https://api.github.com/users/mlflow/gists{/gist_id}","starred_url":"https://api.github.com/users/mlflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlflow/subscriptions","organizations_url":"https://api.github.com/users/mlflow/orgs","repos_url":"https://api.github.com/users/mlflow/repos","events_url":"https://api.github.com/users/mlflow/events{/privacy}","received_events_url":"https://api.github.com/users/mlflow/received_events","type":"Organization","site_admin":false},"repo":{"id":136202695,"node_id":"MDEwOlJlcG9zaXRvcnkxMzYyMDI2OTU=","name":"mlflow","full_name":"mlflow/mlflow","owner":{"login":"mlflow","id":39938107,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5OTM4MTA3","avatar_url":"https://avatars3.githubusercontent.com/u/39938107?v=4","gravatar_id":"","url":"https://api.github.com/users/mlflow","html_url":"https://github.com/mlflow","followers_url":"https://api.github.com/users/mlflow/followers","following_url":"https://api.github.com/users/mlflow/following{/other_user}","gists_url":"https://api.github.com/users/mlflow/gists{/gist_id}","starred_url":"https://api.github.com/users/mlflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mlflow/subscriptions","organizations_url":"https://api.github.com/users/mlflow/orgs","repos_url":"https://api.github.com/users/mlflow/repos","events_url":"https://api.github.com/users/mlflow/events{/privacy}","received_events_url":"https://api.github.com/users/mlflow/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mlflow/mlflow","description":"Open source platform for the machine learning lifecycle","fork":false,"url":"https://api.github.com/repos/mlflow/mlflow","forks_url":"https://api.github.com/repos/mlflow/mlflow/forks","keys_url":"https://api.github.com/repos/mlflow/mlflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mlflow/mlflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mlflow/mlflow/teams","hooks_url":"https://api.github.com/repos/mlflow/mlflow/hooks","issue_events_url":"https://api.github.com/repos/mlflow/mlflow/issues/events{/number}","events_url":"https://api.github.com/repos/mlflow/mlflow/events","assignees_url":"https://api.github.com/repos/mlflow/mlflow/assignees{/user}","branches_url":"https://api.github.com/repos/mlflow/mlflow/branches{/branch}","tags_url":"https://api.github.com/repos/mlflow/mlflow/tags","blobs_url":"https://api.github.com/repos/mlflow/mlflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mlflow/mlflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mlflow/mlflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/mlflow/mlflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mlflow/mlflow/statuses/{sha}","languages_url":"https://api.github.com/repos/mlflow/mlflow/languages","stargazers_url":"https://api.github.com/repos/mlflow/mlflow/stargazers","contributors_url":"https://api.github.com/repos/mlflow/mlflow/contributors","subscribers_url":"https://api.github.com/repos/mlflow/mlflow/subscribers","subscription_url":"https://api.github.com/repos/mlflow/mlflow/subscription","commits_url":"https://api.github.com/repos/mlflow/mlflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/mlflow/mlflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/mlflow/mlflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/mlflow/mlflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/mlflow/mlflow/contents/{+path}","compare_url":"https://api.github.com/repos/mlflow/mlflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mlflow/mlflow/merges","archive_url":"https://api.github.com/repos/mlflow/mlflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mlflow/mlflow/downloads","issues_url":"https://api.github.com/repos/mlflow/mlflow/issues{/number}","pulls_url":"https://api.github.com/repos/mlflow/mlflow/pulls{/number}","milestones_url":"https://api.github.com/repos/mlflow/mlflow/milestones{/number}","notifications_url":"https://api.github.com/repos/mlflow/mlflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mlflow/mlflow/labels{/name}","releases_url":"https://api.github.com/repos/mlflow/mlflow/releases{/id}","deployments_url":"https://api.github.com/repos/mlflow/mlflow/deployments","created_at":"2018-06-05T16:05:58Z","updated_at":"2018-09-03T20:00:37Z","pushed_at":"2018-09-03T20:00:32Z","git_url":"git://github.com/mlflow/mlflow.git","ssh_url":"git@github.com:mlflow/mlflow.git","clone_url":"https://github.com/mlflow/mlflow.git","svn_url":"https://github.com/mlflow/mlflow","homepage":"https://mlflow.org","size":4517,"stargazers_count":2098,"watchers_count":2098,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":324,"mirror_url":null,"archived":false,"open_issues_count":88,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":324,"open_issues":88,"watchers":2098,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mlflow/mlflow/pulls/382"},"html":{"href":"https://github.com/mlflow/mlflow/pull/382"},"issue":{"href":"https://api.github.com/repos/mlflow/mlflow/issues/382"},"comments":{"href":"https://api.github.com/repos/mlflow/mlflow/issues/382/comments"},"review_comments":{"href":"https://api.github.com/repos/mlflow/mlflow/pulls/382/comments"},"review_comment":{"href":"https://api.github.com/repos/mlflow/mlflow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mlflow/mlflow/pulls/382/commits"},"statuses":{"href":"https://api.github.com/repos/mlflow/mlflow/statuses/78d9b7aecaae94c35649018178fbf38e7704ddfa"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mateiz"}}