summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2020-05-01 16:02:32 +0200
committerGitHub <noreply@github.com>2020-05-01 16:02:32 +0200
commit200c56667fd8446056ec365b95ea2dccdd0a9a1b (patch)
treeb186327421c686f4e6b5c7b57d0d761860952468
parentac0fed6def060ac1b2d72b35b0a653b4df137366 (diff)
parent03e916468a46429b38485297b719308c75b626c5 (diff)
downloadsetuptools-scm-200c56667fd8446056ec365b95ea2dccdd0a9a1b.tar.gz
Merge pull request #408 from con-f-use/master
Change ScmVersion.time to UTC
-rw-r--r--CHANGELOG.rst5
-rw-r--r--README.rst2
-rw-r--r--src/setuptools_scm/utils.py17
-rw-r--r--src/setuptools_scm/version.py4
4 files changed, 26 insertions, 2 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 278abba..8a49e69 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,3 +1,8 @@
+v3.5.1
+======
+
+* use Coordinated Universal Time (UTC)
+
v3.5.0
======
diff --git a/README.rst b/README.rst
index 3a23414..c6be06c 100644
--- a/README.rst
+++ b/README.rst
@@ -473,6 +473,8 @@ Version number construction
Configures how the local part of a version is rendered given a
``setuptools_scm.version.ScmVersion`` instance and should return a string
representing the local version.
+ Dates and times are in Coordinated Universal Time (UTC), because as part
+ of the version, they should be location independent.
Available implementations:
diff --git a/src/setuptools_scm/utils.py b/src/setuptools_scm/utils.py
index 15ca83e..c31007a 100644
--- a/src/setuptools_scm/utils.py
+++ b/src/setuptools_scm/utils.py
@@ -11,6 +11,7 @@ import os
import io
import platform
import traceback
+import datetime
DEBUG = bool(os.environ.get("SETUPTOOLS_SCM_DEBUG"))
@@ -120,6 +121,22 @@ def data_from_mime(path):
return data
+class UTC(datetime.tzinfo):
+ _ZERO = datetime.timedelta(0)
+
+ def utcoffset(self, dt):
+ return self._ZERO
+
+ def tzname(self, dt):
+ return "UTC"
+
+ def dst(self, dt):
+ return self._ZERO
+
+
+utc = UTC()
+
+
def function_has_arg(fn, argname):
assert inspect.isfunction(fn)
diff --git a/src/setuptools_scm/version.py b/src/setuptools_scm/version.py
index 5c6f4a6..aa4bd49 100644
--- a/src/setuptools_scm/version.py
+++ b/src/setuptools_scm/version.py
@@ -5,7 +5,7 @@ import re
from itertools import chain, repeat, islice
from .config import Configuration
-from .utils import trace, string_types
+from .utils import trace, string_types, utc
from pkg_resources import iter_entry_points
@@ -141,7 +141,7 @@ class ScmVersion(object):
distance = 0
self.distance = distance
self.node = node
- self.time = datetime.datetime.now()
+ self.time = datetime.datetime.now(utc)
self._extra = kw
self.dirty = dirty
self.preformatted = preformatted