.DEFAULT_GOAL := test PACKAGES := atproto_core atproto_client atproto_lexicon atproto_codegen atproto_mlf atproto_sdl atproto_browser atproto_openapi GLEAM_DIRS := atproto_core/src atproto_core/test atproto_client/src atproto_client/test atproto_lexicon/src atproto_lexicon/test atproto_codegen/src atproto_codegen/test atproto_mlf/src atproto_mlf/test atproto_sdl/src atproto_sdl/test atproto_browser/src atproto_browser/test atproto_openapi/src atproto_openapi/test test: ## run all package suites + the JS-target build cd atproto_core && gleam test cd atproto_lexicon && gleam test cd atproto_client && gleam test cd atproto_client && gleam build --target javascript cd atproto_codegen && gleam test cd atproto_mlf && gleam test cd atproto_sdl && gleam test cd atproto_browser && gleam test cd atproto_browser && gleam build && node --experimental-strip-types test/manual/dpop_smoke.ts && node --experimental-strip-types test/manual/oauth_flow_smoke.ts cd atproto_openapi && gleam test format: ## format all gleam source gleam format $(GLEAM_DIRS) check: format-check depcheck lockcheck test ## what PR CI runs fixtures: ## compile generated clients against the packages published on Hex (post-publish smoke, not PR CI) bash scripts/fixtures.sh release-check: ## report published dependents that accept a breaking release: make release-check PKG=atproto_core VERSION=0.2.0 escript scripts/release-check $(PKG) $(VERSION) release-check-test: ## offline cases for the release-check range parser escript scripts/release-check --selftest depcheck-test: ## table-driven cases for the depcheck range rules bash scripts/depcheck_test.sh depcheck: ## fail on path deps and on sibling 0.x ranges that float past the next minor bash scripts/depcheck.sh format-check: gleam format --check $(GLEAM_DIRS) lockcheck: ## fail if any package's manifest.toml is stale or uncommitted for p in $(PACKAGES); do (cd $$p && gleam deps download >/dev/null) || exit 1; done git diff --exit-code -- '*/manifest.toml' .PHONY: test format check fixtures depcheck depcheck-test release-check release-check-test format-check lockcheck