diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 70391a0f..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1,9 +0,0 @@ -include AUTHORS -include LICENSE -include README.md -include stor*/requirements*.txt -include stor/stor/default.cfg -include stor/stor/default.env -include stor/stor/stor-completion.bash -prune stor*/stor*/tests -exclude Makefile diff --git a/Makefile b/Makefile index 21656773..64527a14 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ # Makefile utilities for running tests and publishing the package -PACKAGE_NAMES:=stor/ stor_dx/ stor_swift/ stor_s3/ +PLUGIN_PACKAGES:=stor_dx/ stor_swift/ stor_s3/ +PACKAGE_NAMES:=$(PLUGIN_PACKAGES) stor/ TEST_OUTPUT?=nosetests.xml PIP_INDEX_URL=https://pypi.python.org/simple/ PYTHON?=$(shell which python) @@ -26,10 +27,11 @@ venv: $(VENV_ACTIVATE) $(VENV_ACTIVATE): stor*/requirements*.txt test -f $@ || virtualenv --python=$(PYTHON) $(VENV_DIR) $(WITH_VENV) echo "Within venv, running $$(python --version)" - $(WITH_VENV) pip install -r stor/requirements-setup.txt --index-url=${PIP_INDEX_URL} - $(WITH_VENV) ./run_all.sh 'pip install -e . --index-url=${PIP_INDEX_URL}' $(PACKAGE_NAMES) - $(WITH_VENV) pip install -r stor/requirements-dev.txt --index-url=${PIP_INDEX_URL} - $(WITH_VENV) pip install -r stor/requirements-docs.txt --index-url=${PIP_INDEX_URL} + $(WITH_VENV) pip install -r requirements-setup.txt --index-url=${PIP_INDEX_URL} + $(WITH_VENV) ./run_all.sh 'pip install -r requirements-test.txt --index-url=${PIP_INDEX_URL}' $(PACKAGE_NAMES) + $(WITH_VENV) ./run_all.sh 'pip install --no-deps -e . --index-url=${PIP_INDEX_URL}' $(PACKAGE_NAMES) + $(WITH_VENV) pip install -r requirements-dev.txt --index-url=${PIP_INDEX_URL} + $(WITH_VENV) pip install -r requirements-docs.txt --index-url=${PIP_INDEX_URL} touch $@ develop: venv @@ -52,6 +54,7 @@ endif clean: ./run_all.sh '$(PYTHON) setup.py clean' $(PACKAGE_NAMES) ./run_all.sh 'rm -rf *.egg*/' $(PACKAGE_NAMES) . + ./run_all.sh 'rm -rf .*egg*/' $(PACKAGE_NAMES) . ./run_all.sh 'rm -rf dist/' $(PACKAGE_NAMES) ./run_all.sh 'rm -rf build/' $(PACKAGE_NAMES) ./run_all.sh 'rm -rf __pycache__/' $(PACKAGE_NAMES) . @@ -118,7 +121,22 @@ tag: venv .PHONY: dist dist: venv fullname - $(WITH_VENV) ./run_all.sh 'python setup.py sdist' $(PACKAGE_NAMES) + # dynamically set the version in each requirements file to be the version of the package being installed + $(WITH_VENV) \ + ./run_all.sh 'cp requirements.txt requirements.txt.old' $(PLUGIN_PACKAGES); \ + for plugin in $(PLUGIN_PACKAGES); do \ + awk -v p=stor -v v=$(VERSION) '$$0 ~ p {gsub("$$","=="v,$$0)}1' < $$plugin/requirements.txt > $$plugin/requirements.txt.tmp ; \ + mv $$plugin/requirements.txt.tmp $$plugin/requirements.txt; \ + done; \ + ./run_all.sh 'python setup.py sdist' $(PLUGIN_PACKAGES); \ + ./run_all.sh 'mv requirements.txt.old requirements.txt' $(PLUGIN_PACKAGES); \ + cp stor/requirements.txt stor/requirements.txt.old; \ + for plugin in $(subst /,,$(PLUGIN_PACKAGES)); do \ + awk -v p=$$plugin -v v=$(VERSION) '$$0 ~ p {gsub("$$","=="v,$$0)}1' < stor/requirements.txt > stor/requirements.txt.tmp ; \ + mv stor/requirements.txt.tmp stor/requirements.txt; \ + done; \ + ./run_all.sh 'python setup.py sdist' stor/ ; \ + mv stor/requirements.txt.old stor/requirements.txt; \ .PHONY: publish-docs publish-docs: @@ -129,7 +147,7 @@ sdist: dist @echo "runs dist" .PHONY: version -version: +version: venv @echo ${VERSION} .PHONY: fullname diff --git a/stor/requirements-dev.txt b/requirements-dev.txt similarity index 100% rename from stor/requirements-dev.txt rename to requirements-dev.txt diff --git a/stor/requirements-docs.txt b/requirements-docs.txt similarity index 100% rename from stor/requirements-docs.txt rename to requirements-docs.txt diff --git a/stor/requirements-setup.txt b/requirements-setup.txt similarity index 100% rename from stor/requirements-setup.txt rename to requirements-setup.txt diff --git a/stor/requirements-test.txt b/stor/requirements-test.txt new file mode 100644 index 00000000..08c8b1b9 --- /dev/null +++ b/stor/requirements-test.txt @@ -0,0 +1,4 @@ +# have to explicitly ban certain requests versions to match keystoneauth1 package for swift +requests!=2.12.2,!=2.13.0,>=2.10.0 +six +python-swiftclient diff --git a/stor/requirements.txt b/stor/requirements.txt index 77d9f404..18dabc41 100644 --- a/stor/requirements.txt +++ b/stor/requirements.txt @@ -1,4 +1,7 @@ # have to explicitly ban certain requests versions to match keystoneauth1 package for swift requests!=2.12.2,!=2.13.0,>=2.10.0 six -python-swiftclient \ No newline at end of file +python-swiftclient +stor_dx +stor_swift +stor_s3 diff --git a/stor_dx/requirements-test.txt b/stor_dx/requirements-test.txt new file mode 100644 index 00000000..6f228e4e --- /dev/null +++ b/stor_dx/requirements-test.txt @@ -0,0 +1,4 @@ +cached-property +contextlib2 +dxpy>=0.265.0; python_version <= '2.7' +dxpy3; python_version > '3.0' diff --git a/stor_dx/requirements.txt b/stor_dx/requirements.txt index 6f228e4e..0ccbf1cf 100644 --- a/stor_dx/requirements.txt +++ b/stor_dx/requirements.txt @@ -2,3 +2,4 @@ cached-property contextlib2 dxpy>=0.265.0; python_version <= '2.7' dxpy3; python_version > '3.0' +stor diff --git a/stor_s3/requirements-test.txt b/stor_s3/requirements-test.txt new file mode 100644 index 00000000..6679508f --- /dev/null +++ b/stor_s3/requirements-test.txt @@ -0,0 +1 @@ +boto3>=1.4.0 diff --git a/stor_s3/requirements.txt b/stor_s3/requirements.txt index 6679508f..7d2fefa1 100644 --- a/stor_s3/requirements.txt +++ b/stor_s3/requirements.txt @@ -1 +1,2 @@ boto3>=1.4.0 +stor diff --git a/stor_swift/requirements-test.txt b/stor_swift/requirements-test.txt new file mode 100644 index 00000000..46e92463 --- /dev/null +++ b/stor_swift/requirements-test.txt @@ -0,0 +1 @@ +python-keystoneclient>=1.8.1 diff --git a/stor_swift/requirements.txt b/stor_swift/requirements.txt index 9d44a4e6..a40b9276 100644 --- a/stor_swift/requirements.txt +++ b/stor_swift/requirements.txt @@ -1 +1,2 @@ -python-keystoneclient>=1.8.1 \ No newline at end of file +python-keystoneclient>=1.8.1 +stor diff --git a/tox.ini b/tox.ini index 107b72c1..e3a01876 100644 --- a/tox.ini +++ b/tox.ini @@ -11,12 +11,12 @@ setenv = XUNIT_FILE=nosetests-{envname}.xml commands = rm -f .coverage - ./run_all.sh 'pip install -e .' stor/ stor_dx/ stor_swift/ stor_s3/ + ./run_all.sh 'pip install -e .' stor_dx/ stor_swift/ stor_s3/ stor/ py.test -v -rsx --cov-config .coveragerc --cov=stor/stor --cov=stor_swift/stor_swift --cov=stor_dx/stor_dx \ --cov=stor_s3/stor_s3 {posargs: stor/stor/tests} {posargs: stor_dx/stor_dx/tests} {posargs: stor_swift/stor_swift/tests} {posargs: stor_s3/stor_s3/tests} deps = - -r{toxinidir}/stor/requirements-dev.txt + -r{toxinidir}/requirements-dev.txt whitelist_externals = make bash nosetests