Scrutiny
========

Scrutiny is a tracker of installed modules.


Installation
------------

From Scrutiny source directory install required Python packages:

 $ pip install -e .

It's then required to get the database configured (./manage.py migrate); by
default it will create a db.sqlite3 file.

You can then run the Django test server for a quick try (you should refer to
the Django documentation for production deployments).

 $ ./manage.py runserver


Settings
--------

Default settings are loaded from settings.py, they can be overloaded by a
local_settings.py file set in the same directory, or by a file referenced
in the SCRUTINY_SETTINGS_FILE environment variable.


Code Style
----------

black is used to format the code, using thoses parameters:

    black --target-version py39 --skip-string-normalization --line-length 110

isort is used to format the imports, using those parameters:

    isort --profile black --line-length 110

pyupgrade is used to automatically upgrade syntax, using those parameters:

    pyupgrade --keep-percent-format --py39-plus

django-upgrade is used to automatically upgrade Django syntax, using those parameters:

    django-upgrade --target-version 3.2

djhtml is used to automatically indent html files, using those parameters:

    djhtml --tabwidth 2

There is .pre-commit-config.yaml to use pre-commit to automatically run black,
isort, pyupgrade, django-upgrade and djhtml before commits. (execute
`pre-commit install` to install the git hook.)


License
-------

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
details.

You should have received a copy of the GNU Affero General Public License along
with this program.  If not, see <http://www.gnu.org/licenses/>.
