diff --git a/.travis.yml b/.travis.yml index c18d65f8..b3753ea0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ python: - "3.5" - "3.6" - "3.7" + - "3.8" script: tox install: - pip install tox-travis diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 76831ccb..e4ecb923 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,7 +9,7 @@ This document describes changes between each past release. - Add support for espanol latino america (es_419) - Use the external debts lib to solve settlements (#476) - Remove balance column in statistics view (#323) - +- Remove requirements files in favor of setup.cfg pinning (#558) 4.1.3 (2019-09-18) ================== diff --git a/MANIFEST.in b/MANIFEST.in index 74ea23b1..d47086be 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,3 @@ include *.rst recursive-include ihatemoney *.rst *.py *.yaml *.po *.mo *.html *.css *.js *.eot *.svg *.woff *.txt *.png *.ini *.cfg *.j2 -include LICENSE CONTRIBUTORS CHANGELOG.rst requirements.txt +include LICENSE CONTRIBUTORS CHANGELOG.rst diff --git a/Makefile b/Makefile index 42b0e263..ae9e46c1 100644 --- a/Makefile +++ b/Makefile @@ -11,10 +11,10 @@ ZOPFLIPNG := zopflipng .PHONY: all all: install ## Alias for install .PHONY: install -install: virtualenv $(INSTALL_STAMP) ## Install dependencies -$(INSTALL_STAMP): +install: setup.cfg $(INSTALL_STAMP) ## Install dependencies +$(INSTALL_STAMP): virtualenv $(VENV)/bin/pip install -U pip - $(VENV)/bin/pip install -r requirements.txt + $(VENV)/bin/pip install -e . touch $(INSTALL_STAMP) .PHONY: virtualenv @@ -23,9 +23,9 @@ $(PYTHON): $(VIRTUALENV) $(VENV) .PHONY: install-dev -install-dev: $(INSTALL_STAMP) $(DEV_STAMP) ## Install development dependencies -$(DEV_STAMP): $(PYTHON) dev-requirements.txt - $(VENV)/bin/pip install -Ur dev-requirements.txt +install-dev: setup.cfg $(INSTALL_STAMP) $(DEV_STAMP) ## Install development dependencies +$(DEV_STAMP): $(PYTHON) + $(VENV)/bin/pip install -Ue .[dev] touch $(DEV_STAMP) .PHONY: remove-install-stamp @@ -76,13 +76,6 @@ create-empty-database-revision: ## Create an empty database revision @read -p "Please enter a message describing this revision: " rev_message; \ $(PYTHON) -m ihatemoney.manage db revision -d ihatemoney/migrations -m "$${rev_message}" -.PHONY: build-requirements -build-requirements: ## Save currently installed packages to requirements.txt - $(VIRTUALENV) $(TEMPDIR) - $(TEMPDIR)/bin/pip install -U pip - $(TEMPDIR)/bin/pip install -Ue "." - $(TEMPDIR)/bin/pip freeze | grep -v -- '-e' > requirements.txt - .PHONY: clean clean: ## Destroy the virtual environment rm -rf .venv diff --git a/dev-requirements.txt b/dev-requirements.txt deleted file mode 100644 index 9163cf81..00000000 --- a/dev-requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -zest.releaser -tox -pytest -flake8 -Flask-Testing -black ; python_version >= '3.6' diff --git a/docs/contributing.rst b/docs/contributing.rst index b053f8b6..5cff063b 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -2,7 +2,7 @@ Contributing ############ Set up a dev environment -======================= +======================== You must develop on top of the Git master branch:: @@ -23,10 +23,8 @@ install dependencies, and run the test server. The hard way ------------ -Alternatively, you can also use the `requirements.txt` file to install the -dependencies yourself. That would be:: +Alternatively, you can use pip to install dependencies yourself. That would be:: - pip install -r requirements.txt pip install -e . And then run the application:: diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index d6893e84..00000000 --- a/requirements.txt +++ /dev/null @@ -1,28 +0,0 @@ -alembic==1.2.0 -aniso8601==8.0.0 -Babel==2.7.0 -blinker==1.4 -Click==7.0 -debts==0.4 -dnspython==1.16.0 -email-validator==1.0.4 -Flask==1.1.1 -Flask-Babel==0.12.2 -Flask-Cors==3.0.8 -Flask-Mail==0.9.1 -Flask-Migrate==2.5.2 -Flask-RESTful==0.3.7 -Flask-Script==2.0.6 -Flask-SQLAlchemy==2.4.1 -Flask-WTF==0.14.2 -idna==2.8 -itsdangerous==1.1.0 -Jinja2==2.10.1 -Mako==1.1.0 -MarkupSafe==1.1.1 -python-dateutil==2.8.0 -pytz==2019.2 -SQLAlchemy==1.3.8 -SQLAlchemy-Continuum==1.3.9 -Werkzeug==0.16.0 -WTForms==2.2.1 diff --git a/setup.cfg b/setup.cfg index 8d334e80..571f538b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,6 +14,7 @@ classifiers = Programming Language :: Python :: 3.5 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 Topic :: Internet :: WWW/HTTP Topic :: Internet :: WWW/HTTP :: WSGI :: Application @@ -22,29 +23,30 @@ packages = find: include_package_data = True zip_safe = False install_requires = - flask - flask-wtf - flask-sqlalchemy<3.0 - SQLAlchemy-Continuum - flask-mail - Flask-Migrate - Flask-script - flask-babel - flask-restful - jinja2 - blinker - flask-cors - itsdangerous - email_validator - debts + blinker==1.4 + debts==0.5 + email_validator==1.0.5 + Flask-Babel==1.0.0 + Flask-Cors==3.0.8 + Flask-Mail==0.9.1 + Flask-Migrate==2.5.3 + Flask-RESTful==0.3.8 + Flask-Script==2.0.6 + Flask-SQLAlchemy==2.4.1 + Flask-WTF==0.14.3 + Flask==1.1.2 + itsdangerous==1.1.0 + Jinja2==2.11.2 + SQLAlchemy-Continuum==1.3.9 [options.extras_require] dev = - zest.releaser - tox - pytest - flake8 - Flask-Testing + black==19.10b0 ; python_version >= '3.6' + flake8==3.7.9 + Flask-Testing==0.8.0 + pytest==5.4.1 + tox==3.14.6 + zest.releaser==6.20.1 [options.entry_points] console_scripts = diff --git a/tox.ini b/tox.ini index 5e6d5e42..b5ff7055 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37,py36,py35,docs,flake8,black +envlist = py38,py37,py36,py35,docs,flake8,black skip_missing_interpreters = True [testenv] @@ -9,8 +9,7 @@ commands = py.test --pyargs ihatemoney.tests.tests deps = - -rdev-requirements.txt - -rrequirements.txt + -e.[dev] # To be sure we are importing ihatemoney pkg from pip-installed version changedir = /tmp @@ -23,14 +22,10 @@ changedir = {toxinidir} [testenv:black] commands = black --check --target-version=py34 . -deps = - -rdev-requirements.txt changedir = {toxinidir} [testenv:flake8] commands = flake8 ihatemoney -deps = - -rdev-requirements.txt changedir = {toxinidir} [flake8] @@ -43,5 +38,6 @@ extend-ignore = [travis] python = 3.5: py35 - 3.6: py36, docs, black, flake8 + 3.6: py36 3.7: py37 + 3.8: py38, docs, black, flake8