summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/1427.change.rst1
-rw-r--r--setuptools/command/egg_info.py1
-rw-r--r--setuptools/tests/test_egg_info.py17
3 files changed, 19 insertions, 0 deletions
diff --git a/changelog.d/1427.change.rst b/changelog.d/1427.change.rst
new file mode 100644
index 00000000..86260235
--- /dev/null
+++ b/changelog.d/1427.change.rst
@@ -0,0 +1 @@
+Set timestamp of ``.egg-info`` directory whenever ``egg_info`` command is run.
diff --git a/setuptools/command/egg_info.py b/setuptools/command/egg_info.py
index 5fd6c888..a3cd35dc 100644
--- a/setuptools/command/egg_info.py
+++ b/setuptools/command/egg_info.py
@@ -281,6 +281,7 @@ class egg_info(InfoCommon, Command):
def run(self):
self.mkpath(self.egg_info)
+ os.utime(self.egg_info, None)
installer = self.distribution.fetch_build_egg
for ep in iter_entry_points('egg_info.writers'):
ep.require(installer=installer)
diff --git a/setuptools/tests/test_egg_info.py b/setuptools/tests/test_egg_info.py
index 1a100266..c7a08295 100644
--- a/setuptools/tests/test_egg_info.py
+++ b/setuptools/tests/test_egg_info.py
@@ -1,9 +1,11 @@
+import datetime
import sys
import ast
import os
import glob
import re
import stat
+import time
from setuptools.command.egg_info import egg_info, manifest_maker
from setuptools.dist import Distribution
@@ -146,6 +148,21 @@ class TestEggInfo:
]
assert sorted(actual) == expected
+ def test_rebuilt(self, tmpdir_cwd, env):
+ """Ensure timestamps are updated when the command is re-run."""
+ self._create_project()
+
+ self._run_egg_info_command(tmpdir_cwd, env)
+ timestamp_a = os.path.getmtime('foo.egg-info')
+
+ # arbitrary sleep just to handle *really* fast systems
+ time.sleep(.001)
+
+ self._run_egg_info_command(tmpdir_cwd, env)
+ timestamp_b = os.path.getmtime('foo.egg-info')
+
+ assert timestamp_a != timestamp_b
+
def test_manifest_template_is_read(self, tmpdir_cwd, env):
self._create_project()
build_files({