diff options
| author | Alexis Metaireau <alexis@notmyidea.org> | 2017-03-29 00:03:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-29 00:03:25 +0200 |
| commit | 1b94f6738a1cfc117e2af78afdafdfeff84aecd0 (patch) | |
| tree | 2d11831527231ee06eb6b4b3be168d6fdba203aa | |
| parent | acbe2c10d8fb86ef04af60fc257ce4d51ffee45c (diff) | |
| parent | aaf9f9f23754dd97af0dc9daa5215d42f8017d68 (diff) | |
| download | ihatemoney-mirror-1b94f6738a1cfc117e2af78afdafdfeff84aecd0.zip ihatemoney-mirror-1b94f6738a1cfc117e2af78afdafdfeff84aecd0.tar.gz ihatemoney-mirror-1b94f6738a1cfc117e2af78afdafdfeff84aecd0.tar.bz2 | |
Merge pull request #186 from spiral-project/tox
Tox support
| -rw-r--r-- | .gitignore | 4 | ||||
| -rw-r--r-- | .travis.yml | 14 | ||||
| -rw-r--r-- | CHANGELOG.rst | 2 | ||||
| -rw-r--r-- | Makefile | 39 | ||||
| -rw-r--r-- | Procfile | 1 | ||||
| -rw-r--r-- | README.rst | 62 | ||||
| -rw-r--r-- | budget/run.py | 4 | ||||
| -rw-r--r-- | dev-requirements.txt | 2 | ||||
| -rw-r--r-- | docs/requirements.txt | 3 | ||||
| -rw-r--r-- | fabfile.py | 13 | ||||
| -rw-r--r-- | requirements.txt (renamed from budget/requirements.txt) | 0 | ||||
| -rw-r--r-- | tox.ini | 19 |
12 files changed, 102 insertions, 61 deletions
@@ -1,7 +1,11 @@ budget/budget.db +budget.db budget/memory budget/settings.py *.pyc *.egg-info dist .venv +docs/_build/ +.tox +dist diff --git a/.travis.yml b/.travis.yml index 8ab4eba..8536228 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: python -python: - - "2.7" - - "3.5" -# command to install dependencies -install: "pip install -r budget/requirements.txt" -# command to run tests -script: cd budget && python tests.py +script: tox +install: + - pip install tox +env: + - TOXENV=py27 + - TOXENV=py35 + - TOXENV=docs diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a3c05f0..a8a8083 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,7 +3,7 @@ Changelog This document describes changes between each past release. -1.0.0 (unreleased) +1.0.0 (2017-03-21) ------------------ - First release of the project. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1ac7e19 --- /dev/null +++ b/Makefile @@ -0,0 +1,39 @@ +VIRTUALENV = virtualenv --python=python3 +SPHINX_BUILDDIR = docs/_build +VENV := $(shell echo $${VIRTUAL_ENV-.venv}) +PYTHON = $(VENV)/bin/python3 +DEV_STAMP = $(VENV)/.dev_env_installed.stamp +DOC_STAMP = $(VENV)/.doc_env_installed.stamp +INSTALL_STAMP = $(VENV)/.install.stamp +TEMPDIR := $(shell mktemp -d) + +all: install +install: $(INSTALL_STAMP) +$(INSTALL_STAMP): + $(VENV)/bin/pip install -U pip + $(VENV)/bin/pip install -r requirements.txt + touch $(INSTALL_STAMP) + +virtualenv: $(PYTHON) +$(PYTHON): + $(VIRTUALENV) $(VENV) + +install-dev: $(INSTALL_STAMP) $(DEV_STAMP) +$(DEV_STAMP): $(PYTHON) dev-requirements.txt + $(VENV)/bin/pip install -Ur dev-requirements.txt + touch $(DEV_STAMP) + +serve: $(INSTALL_STAMP) + cd budget; ../$(PYTHON) run.py + +test: $(DEV_STAMP) + $(VENV)/bin/tox + +release: $(DEV_STAMP) + $(VENV)/bin/fullrelease + +build-requirements: + $(VIRTUALENV) $(TEMPDIR) + $(TEMPDIR)/bin/pip install -U pip + $(TEMPDIR)/bin/pip install -Ue "." + $(TEMPDIR)/bin/pip freeze | grep -v -- '-e' > requirements.txt diff --git a/Procfile b/Procfile deleted file mode 100644 index d147525..0000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: python budget/run.py @@ -16,13 +16,9 @@ LICENSE for more details). Make it run! ============ -To make it run, you just have to do something like:: +To make it run, you just have to do use the serve command:: - $ virtualenv venv - $ source venv/bin/activate - $ pip install -r budget/requirements.txt - $ cd budget - $ python run.py + $ make serve It is also better to actually turn the debugging mode on when you're developing. You can create a `settings.py` file in the `budget` directory, with @@ -37,11 +33,7 @@ You can also set the `TESTING` flag to `True` so no mails are sent Deploy it ========= -To deploy it, I'm using gunicorn and supervisord:: - - $ virtualenv venv - $ source venv/bin/activate - $ pip install -r requirements.txt +To deploy it, I'm using gunicorn and supervisord. 1. Add the lines in conf/supervisord.conf to your supervisord.conf file. **adapt them to your paths!** @@ -58,9 +50,8 @@ e.g: APPLICATION_ROOT='/budget' - -How about the REST API? -======================= +The REST API? +============= Yep, you're right, there is a REST API with this. Head to the `api documentation <https://ihatemoney.readthedocs.io/en/latest/api.html>`_ to know more. @@ -68,22 +59,22 @@ documentation <https://ihatemoney.readthedocs.io/en/latest/api.html>`_ to know m How to contribute ================= +You would like to contribute? First, thanks a bunch! This project is a small +project with just a few people behind it, so any help is appreciated! + There are different ways to help us, regarding if you are a designer, -a developer or just an user. +a developer or an user. As a developer -------------- -The best way to contribute code is to write it and to make a pull request on +If you want to contribute code, you can write it and then issue a pull request on github. Please, think about updating and running the tests before asking for a pull request as it will help us to maintain the code clean and running. To do so:: - $ workon budget - (budget) $ python tests.py - -before pushing anything to master :) + $ make tests As a designer / Front-end developer ----------------------------------- @@ -95,36 +86,31 @@ know how to implement them, feel free to fork and make a pull request. End-user -------- -You just wanted to have a look at the application and found a bug? Please tell -us and go fill a new issue: -https://github.com/spiral-project/ihatemoney/issues +You are using the application and found a bug? You have some ideas about how to +improve the project? Please tell us [by filling a new issue](https://github.com/spiral-project/ihatemoney/issues). +Or, if you prefer, you can send me an email to `alexis@notmyidea.org` and I will +update the issue tracker with your feedback. + +Thanks again! How to release? =============== -In order to prepare a new release, we are following the following steps. - -The `fullrelease` command comes from `zest.releaser -<https://pypi.python.org/pypi/zest.releaser>`_. - -Install `zest.releaser`: - -.. code-block:: bash - - $ pip install "zest.releaser" +In order to prepare a new release, we are following the following steps: -- Merge remaining pull requests -- Update ``CHANGELOG.rst`` +- Merge remaining pull requests; +- Update :file:`CHANGELOG.rst` with the last changes; +- Update :file:`CONTRIBUTORS`; - Update known good versions of dependencies in ``requirements.txt`` with this command (from inside the venv): .. code-block:: bash $ pip freeze | grep -v -- '-e' > requirements.txt -Once this is done, use the "fullrelease" command: +Once this is done, use the "release" instruction: .. code-block:: bash - $ fullrelease + $ make release -That's all folks! +And the new version should be published on PyPI. diff --git a/budget/run.py b/budget/run.py index f006ae9..9745b60 100644 --- a/budget/run.py +++ b/budget/run.py @@ -1,4 +1,5 @@ import os +import os.path import warnings from flask import Flask, g, request, session @@ -11,6 +12,7 @@ from api import api from utils import PrefixedWSGI from utils import minimal_round +__HERE__ = os.path.dirname(os.path.abspath(__file__)) app = Flask(__name__) @@ -65,7 +67,7 @@ if pre_alembic_db(): # auto-execute migrations on runtime with app.app_context(): - upgrade() + upgrade(os.path.join(__HERE__, 'migrations')) # mail mail.init_app(app) diff --git a/dev-requirements.txt b/dev-requirements.txt new file mode 100644 index 0000000..0bbb0aa --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1,2 @@ +zest.releaser +tox diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..8982892 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,3 @@ +docutils<0.13 +Sphinx +sphinx_rtd_theme diff --git a/fabfile.py b/fabfile.py deleted file mode 100644 index 7e71739..0000000 --- a/fabfile.py +++ /dev/null @@ -1,13 +0,0 @@ -from fabric.api import env, cd, sudo, run - -env.hosts = ['sites.lolnet.lan'] - - -def deploy(): - with cd('/home//www/ihatemoney.org/code'): - sudo('git pull', user="www-data") - sudo('supervisorctl restart ihatemoney.org') - - -def whoami(): - run('/usr/bin/whoami') diff --git a/budget/requirements.txt b/requirements.txt index c4776f0..c4776f0 100644 --- a/budget/requirements.txt +++ b/requirements.txt @@ -0,0 +1,19 @@ +[tox] +envlist = py35,py27,docs +skip_missing_interpreters = True + +[testenv] + +commands = + python --version + python budget/tests.py +deps = + -rdev-requirements.txt + -rrequirements.txt + +install_command = pip install --pre {opts} {packages} + +[testenv:docs] +commands = sphinx-build -a -n -b html -d docs/_build/doctrees docs docs/_build/html +deps = + -rdocs/requirements.txt |
