Something went wrong. Try again.
Our Personal Data Server from scratch!
Something went wrong. Try again.
tranquil-pds justfile
8.9 kB · 200 lines
Just
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201default: @just --listrun: cargo run -p tranquil-serverrun-dev: docker compose --profile dev uprun-release: cargo run -p tranquil-server --releasegen-config: cargo run -p tranquil-server -- config-template > example.tomlbuild: cargo buildbuild-release: cargo build --releasecheck: cargo checkclippy: cargo clippy --all-targets -- -D warningslint-no-bsky: cargo clippy -p tranquil-server --no-default-features --features frontend,postgres,s3,valkey --all-targets -- -D warnings cargo clippy -p tranquil-pds --no-default-features --all-targets -- -D warningsfmt: cargo fmtfmt-check: cargo fmt -- --checklint: fmt-check clippy lint-no-bskytest-store: SQLX_OFFLINE=true cargo nextest run -p tranquil-store --features tranquil-store/test-harnesstest-store-sim-nightly: SQLX_OFFLINE=true TRANQUIL_SIM_SEEDS=10000 cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile sim-nightlygauntlet-pr: SQLX_OFFLINE=true cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile gauntlet-pr --test gauntlet_smokegauntlet-nightly HOURS="6": SQLX_OFFLINE=true GAUNTLET_DURATION_HOURS={{HOURS}} cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile gauntlet-nightly --test gauntlet_smoke --run-ignored allgauntlet-farm SCENARIO HOURS="6" DUMP="proptest-regressions": SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- farm --scenario {{SCENARIO}} --hours {{HOURS}} --dump-regressions {{DUMP}}gauntlet-repro SEED SCENARIO="smoke-pr": SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- repro --scenario {{SCENARIO}} --seed {{SEED}}gauntlet-repro-config CONFIG SEED: SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- repro --config {{CONFIG}} --seed {{SEED}}gauntlet-repro-from FILE: SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- repro --from {{FILE}}gauntlet-sweep CONFIG SEEDS="8" DUMP="proptest-regressions": SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- sweep --config {{CONFIG}} --seeds {{SEEDS}} --dump-regressions {{DUMP}}gauntlet-soak HOURS="24" OUTPUT="": SQLX_OFFLINE=true GAUNTLET_SOAK_HOURS={{HOURS}} GAUNTLET_SOAK_OUTPUT={{OUTPUT}} cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile gauntlet-soak --test gauntlet_soak --run-ignored all -- soak_long_leak_gategauntlet-soak-heapprof HOURS="24" OUTPUT="" PREFIX="jeprof.gauntlet": SQLX_OFFLINE=true \ GAUNTLET_SOAK_HOURS={{HOURS}} \ GAUNTLET_SOAK_OUTPUT={{OUTPUT}} \ MALLOC_CONF="prof:true,prof_active:true,prof_final:true,lg_prof_sample:19,prof_prefix:{{PREFIX}}" \ cargo nextest run -p tranquil-store \ --features tranquil-store/test-harness,tranquil-store/gauntlet-jemalloc-prof \ --profile gauntlet-soak --test gauntlet_soak --run-ignored all -- soak_long_leak_gategauntlet-flaky SEED="1": SQLX_OFFLINE=true cargo nextest run -p tranquil-store --features tranquil-store/test-harness --test gauntlet_flaky --run-ignored allfuzz-target TARGET SECONDS="60" SANITIZER="address": cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer {{SANITIZER}} {{TARGET}} -- -max_total_time={{SECONDS}}fuzz-pr SECONDS="60": cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_block_record -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_hint_record -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address segment_scan -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address metastore_key_codec -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address gauntlet_micro -- -max_total_time={{SECONDS}}fuzz-nightly SECONDS="21600": cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_block_record -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_hint_record -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address segment_scan -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address metastore_key_codec -- -max_total_time={{SECONDS}} cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address gauntlet_micro -- -max_total_time={{SECONDS}}fuzz-ubsan TARGET SECONDS="60": cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer undefined {{TARGET}} -- -max_total_time={{SECONDS}}test-store-asan: SQLX_OFFLINE=true \ ASAN_OPTIONS="halt_on_error=1:abort_on_error=1:detect_leaks=1" \ RUSTFLAGS="-Zsanitizer=address" \ RUSTDOCFLAGS="-Zsanitizer=address" \ cargo +nightly nextest run -p tranquil-store --features tranquil-store/test-harness --target x86_64-unknown-linux-gnutest-unit: SQLX_OFFLINE=true cargo test --test dpop_unit --test validation_edge_cases --test scope_edge_casesstore_test := "SQLX_OFFLINE=true TRANQUIL_TEST_BACKEND=store TRANQUIL_PDS_ALLOW_INSECURE_SECRETS=1 DISABLE_RATE_LIMITING=1 TRANQUIL_LEXICON_OFFLINE=1 SKIP_IMPORT_VERIFICATION=true cargo nextest run -E 'not package(tranquil-store) and not binary(store_parity)'"test-auth: {{store_test}} --test oauth --test oauth_lifecycle --test oauth_scopes --test oauth_security --test jwt_security --test session_management --test change_password --test password_resettest-admin: {{store_test}} --test admin_email --test admin_invite --test admin_moderation --test admin_search --test admin_statstest-sync: {{store_test}} --test sync_repo --test sync_blob --test sync_conformance --test sync_deprecated --test firehose_validationtest-repo: {{store_test}} --test repo_batch --test repo_blob --test record_validation --test lifecycle_recordtest-identity: {{store_test}} --test identity --test did_web --test plc_migration --test plc_operations --test plc_validationtest-account: {{store_test}} --test lifecycle_session --test delete_account --test invite --test email_update --test account_notificationstest-security: {{store_test}} --test security_fixes --test banned_words --test rate_limit --test moderationtest-import: {{store_test}} --test import_verification --test import_with_verificationtest-misc: {{store_test}} --test actor --test commit_signing --test image_processing --test lifecycle_social --test notifications --test server --test signing_key --test verify_live_committest *args: @just test-unit {{store_test}} {{args}}test-one name: {{store_test}} --test {{name}}test-full *args: @just test-unit @just services-up eval "$(tranquil-dev-services env)" && SQLX_OFFLINE=true cargo nextest run --features tranquil-pds/s3 -E 'not package(tranquil-store)' {{args}}test-pg *args: @just test-unit ./scripts/run-tests.sh {{args}}services-up: tranquil-dev-services upservices-down: tranquil-dev-services downinfra-start: ./scripts/test-infra.sh startinfra-stop: ./scripts/test-infra.sh stopinfra-status: ./scripts/test-infra.sh statusclean: cargo cleandoc: cargo doc --opendb-create: DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx database createdb-migrate: DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx migrate rundb-reset: DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx database drop -y DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx database create DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx migrate runpodman-up: podman compose up -dpodman-down: podman compose downpodman-logs: podman compose logs -fcontainer-build: podman build -t atcr.io/tranquil.farm/tranquil-pds:latest .container-pull: podman pull atcr.io/tranquil.farm/tranquil-pds:latestfrontend-dev: cd frontend && pnpm run devfrontend-build: cd frontend && pnpm run buildfrontend-check: cd frontend && pnpm run checkfrontend-clean: rm -rf frontend/dist frontend/node_modulesfrontend-test *args: cd frontend && VITEST=true pnpm run test:run {{args}}frontend-test-watch: cd frontend && VITEST=true pnpm run test:watchfrontend-test-ui: cd frontend && VITEST=true pnpm run test:uifrontend-test-coverage: cd frontend && VITEST=true pnpm run test:run --coveragebuild-all: frontend-build build