diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..cb2a1c7f --- /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) + cd budget; ../$(PYTHON) tests.py + +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 d147525f..00000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: python budget/run.py diff --git a/README.rst b/README.rst index 827eab46..02e8be50 100644 --- a/README.rst +++ b/README.rst @@ -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 `_ to know more. @@ -68,22 +59,22 @@ documentation `_ 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,9 +86,12 @@ 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? =============== diff --git a/budget/run.py b/budget/run.py index f006ae91..9745b60f 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 00000000..a7fbb05b --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1 @@ +zest.releaser diff --git a/fabfile.py b/fabfile.py deleted file mode 100644 index 7e717391..00000000 --- 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 similarity index 100% rename from budget/requirements.txt rename to requirements.txt