{"action":"closed","number":128,"pull_request":{"url":"https://api.github.com/repos/baranidlo/bench/pulls/128","id":182306538,"html_url":"https://github.com/baranidlo/bench/pull/128","diff_url":"https://github.com/baranidlo/bench/pull/128.diff","patch_url":"https://github.com/baranidlo/bench/pull/128.patch","issue_url":"https://api.github.com/repos/baranidlo/bench/issues/128","number":128,"state":"closed","locked":false,"title":"[Parsing] Major updates to list parsing","user":{"login":"Sleet01","id":22018319,"avatar_url":"https://avatars1.githubusercontent.com/u/22018319?v=4","gravatar_id":"","url":"https://api.github.com/users/Sleet01","html_url":"https://github.com/Sleet01","followers_url":"https://api.github.com/users/Sleet01/followers","following_url":"https://api.github.com/users/Sleet01/following{/other_user}","gists_url":"https://api.github.com/users/Sleet01/gists{/gist_id}","starred_url":"https://api.github.com/users/Sleet01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sleet01/subscriptions","organizations_url":"https://api.github.com/users/Sleet01/orgs","repos_url":"https://api.github.com/users/Sleet01/repos","events_url":"https://api.github.com/users/Sleet01/events{/privacy}","received_events_url":"https://api.github.com/users/Sleet01/received_events","type":"User","site_admin":false},"body":"We were moving further and further away from sync with XWS-spec and the List Juggler human-readable format, causing issues importing and parsing lists.\r\n\r\nAt the same time, the List Juggler human-readable format had to be updated to make certain pilot/faction/ship combinations explicit - and xws-bench couldn't even begin to parse this new list type without a major overhaul.\r\n\r\nI implemented a new list storage data type, the TeamList (see https://github.com/baranidlo/bench/wiki/Proposed-new-object-type:-TeamList for info)\r\nThis data type contains a bunch of logic that had previously been spread out or placed in Team, which wasn't very modular.\r\nThe TeamList now stores:\r\n1) a JSON object (the basis for all list storage going forward)\r\n2) the list cost\r\n3) the list's ship information in abbreviated ID + Upgrade ID array format (SimpleUnit type)\r\n4) the List Juggler and HTML-enhanced List Juggler strings used for display (as well as translated versions of both)\r\n\r\nThis will eradicate a large number of redundant conversions between plain text and JSON that Team.js was doing, as well as normalizing tournament list loading and localStorage loading.\r\nIt also forces us to stay current with the xws-spec JSON file naming conventions going forward.\r\n\r\nThe new functionality works with:\r\nLoading tournament lists (JSON->JSON)\r\nLoading old xws-bench saved lists (old Juggler->JSON) // Saves lists back in new format automatically\r\nLoading new saved lists (JSON->JSON)\r\nImporting old Juggler lists via squad1 and squad2 text areas (old Juggler->JSON)\r\nImporting new Juggler lists (new Juggler->JSON)\r\nImporting current JSON list text (JSON->JSON)\r\n\r\nUnfortunately I only just got this all working, so the transition from Team.js-based list handling to TeamList.js-based handling is A) still in progress (old code still exists), B) somewhat brittle, and C) mostly untested.  I ran through a few lists and edge cases, but I'm sure there are some pilots and upgrades that I forgot about.  Please test heavily and file issues for me to fix.\r\n\r\nI also fixed a couple of bugs along the way","created_at":"2018-04-17T21:40:44Z","updated_at":"2018-04-23T17:25:44Z","closed_at":"2018-04-23T17:25:44Z","merged_at":"2018-04-23T17:25:44Z","merge_commit_sha":"a9e4c8d784b5db2afe03fafe57f14e1dc71d7a4a","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/baranidlo/bench/pulls/128/commits","review_comments_url":"https://api.github.com/repos/baranidlo/bench/pulls/128/comments","review_comment_url":"https://api.github.com/repos/baranidlo/bench/pulls/comments{/number}","comments_url":"https://api.github.com/repos/baranidlo/bench/issues/128/comments","statuses_url":"https://api.github.com/repos/baranidlo/bench/statuses/51b8fb317c10de64846fc2705edcad9aced4b0bb","head":{"label":"Sleet01:devel","ref":"devel","sha":"51b8fb317c10de64846fc2705edcad9aced4b0bb","user":{"login":"Sleet01","id":22018319,"avatar_url":"https://avatars1.githubusercontent.com/u/22018319?v=4","gravatar_id":"","url":"https://api.github.com/users/Sleet01","html_url":"https://github.com/Sleet01","followers_url":"https://api.github.com/users/Sleet01/followers","following_url":"https://api.github.com/users/Sleet01/following{/other_user}","gists_url":"https://api.github.com/users/Sleet01/gists{/gist_id}","starred_url":"https://api.github.com/users/Sleet01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sleet01/subscriptions","organizations_url":"https://api.github.com/users/Sleet01/orgs","repos_url":"https://api.github.com/users/Sleet01/repos","events_url":"https://api.github.com/users/Sleet01/events{/privacy}","received_events_url":"https://api.github.com/users/Sleet01/received_events","type":"User","site_admin":false},"repo":{"id":115782395,"name":"bench","full_name":"Sleet01/bench","owner":{"login":"Sleet01","id":22018319,"avatar_url":"https://avatars1.githubusercontent.com/u/22018319?v=4","gravatar_id":"","url":"https://api.github.com/users/Sleet01","html_url":"https://github.com/Sleet01","followers_url":"https://api.github.com/users/Sleet01/followers","following_url":"https://api.github.com/users/Sleet01/following{/other_user}","gists_url":"https://api.github.com/users/Sleet01/gists{/gist_id}","starred_url":"https://api.github.com/users/Sleet01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sleet01/subscriptions","organizations_url":"https://api.github.com/users/Sleet01/orgs","repos_url":"https://api.github.com/users/Sleet01/repos","events_url":"https://api.github.com/users/Sleet01/events{/privacy}","received_events_url":"https://api.github.com/users/Sleet01/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Sleet01/bench","description":"Source of the Squad Benchmark webapp","fork":true,"url":"https://api.github.com/repos/Sleet01/bench","forks_url":"https://api.github.com/repos/Sleet01/bench/forks","keys_url":"https://api.github.com/repos/Sleet01/bench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Sleet01/bench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Sleet01/bench/teams","hooks_url":"https://api.github.com/repos/Sleet01/bench/hooks","issue_events_url":"https://api.github.com/repos/Sleet01/bench/issues/events{/number}","events_url":"https://api.github.com/repos/Sleet01/bench/events","assignees_url":"https://api.github.com/repos/Sleet01/bench/assignees{/user}","branches_url":"https://api.github.com/repos/Sleet01/bench/branches{/branch}","tags_url":"https://api.github.com/repos/Sleet01/bench/tags","blobs_url":"https://api.github.com/repos/Sleet01/bench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Sleet01/bench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Sleet01/bench/git/refs{/sha}","trees_url":"https://api.github.com/repos/Sleet01/bench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Sleet01/bench/statuses/{sha}","languages_url":"https://api.github.com/repos/Sleet01/bench/languages","stargazers_url":"https://api.github.com/repos/Sleet01/bench/stargazers","contributors_url":"https://api.github.com/repos/Sleet01/bench/contributors","subscribers_url":"https://api.github.com/repos/Sleet01/bench/subscribers","subscription_url":"https://api.github.com/repos/Sleet01/bench/subscription","commits_url":"https://api.github.com/repos/Sleet01/bench/commits{/sha}","git_commits_url":"https://api.github.com/repos/Sleet01/bench/git/commits{/sha}","comments_url":"https://api.github.com/repos/Sleet01/bench/comments{/number}","issue_comment_url":"https://api.github.com/repos/Sleet01/bench/issues/comments{/number}","contents_url":"https://api.github.com/repos/Sleet01/bench/contents/{+path}","compare_url":"https://api.github.com/repos/Sleet01/bench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Sleet01/bench/merges","archive_url":"https://api.github.com/repos/Sleet01/bench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Sleet01/bench/downloads","issues_url":"https://api.github.com/repos/Sleet01/bench/issues{/number}","pulls_url":"https://api.github.com/repos/Sleet01/bench/pulls{/number}","milestones_url":"https://api.github.com/repos/Sleet01/bench/milestones{/number}","notifications_url":"https://api.github.com/repos/Sleet01/bench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Sleet01/bench/labels{/name}","releases_url":"https://api.github.com/repos/Sleet01/bench/releases{/id}","deployments_url":"https://api.github.com/repos/Sleet01/bench/deployments","created_at":"2017-12-30T07:52:03Z","updated_at":"2017-12-26T15:49:50Z","pushed_at":"2018-04-23T07:04:29Z","git_url":"git://github.com/Sleet01/bench.git","ssh_url":"git@github.com:Sleet01/bench.git","clone_url":"https://github.com/Sleet01/bench.git","svn_url":"https://github.com/Sleet01/bench","homepage":"","size":57232,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"baranidlo:devel","ref":"devel","sha":"4b4e8885d4ae93c49cc7247693842418843ff5a5","user":{"login":"baranidlo","id":6356856,"avatar_url":"https://avatars3.githubusercontent.com/u/6356856?v=4","gravatar_id":"","url":"https://api.github.com/users/baranidlo","html_url":"https://github.com/baranidlo","followers_url":"https://api.github.com/users/baranidlo/followers","following_url":"https://api.github.com/users/baranidlo/following{/other_user}","gists_url":"https://api.github.com/users/baranidlo/gists{/gist_id}","starred_url":"https://api.github.com/users/baranidlo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/baranidlo/subscriptions","organizations_url":"https://api.github.com/users/baranidlo/orgs","repos_url":"https://api.github.com/users/baranidlo/repos","events_url":"https://api.github.com/users/baranidlo/events{/privacy}","received_events_url":"https://api.github.com/users/baranidlo/received_events","type":"User","site_admin":false},"repo":{"id":115356669,"name":"bench","full_name":"baranidlo/bench","owner":{"login":"baranidlo","id":6356856,"avatar_url":"https://avatars3.githubusercontent.com/u/6356856?v=4","gravatar_id":"","url":"https://api.github.com/users/baranidlo","html_url":"https://github.com/baranidlo","followers_url":"https://api.github.com/users/baranidlo/followers","following_url":"https://api.github.com/users/baranidlo/following{/other_user}","gists_url":"https://api.github.com/users/baranidlo/gists{/gist_id}","starred_url":"https://api.github.com/users/baranidlo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/baranidlo/subscriptions","organizations_url":"https://api.github.com/users/baranidlo/orgs","repos_url":"https://api.github.com/users/baranidlo/repos","events_url":"https://api.github.com/users/baranidlo/events{/privacy}","received_events_url":"https://api.github.com/users/baranidlo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/baranidlo/bench","description":"Source of the Squad Benchmark webapp","fork":true,"url":"https://api.github.com/repos/baranidlo/bench","forks_url":"https://api.github.com/repos/baranidlo/bench/forks","keys_url":"https://api.github.com/repos/baranidlo/bench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/baranidlo/bench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/baranidlo/bench/teams","hooks_url":"https://api.github.com/repos/baranidlo/bench/hooks","issue_events_url":"https://api.github.com/repos/baranidlo/bench/issues/events{/number}","events_url":"https://api.github.com/repos/baranidlo/bench/events","assignees_url":"https://api.github.com/repos/baranidlo/bench/assignees{/user}","branches_url":"https://api.github.com/repos/baranidlo/bench/branches{/branch}","tags_url":"https://api.github.com/repos/baranidlo/bench/tags","blobs_url":"https://api.github.com/repos/baranidlo/bench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/baranidlo/bench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/baranidlo/bench/git/refs{/sha}","trees_url":"https://api.github.com/repos/baranidlo/bench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/baranidlo/bench/statuses/{sha}","languages_url":"https://api.github.com/repos/baranidlo/bench/languages","stargazers_url":"https://api.github.com/repos/baranidlo/bench/stargazers","contributors_url":"https://api.github.com/repos/baranidlo/bench/contributors","subscribers_url":"https://api.github.com/repos/baranidlo/bench/subscribers","subscription_url":"https://api.github.com/repos/baranidlo/bench/subscription","commits_url":"https://api.github.com/repos/baranidlo/bench/commits{/sha}","git_commits_url":"https://api.github.com/repos/baranidlo/bench/git/commits{/sha}","comments_url":"https://api.github.com/repos/baranidlo/bench/comments{/number}","issue_comment_url":"https://api.github.com/repos/baranidlo/bench/issues/comments{/number}","contents_url":"https://api.github.com/repos/baranidlo/bench/contents/{+path}","compare_url":"https://api.github.com/repos/baranidlo/bench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/baranidlo/bench/merges","archive_url":"https://api.github.com/repos/baranidlo/bench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/baranidlo/bench/downloads","issues_url":"https://api.github.com/repos/baranidlo/bench/issues{/number}","pulls_url":"https://api.github.com/repos/baranidlo/bench/pulls{/number}","milestones_url":"https://api.github.com/repos/baranidlo/bench/milestones{/number}","notifications_url":"https://api.github.com/repos/baranidlo/bench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/baranidlo/bench/labels{/name}","releases_url":"https://api.github.com/repos/baranidlo/bench/releases{/id}","deployments_url":"https://api.github.com/repos/baranidlo/bench/deployments","created_at":"2017-12-25T18:36:48Z","updated_at":"2018-01-22T01:52:07Z","pushed_at":"2018-04-23T17:25:44Z","git_url":"git://github.com/baranidlo/bench.git","ssh_url":"git@github.com:baranidlo/bench.git","clone_url":"https://github.com/baranidlo/bench.git","svn_url":"https://github.com/baranidlo/bench","homepage":"","size":57877,"stargazers_count":2,"watchers_count":2,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":90,"license":null,"forks":4,"open_issues":90,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/baranidlo/bench/pulls/128"},"html":{"href":"https://github.com/baranidlo/bench/pull/128"},"issue":{"href":"https://api.github.com/repos/baranidlo/bench/issues/128"},"comments":{"href":"https://api.github.com/repos/baranidlo/bench/issues/128/comments"},"review_comments":{"href":"https://api.github.com/repos/baranidlo/bench/pulls/128/comments"},"review_comment":{"href":"https://api.github.com/repos/baranidlo/bench/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/baranidlo/bench/pulls/128/commits"},"statuses":{"href":"https://api.github.com/repos/baranidlo/bench/statuses/51b8fb317c10de64846fc2705edcad9aced4b0bb"}},"author_association":"NONE","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"baranidlo","id":6356856,"avatar_url":"https://avatars3.githubusercontent.com/u/6356856?v=4","gravatar_id":"","url":"https://api.github.com/users/baranidlo","html_url":"https://github.com/baranidlo","followers_url":"https://api.github.com/users/baranidlo/followers","following_url":"https://api.github.com/users/baranidlo/following{/other_user}","gists_url":"https://api.github.com/users/baranidlo/gists{/gist_id}","starred_url":"https://api.github.com/users/baranidlo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/baranidlo/subscriptions","organizations_url":"https://api.github.com/users/baranidlo/orgs","repos_url":"https://api.github.com/users/baranidlo/repos","events_url":"https://api.github.com/users/baranidlo/events{/privacy}","received_events_url":"https://api.github.com/users/baranidlo/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":30,"additions":1347,"deletions":587,"changed_files":15}}
{"actor":{"display_login":"baranidlo"}}