{"action":"created","issue":{"url":"https://api.github.com/repos/puli/repository/issues/54","labels_url":"https://api.github.com/repos/puli/repository/issues/54/labels{/name}","comments_url":"https://api.github.com/repos/puli/repository/issues/54/comments","events_url":"https://api.github.com/repos/puli/repository/issues/54/events","html_url":"https://github.com/puli/repository/pull/54","id":108238606,"number":54,"title":"[WIP] Implement repository versioning","user":{"login":"tgalopin","id":1651494,"avatar_url":"https://avatars.githubusercontent.com/u/1651494?v=3","gravatar_id":"","url":"https://api.github.com/users/tgalopin","html_url":"https://github.com/tgalopin","followers_url":"https://api.github.com/users/tgalopin/followers","following_url":"https://api.github.com/users/tgalopin/following{/other_user}","gists_url":"https://api.github.com/users/tgalopin/gists{/gist_id}","starred_url":"https://api.github.com/users/tgalopin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgalopin/subscriptions","organizations_url":"https://api.github.com/users/tgalopin/orgs","repos_url":"https://api.github.com/users/tgalopin/repos","events_url":"https://api.github.com/users/tgalopin/events{/privacy}","received_events_url":"https://api.github.com/users/tgalopin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-25T00:15:20Z","updated_at":"2015-09-25T05:55:43Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/puli/repository/pulls/54","html_url":"https://github.com/puli/repository/pull/54","diff_url":"https://github.com/puli/repository/pull/54.diff","patch_url":"https://github.com/puli/repository/pull/54.patch"},"body":"Fix https://github.com/puli/issues/issues/90.\r\n\r\nThis implements a ChangeStream object shared by all the repositories to log resources changes.\r\n\r\nThis PR depends on https://github.com/puli/repository/pull/52 as this introduces a new type of resource and it needs to be handled by the ChangeStream.\r\n\r\nA few notes about this PR:\r\n\r\n- As discussed in https://github.com/puli/issues/issues/90, I create a log stack for resources and store these logs as native PHP types (array of strings) in order to let the garbage collector clear the old resource object.\r\n- I think the technique I'm using (creating arrays) is more performant than serializing / unserializing resources but I didn't test, what do you think?\r\n- I created an optionnal constructor parameter for the ChangeStream in each repository. This way, developers who don't need the changes log won't enable it and the performances won't be affected at all.\r\n\r\nThis PR is for the moment a work in progress."},"comment":{"url":"https://api.github.com/repos/puli/repository/issues/comments/143135664","html_url":"https://github.com/puli/repository/pull/54#issuecomment-143135664","issue_url":"https://api.github.com/repos/puli/repository/issues/54","id":143135664,"user":{"login":"webmozart","id":176399,"avatar_url":"https://avatars.githubusercontent.com/u/176399?v=3","gravatar_id":"","url":"https://api.github.com/users/webmozart","html_url":"https://github.com/webmozart","followers_url":"https://api.github.com/users/webmozart/followers","following_url":"https://api.github.com/users/webmozart/following{/other_user}","gists_url":"https://api.github.com/users/webmozart/gists{/gist_id}","starred_url":"https://api.github.com/users/webmozart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webmozart/subscriptions","organizations_url":"https://api.github.com/users/webmozart/orgs","repos_url":"https://api.github.com/users/webmozart/repos","events_url":"https://api.github.com/users/webmozart/events{/privacy}","received_events_url":"https://api.github.com/users/webmozart/received_events","type":"User","site_admin":false},"created_at":"2015-09-25T05:55:43Z","updated_at":"2015-09-25T05:55:43Z","body":"I will review this as soon as #52 is merged."}}