{"action":"created","issue":{"url":"https://api.github.com/repos/learningequality/ka-lite/issues/2852","labels_url":"https://api.github.com/repos/learningequality/ka-lite/issues/2852/labels{/name}","comments_url":"https://api.github.com/repos/learningequality/ka-lite/issues/2852/comments","events_url":"https://api.github.com/repos/learningequality/ka-lite/issues/2852/events","html_url":"https://github.com/learningequality/ka-lite/pull/2852","id":54152773,"number":2852,"title":"Availability stamping","user":{"login":"rtibbles","id":1680573,"avatar_url":"https://avatars.githubusercontent.com/u/1680573?v=3","gravatar_id":"","url":"https://api.github.com/users/rtibbles","html_url":"https://github.com/rtibbles","followers_url":"https://api.github.com/users/rtibbles/followers","following_url":"https://api.github.com/users/rtibbles/following{/other_user}","gists_url":"https://api.github.com/users/rtibbles/gists{/gist_id}","starred_url":"https://api.github.com/users/rtibbles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtibbles/subscriptions","organizations_url":"https://api.github.com/users/rtibbles/orgs","repos_url":"https://api.github.com/users/rtibbles/repos","events_url":"https://api.github.com/users/rtibbles/events{/privacy}","received_events_url":"https://api.github.com/users/rtibbles/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"aronasorman","id":191955,"avatar_url":"https://avatars.githubusercontent.com/u/191955?v=3","gravatar_id":"","url":"https://api.github.com/users/aronasorman","html_url":"https://github.com/aronasorman","followers_url":"https://api.github.com/users/aronasorman/followers","following_url":"https://api.github.com/users/aronasorman/following{/other_user}","gists_url":"https://api.github.com/users/aronasorman/gists{/gist_id}","starred_url":"https://api.github.com/users/aronasorman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aronasorman/subscriptions","organizations_url":"https://api.github.com/users/aronasorman/orgs","repos_url":"https://api.github.com/users/aronasorman/repos","events_url":"https://api.github.com/users/aronasorman/events{/privacy}","received_events_url":"https://api.github.com/users/aronasorman/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/learningequality/ka-lite/milestones/37","labels_url":"https://api.github.com/repos/learningequality/ka-lite/milestones/37/labels","id":656433,"number":37,"title":"0.13.x","description":"- bootstrap for everything!\r\n- i18n beta languages\r\n- lots of fixes","creator":{"login":"aronasorman","id":191955,"avatar_url":"https://avatars.githubusercontent.com/u/191955?v=3","gravatar_id":"","url":"https://api.github.com/users/aronasorman","html_url":"https://github.com/aronasorman","followers_url":"https://api.github.com/users/aronasorman/followers","following_url":"https://api.github.com/users/aronasorman/following{/other_user}","gists_url":"https://api.github.com/users/aronasorman/gists{/gist_id}","starred_url":"https://api.github.com/users/aronasorman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aronasorman/subscriptions","organizations_url":"https://api.github.com/users/aronasorman/orgs","repos_url":"https://api.github.com/users/aronasorman/repos","events_url":"https://api.github.com/users/aronasorman/events{/privacy}","received_events_url":"https://api.github.com/users/aronasorman/received_events","type":"User","site_admin":false},"open_issues":33,"closed_issues":136,"state":"open","created_at":"2014-05-12T16:58:11Z","updated_at":"2015-01-15T00:41:02Z","due_on":"2015-01-31T08:00:00Z","closed_at":null},"comments":9,"created_at":"2015-01-13T05:32:35Z","updated_at":"2015-01-15T05:57:51Z","closed_at":"2015-01-14T23:23:50Z","pull_request":{"url":"https://api.github.com/repos/learningequality/ka-lite/pulls/2852","html_url":"https://github.com/learningequality/ka-lite/pull/2852","diff_url":"https://github.com/learningequality/ka-lite/pull/2852.diff","patch_url":"https://github.com/learningequality/ka-lite/pull/2852.patch"},"body":"This is an MVP fix for #2530 \r\n\r\nSummary of changes:\r\n* Burns down old code\r\n* Refactors front and back end code to make Videos part of Content\r\n* Stamps content and dubbed content urls at server start\r\n* Stamps content availability on topic tree at server start\r\n* Creates new API endpoint for topic_tree data\r\n* Removes a bunch of code that is no longer in use\r\n* Invalidates the cache at video download\r\n* Disk caching of annotated json\r\n\r\nNot here:\r\n* Implementing UUID based file system as per #2857 - will be addressed in a separate PR.\r\n\r\n@jamalex @aronasorman @benjaoming would appreciate a look through - either to merge now and continue iterating after, or as a starting point for further iteration."},"comment":{"url":"https://api.github.com/repos/learningequality/ka-lite/issues/comments/70043283","html_url":"https://github.com/learningequality/ka-lite/pull/2852#issuecomment-70043283","issue_url":"https://api.github.com/repos/learningequality/ka-lite/issues/2852","id":70043283,"user":{"login":"benjaoming","id":374612,"avatar_url":"https://avatars.githubusercontent.com/u/374612?v=3","gravatar_id":"","url":"https://api.github.com/users/benjaoming","html_url":"https://github.com/benjaoming","followers_url":"https://api.github.com/users/benjaoming/followers","following_url":"https://api.github.com/users/benjaoming/following{/other_user}","gists_url":"https://api.github.com/users/benjaoming/gists{/gist_id}","starred_url":"https://api.github.com/users/benjaoming/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjaoming/subscriptions","organizations_url":"https://api.github.com/users/benjaoming/orgs","repos_url":"https://api.github.com/users/benjaoming/repos","events_url":"https://api.github.com/users/benjaoming/events{/privacy}","received_events_url":"https://api.github.com/users/benjaoming/received_events","type":"User","site_admin":false},"created_at":"2015-01-15T05:57:51Z","updated_at":"2015-01-15T05:57:51Z","body":"@jamalex @aronasorman \r\n\r\n> Cool. I guess it might not properly invalidate in contexts where Apache etc are being used, though, depending on the worker model. Thoughts, @benjaoming?\r\n\r\nYeah, the assumption of shared state does not hold at all. Not in Apache, nor on other application servers, too. So you can't invalidate cache by setting a static variable, because if the next hit on the cache happens in another process, then it won't see the request to renew the cache."}}