Modernize the meta files of the project
All checks were successful
Run tests / Execute tox to run the test suite (push) Successful in 2m40s

This commit is contained in:
2024-09-09 11:56:38 +02:00
parent 8a766c760d
commit 05da45f271
6 changed files with 54 additions and 69 deletions

View File

@@ -1,12 +1,11 @@
REQUIREMENTS
============
- Python 3
- Python package virtualenv (in most cases this is distributed or installed together with python)
- Django (will be installed automatically)
- Several additional django related python packages (will be installed automatically)
- Python >= 3
- Django and some other python packages, that will be installed throughout
the installation process
For production use you surly want a real web server that supports WSGI
(e.g. Apache httpd with mod_wsgi) and a real Database like PostgreSQL.
(e.g. Apache httpd with mod_wsgi) and a real Database like PostgreSQL (psycopg2).
QUICK INSTALLATION FOR THE IMPATIENT
@@ -24,14 +23,11 @@ INSTALLATION
It is strongly recommended to create a separated python environment
for this django project. But it is not exactly necessary.
The creation of a separated python environment is very easy with the
virtualenv tool (a python package).
If you decide to not use virtualenv, proceed with step 2.
- Create the python environment in a directory called ./env/python:
``virtualenv --prompt="(dav)" ./env/python``
``python -m venv --prompt="(dav)" ./env/python``
- If you use a posix compatible shell (like bash, the linux default shell),
you have to activate the environment for the current shell session
@@ -50,16 +46,25 @@ If you have left the session or deactivated the environment and want to
reactivate the environment (e.g. to execute a python command) use the
previous ``source ...`` command.
2. Install files
----------------
2. Install requirements
-----------------------
- ``python -m pip install -r requirements.txt``
3. Install project code in development mode
-------------------------------------------
- ``python -m pip install -e .``
4. Setup django project directory
---------------------------------
- ``python setup.py develop``
- ``django-dav-events-admin setup ./env/django``
The django project directory ('./env/django' within the previous example)
will be called *project root* for now on.
3. Enable modules
5. Enable modules
-----------------
Our web application consist of several modules, that care about single
aspects of the whole picture.

View File

@@ -1,20 +0,0 @@
PYTHON := python
DEPLOY_DIR ?= /var/www/wsgi/django-dav-events
.PHONY: default help test deploy
default: help
help:
@echo "The make stuff is used by our CI/CD buildbot."
test:
tox
deploy:
git -C "$(DEPLOY_DIR)/src/django-dav-events" pull
"$(DEPLOY_DIR)/python/bin/python" "$(DEPLOY_DIR)/django/manage.py" migrate --noinput
"$(DEPLOY_DIR)/python/bin/python" "$(DEPLOY_DIR)/django/manage.py" collectstatic --noinput
touch "$(DEPLOY_DIR)/django/main/wsgi.py"

View File

@@ -1,6 +1,8 @@
ABOUT
=====
This is the DAV Events django project.
django-dav-events is a django based web app to drive the
"Touren- & Kurseportal" of
"Sektion Karlsruhe im Deutschen Alpenverein (DAV) e.V."
REQUIREMENTS

6
requirements.txt Normal file
View File

@@ -0,0 +1,6 @@
babel
django<3.3
django-bootstrap3
django-countries
django-datetime-widget2
setuptools

View File

@@ -6,17 +6,7 @@ from setuptools import setup, find_packages
from setuptools import Command
class MyCommand(Command):
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
class SetupPythonEnvironment(MyCommand):
class SetupPythonEnvironment(Command):
description = 'create a (virtual) python environment'
def run(self):
@@ -54,7 +44,7 @@ class SetupPythonEnvironment(MyCommand):
print('- All others: source %s/bin/activate' % path)
class QuickSetup(MyCommand):
class QuickSetup(Command):
description = 'create a typical installation for developing'
def run(self):
@@ -94,7 +84,7 @@ class QuickSetup(MyCommand):
setup(
name='django-dav-events',
version='2.1.2',
version='2.2.1',
description='A django based web application project to organize DAV Events.',
url='https://dev.heinzelwerk.de/git/DAV-KA/django-dav-events',
author='Jens Kleineheismann',
@@ -105,26 +95,9 @@ setup(
},
packages=find_packages(),
include_package_data=True,
test_suite='tests.test_suite',
entry_points={
'console_scripts': [
'django-dav-admin = dav_base.console_scripts.admin:main',
],
},
install_requires=[
'babel',
#'django >= 1.11, < 2.0',
'django >= 1.11, < 3.3',
# 'django-extensions',
'django-bootstrap3',
'django-countries',
'django-datetime-widget2',
'pytz',
'selenium',
'setuptools',
'coverage',
],
extras_require={
'production': ['psycopg2'],
},
)

29
tox.ini
View File

@@ -1,10 +1,29 @@
[tox]
envlist = py311, py312
envlist = fresh, coverage
[testenv]
recreate = false
setenv =
PYTHONPATH = .
commands = python --version
python -m coverage run tests
coverage report --skip-covered
deps = -r{toxinidir}/requirements.txt
selenium
commands_pre = python --version
python -m django --version
commands = python tests
[testenv:fast]
description = Only run the testsuite
[testenv:fresh]
description = Run tests in freshly created environment (with coverage)
recreate = true
deps = {[testenv]deps}
coverage
commands_pre = {[testenv]commands_pre}
python -m coverage --version
commands = python -m coverage run tests
[testenv:coverage]
description = Report test coverage
deps = {[testenv:fresh]deps}
commands = python -m coverage report --skip-covered