mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-04-28 17:32:38 +02:00
commit
1b94f6738a
12 changed files with 102 additions and 61 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,7 +1,11 @@
|
||||||
budget/budget.db
|
budget/budget.db
|
||||||
|
budget.db
|
||||||
budget/memory
|
budget/memory
|
||||||
budget/settings.py
|
budget/settings.py
|
||||||
*.pyc
|
*.pyc
|
||||||
*.egg-info
|
*.egg-info
|
||||||
dist
|
dist
|
||||||
.venv
|
.venv
|
||||||
|
docs/_build/
|
||||||
|
.tox
|
||||||
|
dist
|
||||||
|
|
14
.travis.yml
14
.travis.yml
|
@ -1,8 +1,8 @@
|
||||||
language: python
|
language: python
|
||||||
python:
|
script: tox
|
||||||
- "2.7"
|
install:
|
||||||
- "3.5"
|
- pip install tox
|
||||||
# command to install dependencies
|
env:
|
||||||
install: "pip install -r budget/requirements.txt"
|
- TOXENV=py27
|
||||||
# command to run tests
|
- TOXENV=py35
|
||||||
script: cd budget && python tests.py
|
- TOXENV=docs
|
||||||
|
|
|
@ -3,7 +3,7 @@ Changelog
|
||||||
|
|
||||||
This document describes changes between each past release.
|
This document describes changes between each past release.
|
||||||
|
|
||||||
1.0.0 (unreleased)
|
1.0.0 (2017-03-21)
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
- First release of the project.
|
- First release of the project.
|
||||||
|
|
39
Makefile
Normal file
39
Makefile
Normal file
|
@ -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
|
1
Procfile
1
Procfile
|
@ -1 +0,0 @@
|
||||||
web: python budget/run.py
|
|
62
README.rst
62
README.rst
|
@ -16,13 +16,9 @@ LICENSE for more details).
|
||||||
Make it run!
|
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
|
$ make serve
|
||||||
$ source venv/bin/activate
|
|
||||||
$ pip install -r budget/requirements.txt
|
|
||||||
$ cd budget
|
|
||||||
$ python run.py
|
|
||||||
|
|
||||||
It is also better to actually turn the debugging mode on when you're
|
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
|
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
|
Deploy it
|
||||||
=========
|
=========
|
||||||
|
|
||||||
To deploy it, I'm using gunicorn and supervisord::
|
To deploy it, I'm using gunicorn and supervisord.
|
||||||
|
|
||||||
$ virtualenv venv
|
|
||||||
$ source venv/bin/activate
|
|
||||||
$ pip install -r requirements.txt
|
|
||||||
|
|
||||||
1. Add the lines in conf/supervisord.conf to your supervisord.conf file.
|
1. Add the lines in conf/supervisord.conf to your supervisord.conf file.
|
||||||
**adapt them to your paths!**
|
**adapt them to your paths!**
|
||||||
|
@ -58,9 +50,8 @@ e.g:
|
||||||
|
|
||||||
APPLICATION_ROOT='/budget'
|
APPLICATION_ROOT='/budget'
|
||||||
|
|
||||||
|
The REST API?
|
||||||
How about the REST API?
|
=============
|
||||||
=======================
|
|
||||||
|
|
||||||
Yep, you're right, there is a REST API with this. Head to the `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.
|
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
|
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,
|
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
|
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
|
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.
|
a pull request as it will help us to maintain the code clean and running.
|
||||||
|
|
||||||
To do so::
|
To do so::
|
||||||
|
|
||||||
$ workon budget
|
$ make tests
|
||||||
(budget) $ python tests.py
|
|
||||||
|
|
||||||
before pushing anything to master :)
|
|
||||||
|
|
||||||
As a designer / Front-end developer
|
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
|
End-user
|
||||||
--------
|
--------
|
||||||
|
|
||||||
You just wanted to have a look at the application and found a bug? Please tell
|
You are using the application and found a bug? You have some ideas about how to
|
||||||
us and go fill a new issue:
|
improve the project? Please tell us [by filling a new issue](https://github.com/spiral-project/ihatemoney/issues).
|
||||||
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?
|
How to release?
|
||||||
===============
|
===============
|
||||||
|
|
||||||
In order to prepare a new release, we are following the following steps.
|
In order to prepare a new release, we are following the following steps:
|
||||||
|
|
||||||
The `fullrelease` command comes from `zest.releaser
|
- Merge remaining pull requests;
|
||||||
<https://pypi.python.org/pypi/zest.releaser>`_.
|
- Update :file:`CHANGELOG.rst` with the last changes;
|
||||||
|
- Update :file:`CONTRIBUTORS`;
|
||||||
Install `zest.releaser`:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
$ pip install "zest.releaser"
|
|
||||||
|
|
||||||
- Merge remaining pull requests
|
|
||||||
- Update ``CHANGELOG.rst``
|
|
||||||
- Update known good versions of dependencies in ``requirements.txt`` with this command (from inside the venv):
|
- Update known good versions of dependencies in ``requirements.txt`` with this command (from inside the venv):
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ pip freeze | grep -v -- '-e' > requirements.txt
|
$ 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
|
.. code-block:: bash
|
||||||
|
|
||||||
$ fullrelease
|
$ make release
|
||||||
|
|
||||||
That's all folks!
|
And the new version should be published on PyPI.
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import os
|
import os
|
||||||
|
import os.path
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
from flask import Flask, g, request, session
|
from flask import Flask, g, request, session
|
||||||
|
@ -11,6 +12,7 @@ from api import api
|
||||||
from utils import PrefixedWSGI
|
from utils import PrefixedWSGI
|
||||||
from utils import minimal_round
|
from utils import minimal_round
|
||||||
|
|
||||||
|
__HERE__ = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@ -65,7 +67,7 @@ if pre_alembic_db():
|
||||||
|
|
||||||
# auto-execute migrations on runtime
|
# auto-execute migrations on runtime
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
upgrade()
|
upgrade(os.path.join(__HERE__, 'migrations'))
|
||||||
|
|
||||||
# mail
|
# mail
|
||||||
mail.init_app(app)
|
mail.init_app(app)
|
||||||
|
|
2
dev-requirements.txt
Normal file
2
dev-requirements.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
zest.releaser
|
||||||
|
tox
|
3
docs/requirements.txt
Normal file
3
docs/requirements.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
docutils<0.13
|
||||||
|
Sphinx
|
||||||
|
sphinx_rtd_theme
|
13
fabfile.py
vendored
13
fabfile.py
vendored
|
@ -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')
|
|
19
tox.ini
Normal file
19
tox.ini
Normal file
|
@ -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
|
Loading…
Reference in a new issue