From 7644f5bf76fc2d7a6167e9be7da39696fe1deece Mon Sep 17 00:00:00 2001 From: inventory69 Date: Wed, 24 Dec 2025 00:12:11 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20Add=20CONTRIBUTING.md=20with=20P?= =?UTF-8?q?R=20workflow=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Comprehensive contributor guide (bilingual DE/EN) - Explains automated PR build checks - Local build & test instructions - Code style guidelines - PR checklist - What contributions are welcome - Linked in README.md and README.en.md [skip ci] --- CONTRIBUTING.md | 263 ++++++++++++++++++++++++++++++++++++++++++++++++ README.en.md | 6 ++ README.md | 6 ++ 3 files changed, 275 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..fdec73e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,263 @@ +# Contributing to Simple Notes Sync 🤝 + +> Beiträge sind willkommen! / Contributions are welcome! + +**🌍 Languages:** [Deutsch](#deutsch) · [English](#english) + +--- + +## Deutsch + +Danke, dass du zu Simple Notes Sync beitragen möchtest! + +### 🚀 Schnellstart + +1. **Fork & Clone** + ```bash + git clone https://github.com/DEIN-USERNAME/simple-notes-sync.git + cd simple-notes-sync + ``` + +2. **Branch erstellen** + ```bash + git checkout -b feature/mein-feature + # oder + git checkout -b fix/mein-bugfix + ``` + +3. **Änderungen machen** + - Code schreiben + - Testen + - Committen mit aussagekräftiger Message + +4. **Pull Request erstellen** + - Push deinen Branch: `git push origin feature/mein-feature` + - Gehe zu GitHub und erstelle einen Pull Request + - Beschreibe deine Änderungen + +### 🧪 Automatische Tests + +Wenn du einen Pull Request erstellst, läuft automatisch ein **Build Check**: + +- ✅ Debug APKs werden gebaut (Standard + F-Droid) +- ✅ Unit Tests werden ausgeführt +- ✅ APKs werden als Artefakte hochgeladen (zum Testen) +- ✅ Build-Status wird als Kommentar im PR gepostet + +**Wichtig:** Der Build muss erfolgreich sein (grüner Haken ✅) bevor der PR gemerged werden kann. + +### 📱 Android App Development + +**Build lokal testen:** +```bash +cd android + +# Debug Build +./gradlew assembleStandardDebug + +# Tests ausführen +./gradlew test + +# Lint Check +./gradlew lint +``` + +**Anforderungen:** +- Android SDK 36 (Target) +- Android SDK 24 (Minimum) +- JDK 17 +- Kotlin 1.9+ + +### 📝 Code Style + +- **Kotlin:** Folge den [Kotlin Coding Conventions](https://kotlinlang.org/docs/coding-conventions.html) +- **Formatierung:** Android Studio Default Formatter +- **Kommentare:** Deutsch oder Englisch (bevorzugt Englisch für Code) + +### 🐛 Bug Reports + +Nutze die [Bug Report Template](https://github.com/inventory69/simple-notes-sync/issues/new/choose) mit: +- Android Version +- App Version +- Schritte zum Reproduzieren +- Erwartetes vs. tatsächliches Verhalten + +### 💡 Feature Requests + +Nutze die [Feature Request Template](https://github.com/inventory69/simple-notes-sync/issues/new/choose) und beschreibe: +- Was soll hinzugefügt werden +- Warum ist es nützlich +- Wie könnte es funktionieren + +### 📚 Dokumentation + +Dokumentations-Verbesserungen sind auch Contributions! + +**Dateien:** +- `README.md` / `README.en.md` - Übersicht +- `QUICKSTART.md` / `QUICKSTART.en.md` - Schritt-für-Schritt Anleitung +- `DOCS.md` / `DOCS.en.md` - Technische Details +- `server/README.md` / `server/README.en.md` - Server Setup + +**Bitte:** Halte beide Sprachen (DE/EN) synchron! + +### ✅ Pull Request Checklist + +- [ ] Code kompiliert lokal (`./gradlew assembleStandardDebug`) +- [ ] Tests laufen durch (`./gradlew test`) +- [ ] Keine neuen Lint-Warnungen +- [ ] Commit-Messages sind aussagekräftig +- [ ] Dokumentation aktualisiert (falls nötig) +- [ ] Beide Sprachen aktualisiert (bei Doku-Änderungen) + +### 🎯 Was wird akzeptiert? + +**✅ Gerne:** +- Bug Fixes +- Performance-Verbesserungen +- Neue Features (nach Diskussion in einem Issue) +- Dokumentations-Verbesserungen +- Tests +- UI/UX Verbesserungen + +**❌ Schwierig:** +- Breaking Changes (bitte erst als Issue diskutieren) +- Komplett neue Architektur +- Dependencies mit fragwürdigen Lizenzen + +### 📄 Lizenz + +Indem du contributest, stimmst du zu dass dein Code unter der [MIT License](LICENSE) veröffentlicht wird. + +--- + +## English + +Thanks for wanting to contribute to Simple Notes Sync! + +### 🚀 Quick Start + +1. **Fork & Clone** + ```bash + git clone https://github.com/YOUR-USERNAME/simple-notes-sync.git + cd simple-notes-sync + ``` + +2. **Create Branch** + ```bash + git checkout -b feature/my-feature + # or + git checkout -b fix/my-bugfix + ``` + +3. **Make Changes** + - Write code + - Test + - Commit with meaningful message + +4. **Create Pull Request** + - Push your branch: `git push origin feature/my-feature` + - Go to GitHub and create a Pull Request + - Describe your changes + +### 🧪 Automated Tests + +When you create a Pull Request, an automatic **Build Check** runs: + +- ✅ Debug APKs are built (Standard + F-Droid) +- ✅ Unit tests are executed +- ✅ APKs are uploaded as artifacts (for testing) +- ✅ Build status is posted as comment in PR + +**Important:** The build must succeed (green checkmark ✅) before the PR can be merged. + +### 📱 Android App Development + +**Test build locally:** +```bash +cd android + +# Debug Build +./gradlew assembleStandardDebug + +# Run tests +./gradlew test + +# Lint Check +./gradlew lint +``` + +**Requirements:** +- Android SDK 36 (Target) +- Android SDK 24 (Minimum) +- JDK 17 +- Kotlin 1.9+ + +### 📝 Code Style + +- **Kotlin:** Follow [Kotlin Coding Conventions](https://kotlinlang.org/docs/coding-conventions.html) +- **Formatting:** Android Studio Default Formatter +- **Comments:** German or English (preferably English for code) + +### 🐛 Bug Reports + +Use the [Bug Report Template](https://github.com/inventory69/simple-notes-sync/issues/new/choose) with: +- Android version +- App version +- Steps to reproduce +- Expected vs. actual behavior + +### 💡 Feature Requests + +Use the [Feature Request Template](https://github.com/inventory69/simple-notes-sync/issues/new/choose) and describe: +- What should be added +- Why is it useful +- How could it work + +### 📚 Documentation + +Documentation improvements are also contributions! + +**Files:** +- `README.md` / `README.en.md` - Overview +- `QUICKSTART.md` / `QUICKSTART.en.md` - Step-by-step guide +- `DOCS.md` / `DOCS.en.md` - Technical details +- `server/README.md` / `server/README.en.md` - Server setup + +**Please:** Keep both languages (DE/EN) in sync! + +### ✅ Pull Request Checklist + +- [ ] Code compiles locally (`./gradlew assembleStandardDebug`) +- [ ] Tests pass (`./gradlew test`) +- [ ] No new lint warnings +- [ ] Commit messages are meaningful +- [ ] Documentation updated (if needed) +- [ ] Both languages updated (for doc changes) + +### 🎯 What Gets Accepted? + +**✅ Welcome:** +- Bug fixes +- Performance improvements +- New features (after discussion in an issue) +- Documentation improvements +- Tests +- UI/UX improvements + +**❌ Difficult:** +- Breaking changes (please discuss in issue first) +- Completely new architecture +- Dependencies with questionable licenses + +### 📄 License + +By contributing, you agree that your code will be published under the [MIT License](LICENSE). + +--- + +## 🆘 Fragen? / Questions? + +Öffne ein [Issue](https://github.com/inventory69/simple-notes-sync/issues) oder nutze die [Question Template](https://github.com/inventory69/simple-notes-sync/issues/new/choose). + +**Frohe Weihnachten & Happy Coding! 🎄** diff --git a/README.en.md b/README.en.md index f94d5a8..13158d3 100644 --- a/README.en.md +++ b/README.en.md @@ -65,6 +65,12 @@ cd android --- +## 🤝 Contributing + +Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for details. + +--- + ## 📄 License MIT License - see [LICENSE](LICENSE) diff --git a/README.md b/README.md index fbc1ea6..a9c6ca4 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,12 @@ cd android --- +## 🤝 Contributing + +Beiträge sind willkommen! Siehe [CONTRIBUTING.md](CONTRIBUTING.md) für Details. + +--- + ## 📄 Lizenz MIT License - siehe [LICENSE](LICENSE)