summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile14
-rw-r--r--setup.py9
2 files changed, 20 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 54eb2dc5ca..e775e15171 100644
--- a/Makefile
+++ b/Makefile
@@ -31,9 +31,10 @@ ASCII2MAN = rst2man.py $< $@
else
ASCII2MAN = @echo "ERROR: rst2man from docutils command is not installed but is required to build $(MANPAGES)" && exit 1
endif
-GENERATE_CLI = docs/bin/generate_man.py
PYTHON=python
+GENERATE_CLI = $(PYTHON) docs/bin/generate_man.py
+
SITELIB = $(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
# fetch version from project release.py as single source-of-truth
@@ -238,7 +239,14 @@ sdist_check:
.PHONY: sdist
sdist: sdist_check clean docs
- $(PYTHON) setup.py sdist
+ _ANSIBLE_SDIST_FROM_MAKEFILE=1 $(PYTHON) setup.py sdist
+
+# Official releases generate the changelog as the last commit before the release.
+# Snapshots shouldn't result in new checkins so the changelog is generated as
+# part of creating the tarball.
+.PHONY: snapshot
+sdist: sdist_check clean docs changelog
+ _ANSIBLE_SDIST_FROM_MAKEFILE=1 $(PYTHON) setup.py sdist
.PHONY: sdist_upload
sdist_upload: clean docs
@@ -246,7 +254,7 @@ sdist_upload: clean docs
.PHONY: changelog
changelog:
- packaging/release/changelogs/changelog.py release -vv && packaging/release/changelogs/changelog.py generate -vv
+ PYTHONPATH=./lib packaging/release/changelogs/changelog.py release -vv && PYTHONPATH=./lib packaging/release/changelogs/changelog.py generate -vv
.PHONY: rpmcommon
rpmcommon: sdist
diff --git a/setup.py b/setup.py
index b100f7ebd3..f9c85aab87 100644
--- a/setup.py
+++ b/setup.py
@@ -136,6 +136,15 @@ class SDistCommand(SDist):
SDist.run(self)
+ # Print warnings at the end because no one will see warnings before all the normal status
+ # output
+ if os.environ.get('_ANSIBLE_SDIST_FROM_MAKEFILE', False) != '1':
+ warnings.warn('When setup.py sdist is run from outside of the Makefile,'
+ ' the generated tarball may be incomplete. Use `make snapshot`'
+ ' to create a tarball from an arbitrary checkout or use'
+ ' `cd packaging/release && make release version=[..]` for official builds.',
+ RuntimeWarning)
+
def read_file(file_name):
"""Read file and return its contents."""