mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-30 07:37:38 +00:00
Quartz moves to its own repo, the way the crypto primitives moved to crypto-kmp. Every module depends on com.vitorpamplona.quartz:quartz 2.0.0 (libs.quartz) instead of :quartz, and -PquartzDir=../quartz builds a local checkout instead of the artifact, for every module and for quic's own quartz dependency (which replaces the root build's substitution of the published quartz with :quartz). What moved with quartz: its CI jobs (lint tasks, test-quartz-linux-native, test-quartz-ios), the Maven Central publish step of the release workflow, jitpack.yml, tools/unicode-nfkc, the nostr-expert and event-store-semantics skills, the agent-skill check, and the README's library usage docs. What stays here: - The four quartz client tests that need a real Ktor socket relay (TrustNetworkSync*, GiantReqStreamTest, BulkDownloadBenchmark) move to geode's tests; geode forwards -PprodRelayBench for the latter. quartz's other relay-client tests now use a test relay of its own, which ends quartz's test dependency on geode. - The benchmark module's resources (previously read from quartz's androidDeviceTest resources) move into benchmark/; relayBench --real reads the corpus from there. - NoteComposeKindCoverageTest reads EventFactory.kt from quartz's JVM sources jar, or from the -PquartzDir checkout, passed by commonsUI's build. - commons and commonsUI declare crypto-kmp (and commons mls-kmp), which they import directly. Through quartz's api alone, a -PcryptoKmpDir checkout never reached the common metadata compile. - The catalog drops what only quartz used (kchesslib, negentropy, jackson-databind, sqlite-bundled, secp256k1-kmp common, compose runtime-annotation, the maven-publish plugin). agent_config_check checks a skill's quartz/... paths against a ../quartz checkout when there is one and skips them otherwise. AGENTS.md, the skills, CONTRIBUTING, BUILDING, RELEASE_OPS, PLANS and the READMEs point at the new repo. Needs quartz 2.0.0 (and crypto-kmp 1.0.0) on Maven Central before CI can resolve it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DEkJaDWYrcTbGvT8JLQCrG
65 lines
2.6 KiB
Bash
Executable File
65 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
GREEN='\033[0;32m'
|
||
NO_COLOR='\033[0m'
|
||
|
||
echo "*********************************************************"
|
||
echo "Running git pre-push hook."
|
||
echo "*********************************************************"
|
||
echo ""
|
||
echo "Java Version: "
|
||
echo "$JAVA_HOME"
|
||
echo "$(java -version)"
|
||
echo "Running test... "
|
||
|
||
# Single-variant pre-push tests. `./gradlew test` would compile six Android
|
||
# variants of :amethyst (play/fdroid × debug/release/benchmark) plus full
|
||
# native-libs merging per variant — ~6× the work of one variant. CI runs the
|
||
# multi-flavor matrix on push to main; pre-push only needs one happy path.
|
||
#
|
||
# Every KMP module's tests live under <module>:jvmTest - the Kotlin Multiplatform
|
||
# plugin registers no plain `test` task - so a module missing from this list is a
|
||
# module nobody runs before pushing. Add new KMP modules here when they gain tests.
|
||
#
|
||
# `./gradlew test` now reaches the KMP modules too (see the `test` alias in the root
|
||
# build), but this hook stays explicit: a bare `test` would also pull in :desktopApp:test,
|
||
# which needs a display server and is deliberately skipped on CLAUDE_CODE_REMOTE below.
|
||
TASKS=(
|
||
# The CI lint job's KMP checks. The JVM tests below compile shared code for the JVM only,
|
||
# where java.util and java.io APIs (HashMap.putIfAbsent, Dispatchers.IO without the
|
||
# kotlinx.coroutines.IO import, AutoCloseable.use on skia or okio types) still resolve.
|
||
# The metadata compiles reject them, so a break that only iOS would hit fails here on any
|
||
# host. Keep this list in sync with the lint job in .github/workflows/build.yml.
|
||
:commons:verifyKmpPurity
|
||
:commonsUI:verifyKmpPurity
|
||
:commons:compileCommonMainKotlinMetadata
|
||
:commonsUI:compileCommonMainKotlinMetadata
|
||
:commonsUI:compileSkikoMainKotlinMetadata
|
||
:commons:jvmTest
|
||
:commonsUI:jvmTest
|
||
# Android-only commonsUI code (e.g. SafeImeInsets) is tested here, not in jvmTest.
|
||
:commonsUI:testAndroidHostTest
|
||
:nestsClient:jvmTest
|
||
:marmotQuic:jvmTest
|
||
:amethyst:testPlayDebugUnitTest
|
||
:cli:test
|
||
)
|
||
|
||
if [ "${CLAUDE_CODE_REMOTE:-}" = "true" ]; then
|
||
./gradlew "${TASKS[@]}" --quiet
|
||
else
|
||
./gradlew "${TASKS[@]}" :desktopApp:test --quiet
|
||
fi
|
||
status=$?
|
||
|
||
if [ "$status" = 0 ] ; then
|
||
echo "All test passed."
|
||
exit 0
|
||
else
|
||
echo "*********************************************************"
|
||
echo 1>&2 "Failing check or test"
|
||
printf "Fix the compile errors or failing tests above and push again. Run ${GREEN}./gradlew test${NO_COLOR} for the full JVM suite.\n"
|
||
echo "*********************************************************"
|
||
exit 1
|
||
fi
|