diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..7decd1b91 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,85 @@ + + +## Summary + + + +## Modules touched + + + +- [ ] `amethyst/` (Android app) +- [ ] `desktopApp/` (Desktop JVM app) +- [ ] `quartz/` (Nostr KMP library) +- [ ] `commons/` (shared UI / ViewModels) +- [ ] `cli/` (`amy`) +- [ ] `quic/` (QUIC + HTTP/3 + WebTransport) +- [ ] `nestsClient/` (audio rooms / MoQ) +- [ ] Build / Gradle / CI +- [ ] Docs only + +## Test plan + + + +- [ ] Ran `./gradlew spotlessApply` — repo is formatted +- [ ] Ran `./gradlew test` (or the relevant module's tests) +- [ ] Manually exercised the change (see notes below) + +Notes / screenshots: + + + +## Interop suites + + + +- [ ] N/A — change can't affect wire bytes / decoded audio / MLS state / DM envelopes +- [ ] Marmot / MLS — `cli/tests/marmot/marmot-interop-headless.sh` (NIP-EE / `whitenoise-rs`) +- [ ] NIP-17 DM — `cli/tests/dm/dm-interop-headless.sh` +- [ ] Audio rooms manual — `cli/tests/nests/nests-interop.sh` (Amethyst ↔ nostrnests.com) +- [ ] MoQ-lite hang-tier — `:nestsClient:jvmTest -DnestsHangInterop=true` +- [ ] MoQ-lite browser-tier — `:nestsClient:jvmTest -DnestsBrowserInterop=true` +- [ ] QUIC interop-runner — `quic/interop/run-matrix.sh -s {aioquic,picoquic,quic-go,quinn}` + +## Risk / rollback + + + +## AI assistance + + + +- [ ] Drafted with AI assistance, manually reviewed and tested +- [ ] Written by hand + +## License + +- [ ] By submitting this PR, I agree to license my contribution under the + MIT license. Any code I did not author personally carries its + original license header. diff --git a/README.md b/README.md index bd5cc3036..340a81bf7 100644 --- a/README.md +++ b/README.md @@ -440,11 +440,22 @@ to `onPause` methods. ## Contributing -Issues can be logged on: [https://gitworkshop.dev/repo/amethyst](https://gitworkshop.dev/repo/amethyst) +See **[CONTRIBUTING.md](CONTRIBUTING.md)** for the full guide — workflow, +coding standards, the proof-of-testing rule for first-time contributors +(human or AI-assisted), the cross-stack interop suites, and how the +`[BUG]` / `[FEATURE]` issue templates and bounty system work. -[GitHub issues](https://github.com/vitorpamplona/amethyst/issues) and [pull requests](https://github.com/vitorpamplona/amethyst/pulls) here are also welcome. Translations can be provided via [Crowdin](https://crowdin.com/project/amethyst-social) +Quick links: -You can also send patches through Nostr using [GitStr](https://github.com/fiatjaf/gitstr) to [this nostr address](https://patch34.pages.dev/naddr1qqyxzmt9w358jum5qyg8v6t5daezumn0wd68yvfwvdhk6qg7waehxw309ahx7um5wgkhqatz9emk2mrvdaexgetj9ehx2ap0qy2hwumn8ghj7un9d3shjtnwdaehgu3wvfnj7q3qgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqxpqqqpmej720gac) +- [GitHub issues](https://github.com/vitorpamplona/amethyst/issues) and + [pull requests](https://github.com/vitorpamplona/amethyst/pulls). +- Nostr-native issue tracker: + [gitworkshop.dev/repo/amethyst](https://gitworkshop.dev/repo/amethyst). +- Translations: [Crowdin](https://crowdin.com/project/amethyst-social). +- Patches over Nostr: [GitStr](https://github.com/fiatjaf/gitstr) to + [this nostr address](https://patch34.pages.dev/naddr1qqyxzmt9w358jum5qyg8v6t5daezumn0wd68yvfwvdhk6qg7waehxw309ahx7um5wgkhqatz9emk2mrvdaexgetj9ehx2ap0qy2hwumn8ghj7un9d3shjtnwdaehgu3wvfnj7q3qgcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqxpqqqpmej720gac). +- Security issues: [SECURITY.md](SECURITY.md) (do **not** file as public + GitHub issues). By contributing to this repository, you agree to license your work under the MIT license. Any work contributed where you are not the original author must contain its license header with the original author(s) and source.