aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Métaireau <alexis@notmyidea.org>2017-03-21 15:08:42 +0100
committerAlexis Métaireau <alexis@notmyidea.org>2017-03-28 17:41:34 +0200
commitd1facecc69e3a2638b508b4120094873cdb7bcf2 (patch)
tree1bcd60ed8e58280a8cc18139473a9d5cddf83452
parenta354973f1f9c2dd602a4c28e90540fdbf4020064 (diff)
downloadihatemoney-mirror-d1facecc69e3a2638b508b4120094873cdb7bcf2.zip
ihatemoney-mirror-d1facecc69e3a2638b508b4120094873cdb7bcf2.tar.gz
ihatemoney-mirror-d1facecc69e3a2638b508b4120094873cdb7bcf2.tar.bz2
Create a Makefile to ease development
-rw-r--r--Makefile39
-rw-r--r--Procfile1
-rw-r--r--README.rst40
-rw-r--r--budget/run.py4
-rw-r--r--dev-requirements.txt1
-rw-r--r--fabfile.py13
-rw-r--r--requirements.txt (renamed from budget/requirements.txt)0
7 files changed, 60 insertions, 38 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..cb2a1c7
--- /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 d147525..0000000
--- a/Procfile
+++ /dev/null
@@ -1 +0,0 @@
-web: python budget/run.py
diff --git a/README.rst b/README.rst
index 827eab4..02e8be5 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 <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,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 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..a7fbb05
--- /dev/null
+++ b/dev-requirements.txt
@@ -0,0 +1 @@
+zest.releaser
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