{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker/issues/12031","labels_url":"https://api.github.com/repos/docker/docker/issues/12031/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker/issues/12031/comments","events_url":"https://api.github.com/repos/docker/docker/issues/12031/events","html_url":"https://github.com/docker/docker/pull/12031","id":65978119,"number":12031,"title":"Make build cache ignore mtime","user":{"login":"jlhawn","id":1441929,"avatar_url":"https://avatars.githubusercontent.com/u/1441929?v=3","gravatar_id":"","url":"https://api.github.com/users/jlhawn","html_url":"https://github.com/jlhawn","followers_url":"https://api.github.com/users/jlhawn/followers","following_url":"https://api.github.com/users/jlhawn/following{/other_user}","gists_url":"https://api.github.com/users/jlhawn/gists{/gist_id}","starred_url":"https://api.github.com/users/jlhawn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlhawn/subscriptions","organizations_url":"https://api.github.com/users/jlhawn/orgs","repos_url":"https://api.github.com/users/jlhawn/repos","events_url":"https://api.github.com/users/jlhawn/events{/privacy}","received_events_url":"https://api.github.com/users/jlhawn/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/docker/labels/status/2-needs-code-review","name":"status/2-needs-code-review","color":"fad8c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":33,"created_at":"2015-04-02T17:53:24Z","updated_at":"2015-05-22T01:54:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/docker/docker/pulls/12031","html_url":"https://github.com/docker/docker/pull/12031","diff_url":"https://github.com/docker/docker/pull/12031.diff","patch_url":"https://github.com/docker/docker/pull/12031.patch"},"body":"Build cache uses pgk/tarsum to get a digest of content which is\r\nADD'd or COPY'd during a build. The builder has always used v0 of\r\nthe tarsum algorithm which includes mtimes however since the whole\r\nfile is hashed anyway, the mtime doesn't really provide any extra\r\ninformation about whether the file has changed and many version\r\ncontrol tools like Git strip mtime from files when they are cloned.\r\n\r\nThis patch updates the build subsystem to use v1 of Tarsum which\r\nexplicitly ignores mtime when calculating a digest. Now ADD and\r\nCOPY will result in a cache hit if only the mtime and not the file\r\ncontents have changed.\r\n\r\nNOTE: Tarsum is NOT a meant to be a cryptographically secure hash\r\nfunction. It is a best-effort approach to determining if two sets of\r\nfilesystem content are different."},"comment":{"url":"https://api.github.com/repos/docker/docker/issues/comments/104473874","html_url":"https://github.com/docker/docker/pull/12031#issuecomment-104473874","issue_url":"https://api.github.com/repos/docker/docker/issues/12031","id":104473874,"user":{"login":"stevvooe","id":120601,"avatar_url":"https://avatars.githubusercontent.com/u/120601?v=3","gravatar_id":"","url":"https://api.github.com/users/stevvooe","html_url":"https://github.com/stevvooe","followers_url":"https://api.github.com/users/stevvooe/followers","following_url":"https://api.github.com/users/stevvooe/following{/other_user}","gists_url":"https://api.github.com/users/stevvooe/gists{/gist_id}","starred_url":"https://api.github.com/users/stevvooe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevvooe/subscriptions","organizations_url":"https://api.github.com/users/stevvooe/orgs","repos_url":"https://api.github.com/users/stevvooe/repos","events_url":"https://api.github.com/users/stevvooe/events{/privacy}","received_events_url":"https://api.github.com/users/stevvooe/received_events","type":"User","site_admin":false},"created_at":"2015-05-22T01:54:30Z","updated_at":"2015-05-22T01:54:30Z","body":"@cpuguy83 :+1: \r\n\r\nTaking _mtime_ into account should be considered a bug."}}