Package: python3-nbclient
Version: 0.8.0-1
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: timestamps

By default, nbclient includes timestamps in its output, which makes packages built with it (e.g. python-pandas-doc) unreproducible.

It provides a record_timing option to turn this off, but this didn't work when I tried to use it (possibly it got dropped somewhere in the chain between the source notebook and nbclient?)
https://salsa.debian.org/science-team/pandas/-/commit/b89ff25fee3b67f2149c266068295b4875ea5e07#72770524feb6622ddedb14db1cf0160322cb455a_115_123
https://salsa.debian.org/science-team/pandas/-/jobs/4613211
and we also generally prefer modifying the tool to accept the standard "be reproducible" setting, instead of modifying every package that uses that tool to set tool-specific "be reproducible" settings.

This might fix it, but has NOT been tested. (I chose to disable the timestamps when SOURCE_DATE_EPOCH is set, instead of setting them to SOURCE_DATE_EPOCH, because they are plausibly intended for measuring how long the code took to run, for which I'd rather have no answer than a wrong answer of 0.)

--- a/nbclient/client.py
+++ b/nbclient/client.py
@@ -4,6 +4,7 @@ import atexit
 import base64
 import collections
 import datetime
+import os
 import re
 import signal
 import typing as t
@@ -222,7 +223,7 @@ class NotebookClient(LoggingConfigurable
     ).tag(config=True)

     record_timing: bool = Bool(
-        True,
+        False if os.getenv("SOURCE_DATE_EPOCH") else True,
         help=dedent(
             """
If ``True`` (default), then the execution timings of each cell will

Reply via email to