{"action":"created","issue":{"url":"https://api.github.com/repos/matplotlib/matplotlib/issues/6597","repository_url":"https://api.github.com/repos/matplotlib/matplotlib","labels_url":"https://api.github.com/repos/matplotlib/matplotlib/issues/6597/labels{/name}","comments_url":"https://api.github.com/repos/matplotlib/matplotlib/issues/6597/comments","events_url":"https://api.github.com/repos/matplotlib/matplotlib/issues/6597/events","html_url":"https://github.com/matplotlib/matplotlib/pull/6597","id":160768459,"number":6597,"title":"Reproducible PS/PDF output (master)","user":{"login":"JojoBoulix","id":7106362,"avatar_url":"https://avatars.githubusercontent.com/u/7106362?v=3","gravatar_id":"","url":"https://api.github.com/users/JojoBoulix","html_url":"https://github.com/JojoBoulix","followers_url":"https://api.github.com/users/JojoBoulix/followers","following_url":"https://api.github.com/users/JojoBoulix/following{/other_user}","gists_url":"https://api.github.com/users/JojoBoulix/gists{/gist_id}","starred_url":"https://api.github.com/users/JojoBoulix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JojoBoulix/subscriptions","organizations_url":"https://api.github.com/users/JojoBoulix/orgs","repos_url":"https://api.github.com/users/JojoBoulix/repos","events_url":"https://api.github.com/users/JojoBoulix/events{/privacy}","received_events_url":"https://api.github.com/users/JojoBoulix/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/matplotlib/matplotlib/labels/needs_review","name":"needs_review","color":"009800"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/matplotlib/matplotlib/milestones/12","html_url":"https://github.com/matplotlib/matplotlib/milestones/2.1%20(next%20point%20release)","labels_url":"https://api.github.com/repos/matplotlib/matplotlib/milestones/12/labels","id":534144,"number":12,"title":"2.1 (next point release)","description":"Next feature release.\r\n\r\nBig ticket items:\r\n\r\n - MEP 22/27\r\n - traitlets","creator":{"login":"tacaswell","id":199813,"avatar_url":"https://avatars.githubusercontent.com/u/199813?v=3","gravatar_id":"","url":"https://api.github.com/users/tacaswell","html_url":"https://github.com/tacaswell","followers_url":"https://api.github.com/users/tacaswell/followers","following_url":"https://api.github.com/users/tacaswell/following{/other_user}","gists_url":"https://api.github.com/users/tacaswell/gists{/gist_id}","starred_url":"https://api.github.com/users/tacaswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tacaswell/subscriptions","organizations_url":"https://api.github.com/users/tacaswell/orgs","repos_url":"https://api.github.com/users/tacaswell/repos","events_url":"https://api.github.com/users/tacaswell/events{/privacy}","received_events_url":"https://api.github.com/users/tacaswell/received_events","type":"User","site_admin":false},"open_issues":515,"closed_issues":420,"state":"open","created_at":"2014-01-13T03:21:09Z","updated_at":"2016-07-07T13:50:27Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2016-06-16T21:45:21Z","updated_at":"2016-07-08T01:24:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/matplotlib/matplotlib/pulls/6597","html_url":"https://github.com/matplotlib/matplotlib/pull/6597","diff_url":"https://github.com/matplotlib/matplotlib/pull/6597.diff","patch_url":"https://github.com/matplotlib/matplotlib/pull/6597.patch"},"body":"This is a rebase of #6595 to the master branch.\r\n\r\nSeveral software packages use matplotlib in their building process (mainly to produce PS or PDF documents). To make their build reproducible, it would be great to make matplotlib output reproducible.\r\n\r\nTo allow reproducible PS and PDF output:\r\n* honour SOURCE_DATE_EPOCH for timestamps in PS and PDF files.\r\n  See https://reproducible-builds.org/specs/source-date-epoch/\r\n* get keys sorted so that hatch patterns, images and markers are included with\r\n  a reproducible order in the PDF file. Another solution is to sort `self.hatchPatterns` in `writeHatches` (and similar ordering in `writeImages` and `writeMarkers`), but this consumes more memory. \r\n\r\nThis patch has been submitted in debian bug [#827361](https://bugs.debian.org/827361)\r\n\r\nSee also https://reproducible-builds.org/"},"comment":{"url":"https://api.github.com/repos/matplotlib/matplotlib/issues/comments/231253006","html_url":"https://github.com/matplotlib/matplotlib/pull/6597#issuecomment-231253006","issue_url":"https://api.github.com/repos/matplotlib/matplotlib/issues/6597","id":231253006,"user":{"login":"tacaswell","id":199813,"avatar_url":"https://avatars.githubusercontent.com/u/199813?v=3","gravatar_id":"","url":"https://api.github.com/users/tacaswell","html_url":"https://github.com/tacaswell","followers_url":"https://api.github.com/users/tacaswell/followers","following_url":"https://api.github.com/users/tacaswell/following{/other_user}","gists_url":"https://api.github.com/users/tacaswell/gists{/gist_id}","starred_url":"https://api.github.com/users/tacaswell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tacaswell/subscriptions","organizations_url":"https://api.github.com/users/tacaswell/orgs","repos_url":"https://api.github.com/users/tacaswell/repos","events_url":"https://api.github.com/users/tacaswell/events{/privacy}","received_events_url":"https://api.github.com/users/tacaswell/received_events","type":"User","site_admin":false},"created_at":"2016-07-08T01:24:15Z","updated_at":"2016-07-08T01:24:15Z","body":"```\r\n.SK...\r\n======================================================================\r\nFAIL: Test SOURCE_DATE_EPOCH support for PS output\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n  File \"C:\\Miniconda-x64\\envs\\test-environment\\lib\\site-packages\\nose\\case.py\", line 197, in runTest\r\n    self.test(*self.arg)\r\n  File \"c:\\projects\\matplotlib\\lib\\matplotlib\\testing\\decorators.py\", line 152, in wrapped_callable\r\n    func(*args, **kwargs)\r\n  File \"c:\\projects\\matplotlib\\lib\\matplotlib\\tests\\test_backend_ps.py\", line 186, in test_source_date_epoch\r\n    _test_source_date_epoch(\"ps\", b\"%%CreationDate: Sat Jan  1 00:00:00 2000\")\r\n  File \"c:\\projects\\matplotlib\\lib\\matplotlib\\testing\\determinism.py\", line 122, in _test_source_date_epoch\r\n    assert string in buff\r\nAssertionError\r\n--------------------------------------------------------------------\r\n```\r\n\r\nThese failures on appveyor look real."}}
{"actor":{"display_login":"tacaswell"}}