Metadata-Version: 2.1
Name: appel-crises
Version: 0.0.11.dev0
Summary: Website for the `appel-crises` petition
Home-page: https://pypi.org/project/appel-crises
Author: Pour Un Réveil Écologique
License: AGPL-3
Keywords: petition,ecology
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Natural Language :: French
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.7
Requires-Dist: django (>=3.0)
Requires-Dist: importlib-metadata
Requires-Dist: psycopg2
Requires-Dist: getconf
Requires-Dist: whitenoise[brotli]
Requires-Dist: aiohttp
Requires-Dist: sentry-sdk (==0.14.3)
Provides-Extra: dev
Requires-Dist: check-manifest ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: openpyxl ; extra == 'dev'
Requires-Dist: tqdm ; extra == 'dev'
Requires-Dist: zest.releaser[recommended] ; extra == 'dev'

# appel-crises-web

## for developers

On first time,

- Install `python3.7` if needed
- Install `pre-commit` if needed (`pip install --user pre-commit`)
- Install a python virtualenv manager if needed (`pip install --user vex`, `pip install --user pew`, ...)
- Create a virtualenv (`vex --make appel-crises`, `pew new appel-crises`)
- Install project dependencies: `make bootsrap` (or `pip install -e .[dev]` if make isn't available)
- `cp local_settings.ini.template local_settings.ini` and edit `local_settings.ini`
  if you need
- if you chose postgresql DB, create user and database if needed
- run `make build` to build static files
- run `./manage.py migrate` to create DB tables
- run `./manage.py createsuperuser` to create a local user

## Dependencies management

Dependencies are stored in `setup.cfg`:

- Runtime dependencies are listed under `install_requires` in the `[options]` section;
- Additional development dependencies are listed under `dev=` in the `[options.extras_require]`,
  and installed alongside required dependencies by specifying the `[dev]` extra marker -
  as seen in `pip install -e .[dev]`.


## Building

The project is not composed only of pure Python code (it contains templates, images, ...).
Some of those files must go through some processing before running in production:
- Static files should be consolidated into a single tree, with hashed names and a manifest;
- Message catalogs might need to be compiled to their final `.mo` form;
- Some static data might be converted to some other formats for faster / easier loading.

Those steps are controlled through the project wide `Makefile`, and should be called
through the `make build` (or simply `make`) command.

That step is also executed when building a release.


## Releasing

A release consists of a built project archive, under the `wheel` format; that package MUST include the result of a full compilation.


