Packages

Direct Elixir port of open-spaced-repetition/py-fsrs (FSRS-6).

Current section

Files

Jump to
fsrs_ex Makefile
Raw

Makefile

.PHONY: help deps format format-check test docs hex-build hex-dry-run preflight publish publish-interactive release
help:
@printf "Available targets:\n"
@printf " deps - Fetch dependencies\n"
@printf " format - Format source code\n"
@printf " format-check - Check formatting without changing files\n"
@printf " test - Run test suite\n"
@printf " docs - Build HexDocs locally\n"
@printf " hex-build - Build Hex package tarball\n"
@printf " hex-dry-run - Validate publish flow without uploading\n"
@printf " preflight - Run all release checks\n"
@printf " publish - Publish non-interactively (requires HEX_API_KEY)\n"
@printf " publish-interactive - Publish using local interactive credentials\n"
@printf " release - preflight + publish\n"
deps:
mix deps.get
format:
mix format
format-check:
mix format --check-formatted
test:
mix test
docs:
mix docs
hex-build:
mix hex.build
hex-dry-run:
@if [ -z "$$HEX_API_KEY" ]; then \
printf "Skipping hex dry-run: HEX_API_KEY is not set (interactive key cannot be used non-interactively).\n"; \
else \
mix hex.publish --dry-run --yes; \
fi
preflight: deps format-check test docs hex-build hex-dry-run
publish:
@if [ -z "$$HEX_API_KEY" ]; then \
printf "HEX_API_KEY is required for non-interactive publish.\n"; \
printf "Run 'mix hex.user key generate --key-name fsrs_ex_release' and export HEX_API_KEY.\n"; \
exit 1; \
fi
mix hex.publish --yes
publish-interactive:
mix hex.publish --yes
release: preflight publish