diff --git a/.gitignore b/.gitignore index 00147c6..48b9ca3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.pyc +.build .media .mypy_cache .tox diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..56f0851 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,7 @@ +include LICENSE +include LICENSE_EXCEPTION +include MANIFEST.in +include README.rst +recursive-include viewflow/templates * +recursive-include viewflow/locale * +recursive-include viewflow/static * diff --git a/README.md b/README.md index bb4d2ed..c779fbf 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ http://cookbook.viewflow.io drawing -The workflow layer separates collaboration logic from view code. +The workflow layer separates collaboration logic from the views code. ```python def approve_task(request, process_pk, task_pk): diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..25402fd --- /dev/null +++ b/setup.cfg @@ -0,0 +1,16 @@ +[egg_info] +egg_base = .build/ + +[bdist_wheel] +universal=1 +bdist_dir = .build/build + +[build] +build_lib = .build/lib + +[flake8] +max-line-length = 119 + +[pep257] +add-ignore = D100,D104,D105 +match-dir= (?!migrations) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..3047dc9 --- /dev/null +++ b/setup.py @@ -0,0 +1,35 @@ +import setuptools + + +setuptools.setup( + name='django-viewflow', + version='2.0.0a0', + author_email='kmmbvnr@gmail.com', + author='Mikhail Podgurskiy', + description="Reusable library to build business applications fast", + include_package_data=True, + keywords=['django', 'admin', 'workflow', 'fsm', 'bpm', 'bpmn'], + license='AGPL', + long_description_content_type="text/markdown", + long_description=open('README.md', 'r', encoding='utf-8').read(), + packages=setuptools.find_packages(exclude=['tests*']), + python_requires='>=3.7', + zip_safe=False, + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Developers', + 'Natural Language :: English', + 'Operating System :: OS Independent', + 'Framework :: Django', + 'Framework :: Django :: 3.1', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', + ], + install_requires=[ + 'Django>=3.1', + ], +) diff --git a/tox.ini b/tox.ini index cff448b..0754b3a 100644 --- a/tox.ini +++ b/tox.ini @@ -36,6 +36,12 @@ deps = psycopg2-binary==2.8.5 django_sendmail_backend==0.1.2 selenium==3.141.0 + html5lib==1.1 + + # packaging + pyc-wheel==1.2.4 + setuptools==51.0.0 + wheel==0.36.2 setenv = PYTHONPATH={toxinidir} @@ -48,3 +54,29 @@ passenv = MOZ_HEADLESS DISPLAY TERM + + # allow to run tox under non-owner of venv directory +envlogdir = /tmp + + +[testenv:py38-dj31] +envdir=.venv38 + + +[testenv:py39-dj31] +python=python3.9 +envdir=.venv39 + + +[testenv:docs] +basepython=python3.7 +envdir = {toxworkdir}/docs +deps = + Sphinx + sphinxcontrib-fulltoc + https://github.com/guzzle/guzzle_sphinx_theme/archive/master.zip + https://github.com/joh/when-changed/archive/master.zip + {[testenv]deps} + +commands = {posargs:when-changed -s -r docs sphinx-build -a -b html docs/ html/} +