{"action":"closed","number":528,"pull_request":{"url":"https://api.github.com/repos/C5T/Current/pulls/528","id":73462945,"html_url":"https://github.com/C5T/Current/pull/528","diff_url":"https://github.com/C5T/Current/pull/528.diff","patch_url":"https://github.com/C5T/Current/pull/528.patch","issue_url":"https://api.github.com/repos/C5T/Current/issues/528","number":528,"state":"closed","locked":false,"title":"Type evolved storage.","user":{"login":"dkorolev","id":2159447,"avatar_url":"https://avatars.githubusercontent.com/u/2159447?v=3","gravatar_id":"","url":"https://api.github.com/users/dkorolev","html_url":"https://github.com/dkorolev","followers_url":"https://api.github.com/users/dkorolev/followers","following_url":"https://api.github.com/users/dkorolev/following{/other_user}","gists_url":"https://api.github.com/users/dkorolev/gists{/gist_id}","starred_url":"https://api.github.com/users/dkorolev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkorolev/subscriptions","organizations_url":"https://api.github.com/users/dkorolev/orgs","repos_url":"https://api.github.com/users/dkorolev/repos","events_url":"https://api.github.com/users/dkorolev/events{/privacy}","received_events_url":"https://api.github.com/users/dkorolev/received_events","type":"User","site_admin":false},"body":"Hi Max!\r\n\r\nTL;DR:\r\n\r\n```\r\n 942 TEST(TypeEvolutionTest, StorageInnerTypes) {\r\n 943   // Test the plain `Name` type goes through.\r\n 944   typename SchemaOriginalStorage::Name foo;\r\n 945   foo.first = \"Ayn\";\r\n 946   foo.last = \"Rand\";\r\n 947   {\r\n 948     typename SchemaOriginalStorage::Name bar;\r\n 949     current::type_evolution::Evolve<SchemaOriginalStorage, typename SchemaOriginalStorage::Name>::template Go<\r\n 950         SchemaOriginalStorage>(foo, bar);\r\n 951     EXPECT_EQ(\"{\\\"first\\\":\\\"Ayn\\\",\\\"last\\\":\\\"Rand\\\"}\", JSON(bar));\r\n 952   }\r\n 953   {\r\n 954     typename SchemaOriginalStorage::Name baz;\r\n 955     current::type_evolution::Evolve<SchemaOriginalStorage,\r\n 956                                     typename SchemaOriginalStorage::Name,\r\n 957                                     current::type_evolution::OriginalStorageToOriginalStorageEvolutor>::\r\n 958         template Go<SchemaOriginalStorage>(foo, baz);\r\n 959     EXPECT_EQ(\"{\\\"first\\\":\\\"AYN\\\",\\\"last\\\":\\\"RAND\\\"}\", JSON(baz));\r\n 960   }\r\n 961   {\r\n 962     typename SchemaModifiedStorage::Name meh;\r\n 963     current::type_evolution::Evolve<SchemaOriginalStorage,\r\n 964                                     typename SchemaOriginalStorage::Name,\r\n 965                                     current::type_evolution::OriginalStorageToModifiedStorageEvolutor>::\r\n 966         template Go<SchemaModifiedStorage>(foo, meh);\r\n 967     EXPECT_EQ(\"{\\\"full\\\":\\\"Rand, A\\\"}\", JSON(meh));\r\n 968   }\r\n 969 }\r\n```\r\n\r\n```\r\n$ cat golden/storage_pre_evolution.txt \r\n{\"index\":0,\"us\":1}\t{\"meta\":{\"timestamp\":0,\"fields\":{}},\"mutations\":[{\"PersistedUserUpdated\":{\"data\":{\"first\":\"KARL\",\"last\":\"MARX\",\"key\":\"karl\"}},\"\":\"T9201121062548426382\"}]}\r\n{\"index\":1,\"us\":3}\t{\"meta\":{\"timestamp\":2,\"fields\":{}},\"mutations\":[{\"PersistedUserUpdated\":{\"data\":{\"first\":\"DIMA\",\"last\":\"KOROLEV\",\"key\":\"dima\"}},\"\":\"T9201121062548426382\"},{\"PersistedUserUpdated\":{\"data\":{\"first\":\"MAX\",\"last\":\"ZHUROVICH\",\"key\":\"max\"}},\"\":\"T9201121062548426382\"}]}\r\n\r\n$ cat golden/storage_post_evolution.txt \r\n{\"index\":0,\"us\":1}\t{\"meta\":{\"timestamp\":0,\"fields\":{}},\"mutations\":[{\"PersistedUserUpdated\":{\"data\":{\"full\":\"Marx, K\",\"key\":\"karl\"}},\"\":\"T9205376179718671976\"}]}\r\n{\"index\":1,\"us\":3}\t{\"meta\":{\"timestamp\":2,\"fields\":{}},\"mutations\":[{\"PersistedUserUpdated\":{\"data\":{\"full\":\"Korolev, D\",\"key\":\"dima\"}},\"\":\"T9205376179718671976\"},{\"PersistedUserUpdated\":{\"data\":{\"full\":\"Zhurovich, M\",\"key\":\"max\"}},\"\":\"T9205376179718671976\"}]}\r\n\r\nГлавное, ребята, сердцем не стареть.","created_at":"2016-06-11T08:44:09Z","updated_at":"2016-06-13T12:36:02Z","closed_at":"2016-06-13T12:36:02Z","merged_at":"2016-06-13T12:36:02Z","merge_commit_sha":"bcb36982091b6b88bf44b7d08fbb2b31f599f515","assignee":{"login":"mzhurovich","id":11226961,"avatar_url":"https://avatars.githubusercontent.com/u/11226961?v=3","gravatar_id":"","url":"https://api.github.com/users/mzhurovich","html_url":"https://github.com/mzhurovich","followers_url":"https://api.github.com/users/mzhurovich/followers","following_url":"https://api.github.com/users/mzhurovich/following{/other_user}","gists_url":"https://api.github.com/users/mzhurovich/gists{/gist_id}","starred_url":"https://api.github.com/users/mzhurovich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mzhurovich/subscriptions","organizations_url":"https://api.github.com/users/mzhurovich/orgs","repos_url":"https://api.github.com/users/mzhurovich/repos","events_url":"https://api.github.com/users/mzhurovich/events{/privacy}","received_events_url":"https://api.github.com/users/mzhurovich/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/C5T/Current/pulls/528/commits","review_comments_url":"https://api.github.com/repos/C5T/Current/pulls/528/comments","review_comment_url":"https://api.github.com/repos/C5T/Current/pulls/comments{/number}","comments_url":"https://api.github.com/repos/C5T/Current/issues/528/comments","statuses_url":"https://api.github.com/repos/C5T/Current/statuses/bcb36982091b6b88bf44b7d08fbb2b31f599f515","head":{"label":"dkorolev:type_evolved_storage","ref":"type_evolved_storage","sha":"bcb36982091b6b88bf44b7d08fbb2b31f599f515","user":{"login":"dkorolev","id":2159447,"avatar_url":"https://avatars.githubusercontent.com/u/2159447?v=3","gravatar_id":"","url":"https://api.github.com/users/dkorolev","html_url":"https://github.com/dkorolev","followers_url":"https://api.github.com/users/dkorolev/followers","following_url":"https://api.github.com/users/dkorolev/following{/other_user}","gists_url":"https://api.github.com/users/dkorolev/gists{/gist_id}","starred_url":"https://api.github.com/users/dkorolev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkorolev/subscriptions","organizations_url":"https://api.github.com/users/dkorolev/orgs","repos_url":"https://api.github.com/users/dkorolev/repos","events_url":"https://api.github.com/users/dkorolev/events{/privacy}","received_events_url":"https://api.github.com/users/dkorolev/received_events","type":"User","site_admin":false},"repo":{"id":27625438,"name":"Current","full_name":"dkorolev/Current","owner":{"login":"dkorolev","id":2159447,"avatar_url":"https://avatars.githubusercontent.com/u/2159447?v=3","gravatar_id":"","url":"https://api.github.com/users/dkorolev","html_url":"https://github.com/dkorolev","followers_url":"https://api.github.com/users/dkorolev/followers","following_url":"https://api.github.com/users/dkorolev/following{/other_user}","gists_url":"https://api.github.com/users/dkorolev/gists{/gist_id}","starred_url":"https://api.github.com/users/dkorolev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkorolev/subscriptions","organizations_url":"https://api.github.com/users/dkorolev/orgs","repos_url":"https://api.github.com/users/dkorolev/repos","events_url":"https://api.github.com/users/dkorolev/events{/privacy}","received_events_url":"https://api.github.com/users/dkorolev/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dkorolev/Current","description":"Data Infrastructure in a Box:","fork":true,"url":"https://api.github.com/repos/dkorolev/Current","forks_url":"https://api.github.com/repos/dkorolev/Current/forks","keys_url":"https://api.github.com/repos/dkorolev/Current/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dkorolev/Current/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dkorolev/Current/teams","hooks_url":"https://api.github.com/repos/dkorolev/Current/hooks","issue_events_url":"https://api.github.com/repos/dkorolev/Current/issues/events{/number}","events_url":"https://api.github.com/repos/dkorolev/Current/events","assignees_url":"https://api.github.com/repos/dkorolev/Current/assignees{/user}","branches_url":"https://api.github.com/repos/dkorolev/Current/branches{/branch}","tags_url":"https://api.github.com/repos/dkorolev/Current/tags","blobs_url":"https://api.github.com/repos/dkorolev/Current/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dkorolev/Current/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dkorolev/Current/git/refs{/sha}","trees_url":"https://api.github.com/repos/dkorolev/Current/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dkorolev/Current/statuses/{sha}","languages_url":"https://api.github.com/repos/dkorolev/Current/languages","stargazers_url":"https://api.github.com/repos/dkorolev/Current/stargazers","contributors_url":"https://api.github.com/repos/dkorolev/Current/contributors","subscribers_url":"https://api.github.com/repos/dkorolev/Current/subscribers","subscription_url":"https://api.github.com/repos/dkorolev/Current/subscription","commits_url":"https://api.github.com/repos/dkorolev/Current/commits{/sha}","git_commits_url":"https://api.github.com/repos/dkorolev/Current/git/commits{/sha}","comments_url":"https://api.github.com/repos/dkorolev/Current/comments{/number}","issue_comment_url":"https://api.github.com/repos/dkorolev/Current/issues/comments{/number}","contents_url":"https://api.github.com/repos/dkorolev/Current/contents/{+path}","compare_url":"https://api.github.com/repos/dkorolev/Current/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dkorolev/Current/merges","archive_url":"https://api.github.com/repos/dkorolev/Current/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dkorolev/Current/downloads","issues_url":"https://api.github.com/repos/dkorolev/Current/issues{/number}","pulls_url":"https://api.github.com/repos/dkorolev/Current/pulls{/number}","milestones_url":"https://api.github.com/repos/dkorolev/Current/milestones{/number}","notifications_url":"https://api.github.com/repos/dkorolev/Current/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dkorolev/Current/labels{/name}","releases_url":"https://api.github.com/repos/dkorolev/Current/releases{/id}","deployments_url":"https://api.github.com/repos/dkorolev/Current/deployments","created_at":"2014-12-06T06:52:51Z","updated_at":"2016-05-31T08:31:21Z","pushed_at":"2016-06-13T04:36:22Z","git_url":"git://github.com/dkorolev/Current.git","ssh_url":"git@github.com:dkorolev/Current.git","clone_url":"https://github.com/dkorolev/Current.git","svn_url":"https://github.com/dkorolev/Current","homepage":"http://dima.ai/static/current.pdf","size":20015,"stargazers_count":4,"watchers_count":4,"language":"C++","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":4,"default_branch":"master"}},"base":{"label":"C5T:master","ref":"master","sha":"6bca78e70363000dc1fa71d54b6dfc87030678e0","user":{"login":"C5T","id":12224789,"avatar_url":"https://avatars.githubusercontent.com/u/12224789?v=3","gravatar_id":"","url":"https://api.github.com/users/C5T","html_url":"https://github.com/C5T","followers_url":"https://api.github.com/users/C5T/followers","following_url":"https://api.github.com/users/C5T/following{/other_user}","gists_url":"https://api.github.com/users/C5T/gists{/gist_id}","starred_url":"https://api.github.com/users/C5T/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/C5T/subscriptions","organizations_url":"https://api.github.com/users/C5T/orgs","repos_url":"https://api.github.com/users/C5T/repos","events_url":"https://api.github.com/users/C5T/events{/privacy}","received_events_url":"https://api.github.com/users/C5T/received_events","type":"Organization","site_admin":false},"repo":{"id":27625425,"name":"Current","full_name":"C5T/Current","owner":{"login":"C5T","id":12224789,"avatar_url":"https://avatars.githubusercontent.com/u/12224789?v=3","gravatar_id":"","url":"https://api.github.com/users/C5T","html_url":"https://github.com/C5T","followers_url":"https://api.github.com/users/C5T/followers","following_url":"https://api.github.com/users/C5T/following{/other_user}","gists_url":"https://api.github.com/users/C5T/gists{/gist_id}","starred_url":"https://api.github.com/users/C5T/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/C5T/subscriptions","organizations_url":"https://api.github.com/users/C5T/orgs","repos_url":"https://api.github.com/users/C5T/repos","events_url":"https://api.github.com/users/C5T/events{/privacy}","received_events_url":"https://api.github.com/users/C5T/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/C5T/Current","description":"Data Infrastructure in a Box:","fork":false,"url":"https://api.github.com/repos/C5T/Current","forks_url":"https://api.github.com/repos/C5T/Current/forks","keys_url":"https://api.github.com/repos/C5T/Current/keys{/key_id}","collaborators_url":"https://api.github.com/repos/C5T/Current/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/C5T/Current/teams","hooks_url":"https://api.github.com/repos/C5T/Current/hooks","issue_events_url":"https://api.github.com/repos/C5T/Current/issues/events{/number}","events_url":"https://api.github.com/repos/C5T/Current/events","assignees_url":"https://api.github.com/repos/C5T/Current/assignees{/user}","branches_url":"https://api.github.com/repos/C5T/Current/branches{/branch}","tags_url":"https://api.github.com/repos/C5T/Current/tags","blobs_url":"https://api.github.com/repos/C5T/Current/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/C5T/Current/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/C5T/Current/git/refs{/sha}","trees_url":"https://api.github.com/repos/C5T/Current/git/trees{/sha}","statuses_url":"https://api.github.com/repos/C5T/Current/statuses/{sha}","languages_url":"https://api.github.com/repos/C5T/Current/languages","stargazers_url":"https://api.github.com/repos/C5T/Current/stargazers","contributors_url":"https://api.github.com/repos/C5T/Current/contributors","subscribers_url":"https://api.github.com/repos/C5T/Current/subscribers","subscription_url":"https://api.github.com/repos/C5T/Current/subscription","commits_url":"https://api.github.com/repos/C5T/Current/commits{/sha}","git_commits_url":"https://api.github.com/repos/C5T/Current/git/commits{/sha}","comments_url":"https://api.github.com/repos/C5T/Current/comments{/number}","issue_comment_url":"https://api.github.com/repos/C5T/Current/issues/comments{/number}","contents_url":"https://api.github.com/repos/C5T/Current/contents/{+path}","compare_url":"https://api.github.com/repos/C5T/Current/compare/{base}...{head}","merges_url":"https://api.github.com/repos/C5T/Current/merges","archive_url":"https://api.github.com/repos/C5T/Current/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/C5T/Current/downloads","issues_url":"https://api.github.com/repos/C5T/Current/issues{/number}","pulls_url":"https://api.github.com/repos/C5T/Current/pulls{/number}","milestones_url":"https://api.github.com/repos/C5T/Current/milestones{/number}","notifications_url":"https://api.github.com/repos/C5T/Current/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/C5T/Current/labels{/name}","releases_url":"https://api.github.com/repos/C5T/Current/releases{/id}","deployments_url":"https://api.github.com/repos/C5T/Current/deployments","created_at":"2014-12-06T06:52:23Z","updated_at":"2016-05-31T08:27:40Z","pushed_at":"2016-06-13T12:36:02Z","git_url":"git://github.com/C5T/Current.git","ssh_url":"git@github.com:C5T/Current.git","clone_url":"https://github.com/C5T/Current.git","svn_url":"https://github.com/C5T/Current","homepage":"http://dima.ai/static/current.pdf","size":11335,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"open_issues_count":35,"forks":11,"open_issues":35,"watchers":27,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/C5T/Current/pulls/528"},"html":{"href":"https://github.com/C5T/Current/pull/528"},"issue":{"href":"https://api.github.com/repos/C5T/Current/issues/528"},"comments":{"href":"https://api.github.com/repos/C5T/Current/issues/528/comments"},"review_comments":{"href":"https://api.github.com/repos/C5T/Current/pulls/528/comments"},"review_comment":{"href":"https://api.github.com/repos/C5T/Current/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/C5T/Current/pulls/528/commits"},"statuses":{"href":"https://api.github.com/repos/C5T/Current/statuses/bcb36982091b6b88bf44b7d08fbb2b31f599f515"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"mzhurovich","id":11226961,"avatar_url":"https://avatars.githubusercontent.com/u/11226961?v=3","gravatar_id":"","url":"https://api.github.com/users/mzhurovich","html_url":"https://github.com/mzhurovich","followers_url":"https://api.github.com/users/mzhurovich/followers","following_url":"https://api.github.com/users/mzhurovich/following{/other_user}","gists_url":"https://api.github.com/users/mzhurovich/gists{/gist_id}","starred_url":"https://api.github.com/users/mzhurovich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mzhurovich/subscriptions","organizations_url":"https://api.github.com/users/mzhurovich/orgs","repos_url":"https://api.github.com/users/mzhurovich/repos","events_url":"https://api.github.com/users/mzhurovich/events{/privacy}","received_events_url":"https://api.github.com/users/mzhurovich/received_events","type":"User","site_admin":false},"comments":2,"review_comments":2,"commits":6,"additions":1830,"deletions":465,"changed_files":35}}
{"actor":{"display_login":"mzhurovich"}}