Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Add virtualenv build script for local development.

Add a configure script and Makefile that build out an isolated virtualenv environment with the packages needed for running p2pool. Useful for local development or automated deployment.
  • Loading branch information...
commit 0c2aa387aefdbda8293e3bfcd7673135201e6a82 1 parent c78dab1
Mark Friedenbach authored
View
5 .gitignore
@@ -5,3 +5,8 @@
/litecoin_scrypt/build/
/_trial_temp/
/_trial_temp.lock
+Makefile.local
+.cache/
+.pkg/
+.coverage
+build/
View
99 Makefile
@@ -0,0 +1,99 @@
+# === makefile ------------------------------------------------------------===
+
+ROOT=$(shell pwd)
+CACHE_ROOT=${ROOT}/.cache
+PKG_ROOT=${ROOT}/.pkg
+
+-include Makefile.local
+
+.PHONY: all
+all: ${PKG_ROOT}/.stamp-h
+
+.PHONY: check
+check: all
+ "${PKG_ROOT}"/bin/coverage run "${PKG_ROOT}"/bin/trial p2pool
+ "${PKG_ROOT}"/bin/coverage xml -o build/report/coverage.xml
+
+.PHONY: run
+run: all
+ "${PKG_ROOT}"/bin/python run_p2pool.py
+
+.PHONY: shell
+shell: all
+ "${PKG_ROOT}"/bin/ipython
+
+.PHONY: mostlyclean
+mostlyclean:
+ -rm -rf build
+ -rm -rf .coverage
+
+.PHONY: clean
+clean: mostlyclean
+ -rm -rf "${PKG_ROOT}"
+
+.PHONY: distclean
+distclean: clean
+ -rm -rf "${CACHE_ROOT}"
+
+.PHONY: maintainer-clean
+maintainer-clean: distclean
+ @echo 'This command is intended for maintainers to use; it'
+ @echo 'deletes files that may need special tools to rebuild.'
+
+.PHONY: dist
+dist:
+
+# ===--------------------------------------------------------------------===
+
+${CACHE_ROOT}/virtualenv/virtualenv-1.8.2.tar.gz:
+ mkdir -p ${CACHE_ROOT}/virtualenv
+ sh -c "cd ${CACHE_ROOT}/virtualenv && curl -O http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.8.2.tar.gz"
+
+${PKG_ROOT}/.stamp-h: conf/requirements*.pip ${CACHE_ROOT}/virtualenv/virtualenv-1.8.2.tar.gz
+ # Because build and run-time dependencies are not thoroughly tracked,
+ # it is entirely possible that rebuilding the development environment
+ # on top of an existing one could result in a broken build. For the
+ # sake of consistency and preventing unnecessary, difficult-to-debug
+ # problems, the entire development environment is rebuilt from scratch
+ # everytime this make target is selected.
+ ${MAKE} clean
+
+ # The ``${PKG_ROOT}`` directory, if it exists, is removed by the
+ # ``clean`` target. The PyPI cache is nonexistant if this is a freshly
+ # checked-out repository, or if the ``distclean`` target has been run.
+ # This might cause problems with build scripts executed later which
+ # assume their existence, so they are created now if they don't
+ # already exist.
+ mkdir -p "${PKG_ROOT}"
+ mkdir -p "${CACHE_ROOT}"/pypi
+
+ # ``virtualenv`` is used to create a separate Python installation for
+ # this project in ``${PKG_ROOT}``.
+ tar \
+ -C "${CACHE_ROOT}"/virtualenv --gzip \
+ -xf "${CACHE_ROOT}"/virtualenv/virtualenv-1.8.2.tar.gz
+ python "${CACHE_ROOT}"/virtualenv/virtualenv-1.8.2/virtualenv.py \
+ --clear \
+ --distribute \
+ --never-download \
+ --prompt="(p2pool) " \
+ "${PKG_ROOT}"
+ -rm -rf "${CACHE_ROOT}"/virtualenv/virtualenv-1.8.2
+
+ # readline is installed here to get around a bug on Mac OS X which is
+ # causing readline to not build properly if installed from pip.
+ "${PKG_ROOT}"/bin/easy_install readline
+
+ # pip is used to install Python dependencies for this project.
+ for reqfile in conf/requirements*.pip; do \
+ "${PKG_ROOT}"/bin/python "${PKG_ROOT}"/bin/pip install \
+ --download-cache="${CACHE_ROOT}"/pypi \
+ -r $$reqfile; \
+ done
+
+ # All done!
+ touch "${PKG_ROOT}"/.stamp-h
+
+# ===--------------------------------------------------------------------===
+# End of File
+# ===--------------------------------------------------------------------===
View
3  conf/requirements.development.pip
@@ -0,0 +1,3 @@
+ipdb==0.7
+ipython==0.13.1
+readline>=6.2.4.1
View
2  conf/requirements.production.pip
@@ -0,0 +1,2 @@
+Twisted>=12.2.0
+argparse>=1.2.1
View
3  conf/requirements.testing.pip
@@ -0,0 +1,3 @@
+coverage==3.5.3
+unittest-xml-reporting==1.4.1
+unittest2==0.5.1
View
9 configure
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# === configure -----------------------------------------------------------===
+
+touch Makefile.local
+
+# ===--------------------------------------------------------------------===
+# End of File
+# ===--------------------------------------------------------------------===
Please sign in to comment.
Something went wrong with that request. Please try again.