{"action":"closed","number":213,"pull_request":{"url":"https://api.github.com/repos/googlei18n/nototools/pulls/213","id":64711422,"html_url":"https://github.com/googlei18n/nototools/pull/213","diff_url":"https://github.com/googlei18n/nototools/pull/213.diff","patch_url":"https://github.com/googlei18n/nototools/pull/213.patch","issue_url":"https://api.github.com/repos/googlei18n/nototools/issues/213","number":213,"state":"closed","locked":false,"title":"Update cmap data tooling to handle 'fallback' codepoints.","user":{"login":"dougfelt","id":9939212,"avatar_url":"https://avatars.githubusercontent.com/u/9939212?v=3","gravatar_id":"","url":"https://api.github.com/users/dougfelt","html_url":"https://github.com/dougfelt","followers_url":"https://api.github.com/users/dougfelt/followers","following_url":"https://api.github.com/users/dougfelt/following{/other_user}","gists_url":"https://api.github.com/users/dougfelt/gists{/gist_id}","starred_url":"https://api.github.com/users/dougfelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dougfelt/subscriptions","organizations_url":"https://api.github.com/users/dougfelt/orgs","repos_url":"https://api.github.com/users/dougfelt/repos","events_url":"https://api.github.com/users/dougfelt/events{/privacy}","received_events_url":"https://api.github.com/users/dougfelt/received_events","type":"User","site_admin":false},"body":"We are suggesting some additional codepoints for fonts based on possible\r\ntypographic interaction, and asking MTI to examine whether these additional\r\ncodepoints can be omitted from the font and supported via fallback\r\nfrom the LGC fonts.  We communicate with them using a spreadsheet, when\r\nthey have examined a font they mark the font name with an asterisk, and\r\nadditionally append an asterisk after each codepoint they feel does not\r\nneed to be in the font.\r\n\r\nFormerly the tooling did not support this additional data, it only\r\nsupported a list of cps for each font.  This makes changes to support an\r\noptional additional list of 'fallback cps'.\r\n\r\ncmap_data is modified to read/write 6 columns of data instead of 4, the\r\ntwo additional columns are the count of 'fallback' code points and the\r\ntext representation of these ranges.  When there is no data on fallback\r\ncode points, the count is -1.  The data in the two ranges should not\r\noverlap, this however is not verified.\r\n\r\nmti_cmap_data is modified to read and write the new data in .csv form,\r\nconverting it to the canonical xml form.\r\n\r\ncompare_cmap_data compares two data files (either of which might or might\r\nnot have the additional columns on fallback cps) and reports differences\r\nbetween them, including differences between the fallback sets, and also\r\nreports on cps that move between standard and fallback sets.\r\n\r\nnoto_cmap_reqs is modified to merge the computed cmap data (which\r\ndoes not change) with fallback cmap data from a separate file.\r\n\r\nnoto_lint does not change, since fallback cps are removed from the standard\r\ncps, noto_lint just sees a smaller set of required cps.","created_at":"2016-03-30T23:03:14Z","updated_at":"2016-03-31T02:57:01Z","closed_at":"2016-03-31T02:57:01Z","merged_at":"2016-03-31T02:57:01Z","merge_commit_sha":"2558b83dbce4c78a72954f75da6f954e46447bf2","assignee":{"login":"jamesgk","id":988758,"avatar_url":"https://avatars.githubusercontent.com/u/988758?v=3","gravatar_id":"","url":"https://api.github.com/users/jamesgk","html_url":"https://github.com/jamesgk","followers_url":"https://api.github.com/users/jamesgk/followers","following_url":"https://api.github.com/users/jamesgk/following{/other_user}","gists_url":"https://api.github.com/users/jamesgk/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesgk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesgk/subscriptions","organizations_url":"https://api.github.com/users/jamesgk/orgs","repos_url":"https://api.github.com/users/jamesgk/repos","events_url":"https://api.github.com/users/jamesgk/events{/privacy}","received_events_url":"https://api.github.com/users/jamesgk/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/googlei18n/nototools/pulls/213/commits","review_comments_url":"https://api.github.com/repos/googlei18n/nototools/pulls/213/comments","review_comment_url":"https://api.github.com/repos/googlei18n/nototools/pulls/comments{/number}","comments_url":"https://api.github.com/repos/googlei18n/nototools/issues/213/comments","statuses_url":"https://api.github.com/repos/googlei18n/nototools/statuses/a86aee36f4e5c5274664c765951e63c1464f5f7a","head":{"label":"dougfelt:fallback_cmaps","ref":"fallback_cmaps","sha":"a86aee36f4e5c5274664c765951e63c1464f5f7a","user":{"login":"dougfelt","id":9939212,"avatar_url":"https://avatars.githubusercontent.com/u/9939212?v=3","gravatar_id":"","url":"https://api.github.com/users/dougfelt","html_url":"https://github.com/dougfelt","followers_url":"https://api.github.com/users/dougfelt/followers","following_url":"https://api.github.com/users/dougfelt/following{/other_user}","gists_url":"https://api.github.com/users/dougfelt/gists{/gist_id}","starred_url":"https://api.github.com/users/dougfelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dougfelt/subscriptions","organizations_url":"https://api.github.com/users/dougfelt/orgs","repos_url":"https://api.github.com/users/dougfelt/repos","events_url":"https://api.github.com/users/dougfelt/events{/privacy}","received_events_url":"https://api.github.com/users/dougfelt/received_events","type":"User","site_admin":false},"repo":{"id":37153147,"name":"nototools","full_name":"dougfelt/nototools","owner":{"login":"dougfelt","id":9939212,"avatar_url":"https://avatars.githubusercontent.com/u/9939212?v=3","gravatar_id":"","url":"https://api.github.com/users/dougfelt","html_url":"https://github.com/dougfelt","followers_url":"https://api.github.com/users/dougfelt/followers","following_url":"https://api.github.com/users/dougfelt/following{/other_user}","gists_url":"https://api.github.com/users/dougfelt/gists{/gist_id}","starred_url":"https://api.github.com/users/dougfelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dougfelt/subscriptions","organizations_url":"https://api.github.com/users/dougfelt/orgs","repos_url":"https://api.github.com/users/dougfelt/repos","events_url":"https://api.github.com/users/dougfelt/events{/privacy}","received_events_url":"https://api.github.com/users/dougfelt/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dougfelt/nototools","description":"Noto fonts support tools and scripts","fork":true,"url":"https://api.github.com/repos/dougfelt/nototools","forks_url":"https://api.github.com/repos/dougfelt/nototools/forks","keys_url":"https://api.github.com/repos/dougfelt/nototools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dougfelt/nototools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dougfelt/nototools/teams","hooks_url":"https://api.github.com/repos/dougfelt/nototools/hooks","issue_events_url":"https://api.github.com/repos/dougfelt/nototools/issues/events{/number}","events_url":"https://api.github.com/repos/dougfelt/nototools/events","assignees_url":"https://api.github.com/repos/dougfelt/nototools/assignees{/user}","branches_url":"https://api.github.com/repos/dougfelt/nototools/branches{/branch}","tags_url":"https://api.github.com/repos/dougfelt/nototools/tags","blobs_url":"https://api.github.com/repos/dougfelt/nototools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dougfelt/nototools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dougfelt/nototools/git/refs{/sha}","trees_url":"https://api.github.com/repos/dougfelt/nototools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dougfelt/nototools/statuses/{sha}","languages_url":"https://api.github.com/repos/dougfelt/nototools/languages","stargazers_url":"https://api.github.com/repos/dougfelt/nototools/stargazers","contributors_url":"https://api.github.com/repos/dougfelt/nototools/contributors","subscribers_url":"https://api.github.com/repos/dougfelt/nototools/subscribers","subscription_url":"https://api.github.com/repos/dougfelt/nototools/subscription","commits_url":"https://api.github.com/repos/dougfelt/nototools/commits{/sha}","git_commits_url":"https://api.github.com/repos/dougfelt/nototools/git/commits{/sha}","comments_url":"https://api.github.com/repos/dougfelt/nototools/comments{/number}","issue_comment_url":"https://api.github.com/repos/dougfelt/nototools/issues/comments{/number}","contents_url":"https://api.github.com/repos/dougfelt/nototools/contents/{+path}","compare_url":"https://api.github.com/repos/dougfelt/nototools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dougfelt/nototools/merges","archive_url":"https://api.github.com/repos/dougfelt/nototools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dougfelt/nototools/downloads","issues_url":"https://api.github.com/repos/dougfelt/nototools/issues{/number}","pulls_url":"https://api.github.com/repos/dougfelt/nototools/pulls{/number}","milestones_url":"https://api.github.com/repos/dougfelt/nototools/milestones{/number}","notifications_url":"https://api.github.com/repos/dougfelt/nototools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dougfelt/nototools/labels{/name}","releases_url":"https://api.github.com/repos/dougfelt/nototools/releases{/id}","deployments_url":"https://api.github.com/repos/dougfelt/nototools/deployments","created_at":"2015-06-09T19:21:58Z","updated_at":"2016-01-12T21:52:08Z","pushed_at":"2016-03-31T02:55:44Z","git_url":"git://github.com/dougfelt/nototools.git","ssh_url":"git@github.com:dougfelt/nototools.git","clone_url":"https://github.com/dougfelt/nototools.git","svn_url":"https://github.com/dougfelt/nototools","homepage":"","size":33322,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"googlei18n:master","ref":"master","sha":"4f7b067d1b18f59288e5eaee34db5b0abd3a3f63","user":{"login":"googlei18n","id":5503833,"avatar_url":"https://avatars.githubusercontent.com/u/5503833?v=3","gravatar_id":"","url":"https://api.github.com/users/googlei18n","html_url":"https://github.com/googlei18n","followers_url":"https://api.github.com/users/googlei18n/followers","following_url":"https://api.github.com/users/googlei18n/following{/other_user}","gists_url":"https://api.github.com/users/googlei18n/gists{/gist_id}","starred_url":"https://api.github.com/users/googlei18n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/googlei18n/subscriptions","organizations_url":"https://api.github.com/users/googlei18n/orgs","repos_url":"https://api.github.com/users/googlei18n/repos","events_url":"https://api.github.com/users/googlei18n/events{/privacy}","received_events_url":"https://api.github.com/users/googlei18n/received_events","type":"Organization","site_admin":false},"repo":{"id":36903754,"name":"nototools","full_name":"googlei18n/nototools","owner":{"login":"googlei18n","id":5503833,"avatar_url":"https://avatars.githubusercontent.com/u/5503833?v=3","gravatar_id":"","url":"https://api.github.com/users/googlei18n","html_url":"https://github.com/googlei18n","followers_url":"https://api.github.com/users/googlei18n/followers","following_url":"https://api.github.com/users/googlei18n/following{/other_user}","gists_url":"https://api.github.com/users/googlei18n/gists{/gist_id}","starred_url":"https://api.github.com/users/googlei18n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/googlei18n/subscriptions","organizations_url":"https://api.github.com/users/googlei18n/orgs","repos_url":"https://api.github.com/users/googlei18n/repos","events_url":"https://api.github.com/users/googlei18n/events{/privacy}","received_events_url":"https://api.github.com/users/googlei18n/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/googlei18n/nototools","description":"Noto fonts support tools and scripts plus web site generation","fork":false,"url":"https://api.github.com/repos/googlei18n/nototools","forks_url":"https://api.github.com/repos/googlei18n/nototools/forks","keys_url":"https://api.github.com/repos/googlei18n/nototools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/googlei18n/nototools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/googlei18n/nototools/teams","hooks_url":"https://api.github.com/repos/googlei18n/nototools/hooks","issue_events_url":"https://api.github.com/repos/googlei18n/nototools/issues/events{/number}","events_url":"https://api.github.com/repos/googlei18n/nototools/events","assignees_url":"https://api.github.com/repos/googlei18n/nototools/assignees{/user}","branches_url":"https://api.github.com/repos/googlei18n/nototools/branches{/branch}","tags_url":"https://api.github.com/repos/googlei18n/nototools/tags","blobs_url":"https://api.github.com/repos/googlei18n/nototools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/googlei18n/nototools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/googlei18n/nototools/git/refs{/sha}","trees_url":"https://api.github.com/repos/googlei18n/nototools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/googlei18n/nototools/statuses/{sha}","languages_url":"https://api.github.com/repos/googlei18n/nototools/languages","stargazers_url":"https://api.github.com/repos/googlei18n/nototools/stargazers","contributors_url":"https://api.github.com/repos/googlei18n/nototools/contributors","subscribers_url":"https://api.github.com/repos/googlei18n/nototools/subscribers","subscription_url":"https://api.github.com/repos/googlei18n/nototools/subscription","commits_url":"https://api.github.com/repos/googlei18n/nototools/commits{/sha}","git_commits_url":"https://api.github.com/repos/googlei18n/nototools/git/commits{/sha}","comments_url":"https://api.github.com/repos/googlei18n/nototools/comments{/number}","issue_comment_url":"https://api.github.com/repos/googlei18n/nototools/issues/comments{/number}","contents_url":"https://api.github.com/repos/googlei18n/nototools/contents/{+path}","compare_url":"https://api.github.com/repos/googlei18n/nototools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/googlei18n/nototools/merges","archive_url":"https://api.github.com/repos/googlei18n/nototools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/googlei18n/nototools/downloads","issues_url":"https://api.github.com/repos/googlei18n/nototools/issues{/number}","pulls_url":"https://api.github.com/repos/googlei18n/nototools/pulls{/number}","milestones_url":"https://api.github.com/repos/googlei18n/nototools/milestones{/number}","notifications_url":"https://api.github.com/repos/googlei18n/nototools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/googlei18n/nototools/labels{/name}","releases_url":"https://api.github.com/repos/googlei18n/nototools/releases{/id}","deployments_url":"https://api.github.com/repos/googlei18n/nototools/deployments","created_at":"2015-06-05T00:50:47Z","updated_at":"2016-03-25T04:42:00Z","pushed_at":"2016-03-31T02:57:01Z","git_url":"git://github.com/googlei18n/nototools.git","ssh_url":"git@github.com:googlei18n/nototools.git","clone_url":"https://github.com/googlei18n/nototools.git","svn_url":"https://github.com/googlei18n/nototools","homepage":"","size":33305,"stargazers_count":37,"watchers_count":37,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"open_issues_count":25,"forks":22,"open_issues":25,"watchers":37,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/googlei18n/nototools/pulls/213"},"html":{"href":"https://github.com/googlei18n/nototools/pull/213"},"issue":{"href":"https://api.github.com/repos/googlei18n/nototools/issues/213"},"comments":{"href":"https://api.github.com/repos/googlei18n/nototools/issues/213/comments"},"review_comments":{"href":"https://api.github.com/repos/googlei18n/nototools/pulls/213/comments"},"review_comment":{"href":"https://api.github.com/repos/googlei18n/nototools/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/googlei18n/nototools/pulls/213/commits"},"statuses":{"href":"https://api.github.com/repos/googlei18n/nototools/statuses/a86aee36f4e5c5274664c765951e63c1464f5f7a"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"dougfelt","id":9939212,"avatar_url":"https://avatars.githubusercontent.com/u/9939212?v=3","gravatar_id":"","url":"https://api.github.com/users/dougfelt","html_url":"https://github.com/dougfelt","followers_url":"https://api.github.com/users/dougfelt/followers","following_url":"https://api.github.com/users/dougfelt/following{/other_user}","gists_url":"https://api.github.com/users/dougfelt/gists{/gist_id}","starred_url":"https://api.github.com/users/dougfelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dougfelt/subscriptions","organizations_url":"https://api.github.com/users/dougfelt/orgs","repos_url":"https://api.github.com/users/dougfelt/repos","events_url":"https://api.github.com/users/dougfelt/events{/privacy}","received_events_url":"https://api.github.com/users/dougfelt/received_events","type":"User","site_admin":false},"comments":1,"review_comments":1,"commits":2,"additions":149,"deletions":56,"changed_files":4}}