1
- # SPDX-License-Identifier: Apache-2.0
2
1
#
3
2
# Copyright (c) nexB Inc. and others. All rights reserved.
4
- # ScanCode is a trademark of nexB Inc.
3
+ # FederatedCode is a trademark of nexB Inc.
5
4
# SPDX-License-Identifier: Apache-2.0
6
- # See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
7
- # See https://github.com/nexB/skeleton for support or download.
8
- # See https://aboutcode.org for more information about nexB OSS projects.
5
+ # See https://github.com/nexB/federatedcode for support or download.
6
+ # See https://aboutcode.org for more information about AboutCode FOSS projects.
9
7
#
10
- include .env
8
+ # include .env
11
9
12
10
# Python version can be specified with `$ PYTHON_EXE=python3.x make conf`
13
11
PYTHON_EXE? =python3
14
12
VENV =venv
13
+ MANAGE =${VENV}/bin/python manage.py
15
14
ACTIVATE? =. ${VENV}/bin/activate;
16
15
MANAGE =${VENV}/bin/python manage.py
16
+ BLACK_ARGS=--exclude =".cache|migrations|data|venv|lib|bin|var|etc"
17
+ # Do not depend on Python to generate the SECRET_KEY
18
+ GET_SECRET_KEY =` base64 /dev/urandom | head -c50 `
19
+ # Customize with `$ make envfile ENV_FILE=/etc/federatedcode/.env`
20
+ ENV_FILE =.env
21
+ # Customize with `$ make postgres FEDERATEDCODE_DB_PASSWORD=YOUR_PASSWORD`
22
+ FEDERATEDCODE_DB_NAME =federatedcode
23
+ FEDERATEDCODE_DB_USER =federatedcode
24
+ FEDERATEDCODE_DB_PASSWORD =federatedcode
25
+ POSTGRES_INITDB_ARGS=--encoding =UTF-8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8
26
+ DATE =$(shell date +"% Y-% m-% d_% H% M")
17
27
18
28
# Use sudo for postgres, but only on Linux
19
29
UNAME := $(shell uname)
@@ -35,55 +45,68 @@ envfile:
35
45
36
46
isort :
37
47
@echo " -> Apply isort changes to ensure proper imports ordering"
38
- ${VENV} /bin/ isort --sl -l 100 tests setup.py
48
+ @ ${ACTIVATE} isort --profile black .
39
49
40
50
black :
41
51
@echo " -> Apply black code formatter"
42
- ${VENV} /bin/ black -l 100 tests setup.py
52
+ @ ${ACTIVATE} black ${BLACK_ARGS} .
43
53
44
54
doc8 :
45
55
@echo " -> Run doc8 validation"
46
56
@${ACTIVATE} doc8 --max-line-length 100 --ignore-path docs/_build/ --quiet docs/
47
57
48
- valid : isort black
58
+ valid : isort black doc8
59
+
60
+ bandit :
61
+ @echo " -> Run source code security analyzer"
62
+ @${ACTIVATE} bandit -r fedcode federatedcode --quiet
49
63
50
- check :
51
- @echo " -> Run pycodestyle (PEP8 ) validation"
52
- @${ACTIVATE} pycodestyle --max-line-length=100 --exclude=.eggs,venv,lib,thirdparty,docs,migrations,settings.py,.cache .
64
+ check : doc8 bandit
65
+ @echo " -> Run flake8 (pycodestyle, pyflakes, mccabe ) validation"
66
+ @${ACTIVATE} flake8 .
53
67
@echo " -> Run isort imports ordering validation"
54
- @${ACTIVATE} isort --sl --check-only -l 100 setup.py tests .
68
+ @${ACTIVATE} isort --profile black --check-only .
55
69
@echo " -> Run black validation"
56
- @${ACTIVATE} black --check --check -l 100 tests setup.py
70
+ @${ACTIVATE} black --check ${BLACK_ARGS} .
71
+ @echo " -> Run docstring validation"
72
+ @${ACTIVATE} pydocstyle fedcode federatedcode
73
+
74
+ check-deploy :
75
+ @echo " -> Check Django deployment settings"
76
+ ${MANAGE} check --deploy
57
77
58
78
clean :
59
79
@echo " -> Clean the Python env"
60
80
./configure --clean
61
81
82
+ migrate :
83
+ @echo " -> Apply database migrations"
84
+ ${MANAGE} migrate
85
+
62
86
test :
63
87
@echo " -> Run the test suite"
64
- ${VENV} /bin/ pytest -vvs
88
+ @ ${ACTIVATE} pytest -vvs
65
89
66
90
docs :
67
91
rm -rf docs/_build/
68
92
@${ACTIVATE} sphinx-build docs/source docs/_build/
69
93
70
- postgres :
94
+ postgresdb :
71
95
@echo " -> Configure PostgreSQL database"
72
- @echo " -> Create database user ' ${POSTGRES_DB} ' "
73
- ${SUDO_POSTGRES} createuser --no-createrole --no-superuser --login --inherit --createdb ${POSTGRES_DB} || true
74
- ${SUDO_POSTGRES} psql -c " alter user ${POSTGRES_USER } with encrypted password '${POSTGRES_PASSWORD } ';" || true
75
- @echo " -> Drop ' ${POSTGRES_DB} ' database"
76
- ${SUDO_POSTGRES} dropdb ${POSTGRES_DB } || true
77
- @echo " -> Create ' ${POSTGRES_DB} ' database"
78
- ${SUDO_POSTGRES} createdb --encoding=utf-8 -- owner=${POSTGRES_USER } ${POSTGRES_DB }
96
+ @echo " -> Create database user ${FEDERATEDCODE_DB_NAME} "
97
+ @ ${SUDO_POSTGRES} createuser --no-createrole --no-superuser --login --inherit --createdb ' ${FEDERATEDCODE_DB_USER} ' || true
98
+ @ ${SUDO_POSTGRES} psql -c " alter user ${FEDERATEDCODE_DB_USER } with encrypted password '${FEDERATEDCODE_DB_PASSWORD } ';" || true
99
+ @echo " -> Drop ${SCANCODEIO_DB_NAME} database"
100
+ @ ${SUDO_POSTGRES} dropdb ${FEDERATEDCODE_DB_NAME } || true
101
+ @echo " -> Create ${FEDERATEDCODE_DB_NAME} database"
102
+ @ ${SUDO_POSTGRES} createdb --owner=${FEDERATEDCODE_DB_USER } ${POSTGRES_INITDB_ARGS} ${FEDERATEDCODE_DB_NAME }
79
103
@$(MAKE ) migrate
80
104
81
- migrate :
82
- @echo " -> Apply database migrations"
83
- ${MANAGE} migrate
105
+ backupdb :
106
+ pg_dump -Fc ${FEDERATEDCODE_DB_NAME} > " ${FEDERATEDCODE_DB_NAME} -db-${DATE} .dump"
84
107
85
108
run :
86
109
@echo " -> Starting development server"
87
- ${MANAGE} runserver
110
+ ${MANAGE} runserver 8002 --insecure
88
111
89
- .PHONY : conf dev check valid black isort clean test docs envfile postgres migrate run
112
+ .PHONY : dev envfile isort black doc8 valid bandit check check-deploy clean migrate test docs postgresdb backupdb run
0 commit comments