From 2161fc0b32d738295b05c29a15a7c58e15041eeb Mon Sep 17 00:00:00 2001 From: Aleksandr Gumroian Date: Mon, 21 Feb 2022 16:05:30 +0100 Subject: [PATCH] Makefile: Divide phony targets & restructure recipes --- Makefile | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index f61e6b9..4fad576 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,6 @@ # This is free software, licensed under the GNU General Public License v3. # See /LICENSE for more information. -.PHONY: all install-js watch-js build-js collect-files pack publish-beta publish-latest lint test test-js-update-snapshots create-messages update-messages docs docs-watch clean - PROJECT="Foris JS" # Retrieve Foris JS version from package.json VERSION= $(shell sed -En "s/.*version['\"]: ['\"](.+)['\"].*/\1/p" package.json) @@ -15,6 +13,7 @@ DEV_PYTHON=python3 VENV_NAME?=venv VENV_BIN=$(shell pwd)/$(VENV_NAME)/bin +.PHONY: all all: @echo "make install-js" @echo " Install dependencies" @@ -37,43 +36,89 @@ all: @echo "make clean" @echo " Remove python artifacts and virtualenv." + +# Preparation + +.PHONY: venv venv: $(VENV_NAME)/bin/activate $(VENV_NAME)/bin/activate: test -d $(VENV_NAME) || $(DEV_PYTHON) -m virtualenv -p $(DEV_PYTHON) $(VENV_NAME) $(VENV_BIN)/$(DEV_PYTHON) -m pip install -r requirements.txt touch $(VENV_NAME)/bin/activate + +# Installation + +.PHONY: install-js install-js: package.json npm install --save-dev + +# Publishing + +.PHONY: collect-files collect-files: sh scripts/collect_files.sh + +.PHONY: pack pack: collect-files cd dist && npm pack + +.PHONY: publish-beta publish-beta: collect-files sh scripts/publish.sh beta + +.PHONY: publish-latest publish-latest: collect-files sh scripts/publish.sh latest + +# Linting + +.PHONY: lint lint: npm run lint + +.PHONY: lint-js-fix lint-js-fix: npm run lint:fix + +# Testing + +.PHONY: test test: npm test + +.PHONY: test-js-update-snapshots test-js-update-snapshots: npm test -- -u + +# Translations + +.PHONY: create-messages create-messages: venv $(VENV_BIN)/pybabel extract -F babel.cfg -o ./translations/forisjs.pot . --project=$(PROJECT) --version=$(VERSION) --copyright-holder=$(COPYRIGHT_HOLDER) --msgid-bugs-address=$(MSGID_BUGS_ADDRESS) + +.PHONY: update-messages update-messages: venv $(VENV_BIN)/pybabel update -i ./translations/forisjs.pot -d ./translations -D forisjs --update-header-comment + +# Documentation + +.PHONY: docs docs: npm run-script docs + +.PHONY: docs-watch docs-watch: npm run-script docs:watch + +# Other + +.PHONY: clean clean: rm -rf node_modules dist