{"action":"created","comment":{"url":"https://api.github.com/repos/pantsbuild/pex/pulls/comments/188458941","pull_request_review_id":120441993,"id":188458941,"diff_hunk":"@@ -324,18 +340,18 @@ def configure_clp_pex_environment(parser):\n \n   group.add_option(\n       '--platform',\n-      dest='platform',\n+      dest='platforms',\n       default=[],\n       type=str,\n       action='append',\n       help='The platform for which to build the PEX. This option can be passed multiple times '\n-           'to create a multi-platform compatible pex. To build manylinux wheels for specific '\n-           'tags, you can add them to the platform with hyphens like PLATFORM-PYVER-IMPL-ABI, '\n-           'where PLATFORM is either \"manylinux1-x86_64\" or \"manylinux1-i686\", PYVER is a two-'\n-           'digit string representing the python version (e.g., 36), IMPL is the python '\n-           'implementation abbreviation (e.g., cp, pp, jp), and ABI is the ABI tag (e.g., '\n-           'cp36m, cp27mu, abi3, none). For example: manylinux1_x86_64-36-cp-cp36m. '\n-           'Default: current platform.')\n+           'to create a multi-platform pex. To use wheels for specific interpreter/platform tags'\n+           'platform tags, you can append them to the platform with hyphens like: '","path":"pex/bin/pex.py","position":null,"original_position":60,"commit_id":"ba1ab6aaa2c44fd8d11801fe9c43718aabf3adfd","original_commit_id":"ba1ab6aaa2c44fd8d11801fe9c43718aabf3adfd","user":{"login":"kwlzn","id":1883523,"avatar_url":"https://avatars0.githubusercontent.com/u/1883523?v=4","gravatar_id":"","url":"https://api.github.com/users/kwlzn","html_url":"https://github.com/kwlzn","followers_url":"https://api.github.com/users/kwlzn/followers","following_url":"https://api.github.com/users/kwlzn/following{/other_user}","gists_url":"https://api.github.com/users/kwlzn/gists{/gist_id}","starred_url":"https://api.github.com/users/kwlzn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kwlzn/subscriptions","organizations_url":"https://api.github.com/users/kwlzn/orgs","repos_url":"https://api.github.com/users/kwlzn/repos","events_url":"https://api.github.com/users/kwlzn/events{/privacy}","received_events_url":"https://api.github.com/users/kwlzn/received_events","type":"User","site_admin":false},"body":"fixed","created_at":"2018-05-15T22:46:57Z","updated_at":"2018-05-15T22:46:57Z","html_url":"https://github.com/pantsbuild/pex/pull/480#discussion_r188458941","pull_request_url":"https://api.github.com/repos/pantsbuild/pex/pulls/480","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/pantsbuild/pex/pulls/comments/188458941"},"html":{"href":"https://github.com/pantsbuild/pex/pull/480#discussion_r188458941"},"pull_request":{"href":"https://api.github.com/repos/pantsbuild/pex/pulls/480"}},"in_reply_to_id":188403313},"pull_request":{"url":"https://api.github.com/repos/pantsbuild/pex/pulls/480","id":188058942,"html_url":"https://github.com/pantsbuild/pex/pull/480","diff_url":"https://github.com/pantsbuild/pex/pull/480.diff","patch_url":"https://github.com/pantsbuild/pex/pull/480.patch","issue_url":"https://api.github.com/repos/pantsbuild/pex/issues/480","number":480,"state":"open","locked":false,"title":"Complete manylinux support in pex.","user":{"login":"kwlzn","id":1883523,"avatar_url":"https://avatars0.githubusercontent.com/u/1883523?v=4","gravatar_id":"","url":"https://api.github.com/users/kwlzn","html_url":"https://github.com/kwlzn","followers_url":"https://api.github.com/users/kwlzn/followers","following_url":"https://api.github.com/users/kwlzn/following{/other_user}","gists_url":"https://api.github.com/users/kwlzn/gists{/gist_id}","starred_url":"https://api.github.com/users/kwlzn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kwlzn/subscriptions","organizations_url":"https://api.github.com/users/kwlzn/orgs","repos_url":"https://api.github.com/users/kwlzn/repos","events_url":"https://api.github.com/users/kwlzn/events{/privacy}","received_events_url":"https://api.github.com/users/kwlzn/received_events","type":"User","site_admin":false},"body":"This PR includes two parts:\r\n\r\n  1) a squash merge of #316 that implements partial manylinux support and ABI targeting.\r\n  2) a squash merge of a fast-follow retrofit of #399 that completes manylinux support and ABI targeting, fixes all broken tests, adds tests and corrects a few breaking issues.\r\n\r\n_N.B. #316 has already been reviewed, so feel free to review only the second commit in the \"Commits\" view._\r\n\r\nThe second part of this change provides the following:\r\n\r\n  - Puts manylinux support behind a feature flag for operational purposes (with implicit support for manylinux in any linux platform targeting).\r\n  - Carries forward the `Platform` abstraction w/ the notion of the new extended form and adds test coverage.\r\n  - Removes manual `Resolver._identity` construction in favor of `PythonInterpreter.identity` usage.\r\n  - Realigns the extended Platform form to (platform, impl, version, abi) and updates docs.\r\n  - Fixes breakage of `--platform` + `--interpreter` CLI modes and adds test coverage.\r\n  - Fixes breakage of platform incompatibility warnings and adds test coverage.\r\n  - Fixes interpreter version identification breakage in `PlatformIdentity` and adds test coverage.\r\n  - Fixes breakage of runtime resolution for mixed linux + manylinux inner dists and adds test coverage.\r\n  - Pushes `getsource()` calls into a function call.\r\n  - Adds (forked from upstream) test coverage for the fork of `pep425tags.py`.\r\n  - Adds integration test coverage for ABI targeting and other cases.\r\n  - Adds better debug logging for diagnosing resolve failures.\r\n  - Cleans up some terminology and misc style.\r\n\r\nOnce this change is approved, the plan is to:\r\n\r\n  1) land #316 independently.\r\n  2) rebase this PR to only include the second squash merged commit and land that immediately after.\r\n  3) cut pex 1.4.0\r\n","created_at":"2018-05-15T09:03:01Z","updated_at":"2018-05-15T22:46:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"97d02b228e3d4df457285ed17d40b387947cb592","assignee":null,"assignees":[],"requested_reviewers":[{"login":"Yasumoto","id":48383,"avatar_url":"https://avatars3.githubusercontent.com/u/48383?v=4","gravatar_id":"","url":"https://api.github.com/users/Yasumoto","html_url":"https://github.com/Yasumoto","followers_url":"https://api.github.com/users/Yasumoto/followers","following_url":"https://api.github.com/users/Yasumoto/following{/other_user}","gists_url":"https://api.github.com/users/Yasumoto/gists{/gist_id}","starred_url":"https://api.github.com/users/Yasumoto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yasumoto/subscriptions","organizations_url":"https://api.github.com/users/Yasumoto/orgs","repos_url":"https://api.github.com/users/Yasumoto/repos","events_url":"https://api.github.com/users/Yasumoto/events{/privacy}","received_events_url":"https://api.github.com/users/Yasumoto/received_events","type":"User","site_admin":false},{"login":"jsirois","id":157586,"avatar_url":"https://avatars1.githubusercontent.com/u/157586?v=4","gravatar_id":"","url":"https://api.github.com/users/jsirois","html_url":"https://github.com/jsirois","followers_url":"https://api.github.com/users/jsirois/followers","following_url":"https://api.github.com/users/jsirois/following{/other_user}","gists_url":"https://api.github.com/users/jsirois/gists{/gist_id}","starred_url":"https://api.github.com/users/jsirois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsirois/subscriptions","organizations_url":"https://api.github.com/users/jsirois/orgs","repos_url":"https://api.github.com/users/jsirois/repos","events_url":"https://api.github.com/users/jsirois/events{/privacy}","received_events_url":"https://api.github.com/users/jsirois/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/pantsbuild/pex/pulls/480/commits","review_comments_url":"https://api.github.com/repos/pantsbuild/pex/pulls/480/comments","review_comment_url":"https://api.github.com/repos/pantsbuild/pex/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pantsbuild/pex/issues/480/comments","statuses_url":"https://api.github.com/repos/pantsbuild/pex/statuses/ba1ab6aaa2c44fd8d11801fe9c43718aabf3adfd","head":{"label":"kwlzn:kwlzn/manylinux","ref":"kwlzn/manylinux","sha":"ba1ab6aaa2c44fd8d11801fe9c43718aabf3adfd","user":{"login":"kwlzn","id":1883523,"avatar_url":"https://avatars0.githubusercontent.com/u/1883523?v=4","gravatar_id":"","url":"https://api.github.com/users/kwlzn","html_url":"https://github.com/kwlzn","followers_url":"https://api.github.com/users/kwlzn/followers","following_url":"https://api.github.com/users/kwlzn/following{/other_user}","gists_url":"https://api.github.com/users/kwlzn/gists{/gist_id}","starred_url":"https://api.github.com/users/kwlzn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kwlzn/subscriptions","organizations_url":"https://api.github.com/users/kwlzn/orgs","repos_url":"https://api.github.com/users/kwlzn/repos","events_url":"https://api.github.com/users/kwlzn/events{/privacy}","received_events_url":"https://api.github.com/users/kwlzn/received_events","type":"User","site_admin":false},"repo":{"id":40330713,"name":"pex","full_name":"kwlzn/pex","owner":{"login":"kwlzn","id":1883523,"avatar_url":"https://avatars0.githubusercontent.com/u/1883523?v=4","gravatar_id":"","url":"https://api.github.com/users/kwlzn","html_url":"https://github.com/kwlzn","followers_url":"https://api.github.com/users/kwlzn/followers","following_url":"https://api.github.com/users/kwlzn/following{/other_user}","gists_url":"https://api.github.com/users/kwlzn/gists{/gist_id}","starred_url":"https://api.github.com/users/kwlzn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kwlzn/subscriptions","organizations_url":"https://api.github.com/users/kwlzn/orgs","repos_url":"https://api.github.com/users/kwlzn/repos","events_url":"https://api.github.com/users/kwlzn/events{/privacy}","received_events_url":"https://api.github.com/users/kwlzn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kwlzn/pex","description":"A library and tool for generating .pex (Python EXecutable) files","fork":true,"url":"https://api.github.com/repos/kwlzn/pex","forks_url":"https://api.github.com/repos/kwlzn/pex/forks","keys_url":"https://api.github.com/repos/kwlzn/pex/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kwlzn/pex/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kwlzn/pex/teams","hooks_url":"https://api.github.com/repos/kwlzn/pex/hooks","issue_events_url":"https://api.github.com/repos/kwlzn/pex/issues/events{/number}","events_url":"https://api.github.com/repos/kwlzn/pex/events","assignees_url":"https://api.github.com/repos/kwlzn/pex/assignees{/user}","branches_url":"https://api.github.com/repos/kwlzn/pex/branches{/branch}","tags_url":"https://api.github.com/repos/kwlzn/pex/tags","blobs_url":"https://api.github.com/repos/kwlzn/pex/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kwlzn/pex/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kwlzn/pex/git/refs{/sha}","trees_url":"https://api.github.com/repos/kwlzn/pex/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kwlzn/pex/statuses/{sha}","languages_url":"https://api.github.com/repos/kwlzn/pex/languages","stargazers_url":"https://api.github.com/repos/kwlzn/pex/stargazers","contributors_url":"https://api.github.com/repos/kwlzn/pex/contributors","subscribers_url":"https://api.github.com/repos/kwlzn/pex/subscribers","subscription_url":"https://api.github.com/repos/kwlzn/pex/subscription","commits_url":"https://api.github.com/repos/kwlzn/pex/commits{/sha}","git_commits_url":"https://api.github.com/repos/kwlzn/pex/git/commits{/sha}","comments_url":"https://api.github.com/repos/kwlzn/pex/comments{/number}","issue_comment_url":"https://api.github.com/repos/kwlzn/pex/issues/comments{/number}","contents_url":"https://api.github.com/repos/kwlzn/pex/contents/{+path}","compare_url":"https://api.github.com/repos/kwlzn/pex/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kwlzn/pex/merges","archive_url":"https://api.github.com/repos/kwlzn/pex/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kwlzn/pex/downloads","issues_url":"https://api.github.com/repos/kwlzn/pex/issues{/number}","pulls_url":"https://api.github.com/repos/kwlzn/pex/pulls{/number}","milestones_url":"https://api.github.com/repos/kwlzn/pex/milestones{/number}","notifications_url":"https://api.github.com/repos/kwlzn/pex/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kwlzn/pex/labels{/name}","releases_url":"https://api.github.com/repos/kwlzn/pex/releases{/id}","deployments_url":"https://api.github.com/repos/kwlzn/pex/deployments","created_at":"2015-08-06T23:03:35Z","updated_at":"2018-05-12T05:57:48Z","pushed_at":"2018-05-15T09:39:24Z","git_url":"git://github.com/kwlzn/pex.git","ssh_url":"git@github.com:kwlzn/pex.git","clone_url":"https://github.com/kwlzn/pex.git","svn_url":"https://github.com/kwlzn/pex","homepage":"","size":1568,"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":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"pantsbuild:master","ref":"master","sha":"c1fa403a21818d3c745a9c23555d0f454ae8e3da","user":{"login":"pantsbuild","id":3065172,"avatar_url":"https://avatars0.githubusercontent.com/u/3065172?v=4","gravatar_id":"","url":"https://api.github.com/users/pantsbuild","html_url":"https://github.com/pantsbuild","followers_url":"https://api.github.com/users/pantsbuild/followers","following_url":"https://api.github.com/users/pantsbuild/following{/other_user}","gists_url":"https://api.github.com/users/pantsbuild/gists{/gist_id}","starred_url":"https://api.github.com/users/pantsbuild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pantsbuild/subscriptions","organizations_url":"https://api.github.com/users/pantsbuild/orgs","repos_url":"https://api.github.com/users/pantsbuild/repos","events_url":"https://api.github.com/users/pantsbuild/events{/privacy}","received_events_url":"https://api.github.com/users/pantsbuild/received_events","type":"Organization","site_admin":false},"repo":{"id":22072746,"name":"pex","full_name":"pantsbuild/pex","owner":{"login":"pantsbuild","id":3065172,"avatar_url":"https://avatars0.githubusercontent.com/u/3065172?v=4","gravatar_id":"","url":"https://api.github.com/users/pantsbuild","html_url":"https://github.com/pantsbuild","followers_url":"https://api.github.com/users/pantsbuild/followers","following_url":"https://api.github.com/users/pantsbuild/following{/other_user}","gists_url":"https://api.github.com/users/pantsbuild/gists{/gist_id}","starred_url":"https://api.github.com/users/pantsbuild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pantsbuild/subscriptions","organizations_url":"https://api.github.com/users/pantsbuild/orgs","repos_url":"https://api.github.com/users/pantsbuild/repos","events_url":"https://api.github.com/users/pantsbuild/events{/privacy}","received_events_url":"https://api.github.com/users/pantsbuild/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pantsbuild/pex","description":"A library and tool for generating .pex (Python EXecutable) files","fork":false,"url":"https://api.github.com/repos/pantsbuild/pex","forks_url":"https://api.github.com/repos/pantsbuild/pex/forks","keys_url":"https://api.github.com/repos/pantsbuild/pex/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pantsbuild/pex/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pantsbuild/pex/teams","hooks_url":"https://api.github.com/repos/pantsbuild/pex/hooks","issue_events_url":"https://api.github.com/repos/pantsbuild/pex/issues/events{/number}","events_url":"https://api.github.com/repos/pantsbuild/pex/events","assignees_url":"https://api.github.com/repos/pantsbuild/pex/assignees{/user}","branches_url":"https://api.github.com/repos/pantsbuild/pex/branches{/branch}","tags_url":"https://api.github.com/repos/pantsbuild/pex/tags","blobs_url":"https://api.github.com/repos/pantsbuild/pex/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pantsbuild/pex/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pantsbuild/pex/git/refs{/sha}","trees_url":"https://api.github.com/repos/pantsbuild/pex/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pantsbuild/pex/statuses/{sha}","languages_url":"https://api.github.com/repos/pantsbuild/pex/languages","stargazers_url":"https://api.github.com/repos/pantsbuild/pex/stargazers","contributors_url":"https://api.github.com/repos/pantsbuild/pex/contributors","subscribers_url":"https://api.github.com/repos/pantsbuild/pex/subscribers","subscription_url":"https://api.github.com/repos/pantsbuild/pex/subscription","commits_url":"https://api.github.com/repos/pantsbuild/pex/commits{/sha}","git_commits_url":"https://api.github.com/repos/pantsbuild/pex/git/commits{/sha}","comments_url":"https://api.github.com/repos/pantsbuild/pex/comments{/number}","issue_comment_url":"https://api.github.com/repos/pantsbuild/pex/issues/comments{/number}","contents_url":"https://api.github.com/repos/pantsbuild/pex/contents/{+path}","compare_url":"https://api.github.com/repos/pantsbuild/pex/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pantsbuild/pex/merges","archive_url":"https://api.github.com/repos/pantsbuild/pex/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pantsbuild/pex/downloads","issues_url":"https://api.github.com/repos/pantsbuild/pex/issues{/number}","pulls_url":"https://api.github.com/repos/pantsbuild/pex/pulls{/number}","milestones_url":"https://api.github.com/repos/pantsbuild/pex/milestones{/number}","notifications_url":"https://api.github.com/repos/pantsbuild/pex/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pantsbuild/pex/labels{/name}","releases_url":"https://api.github.com/repos/pantsbuild/pex/releases{/id}","deployments_url":"https://api.github.com/repos/pantsbuild/pex/deployments","created_at":"2014-07-21T17:06:12Z","updated_at":"2018-05-15T19:04:03Z","pushed_at":"2018-05-15T09:39:26Z","git_url":"git://github.com/pantsbuild/pex.git","ssh_url":"git@github.com:pantsbuild/pex.git","clone_url":"https://github.com/pantsbuild/pex.git","svn_url":"https://github.com/pantsbuild/pex","homepage":"","size":1510,"stargazers_count":1008,"watchers_count":1008,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":116,"mirror_url":null,"archived":false,"open_issues_count":102,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":116,"open_issues":102,"watchers":1008,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pantsbuild/pex/pulls/480"},"html":{"href":"https://github.com/pantsbuild/pex/pull/480"},"issue":{"href":"https://api.github.com/repos/pantsbuild/pex/issues/480"},"comments":{"href":"https://api.github.com/repos/pantsbuild/pex/issues/480/comments"},"review_comments":{"href":"https://api.github.com/repos/pantsbuild/pex/pulls/480/comments"},"review_comment":{"href":"https://api.github.com/repos/pantsbuild/pex/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pantsbuild/pex/pulls/480/commits"},"statuses":{"href":"https://api.github.com/repos/pantsbuild/pex/statuses/ba1ab6aaa2c44fd8d11801fe9c43718aabf3adfd"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"kwlzn"}}