📝 Add CONTRIBUTING.md with PR workflow documentation

- 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]
This commit is contained in:
inventory69
2025-12-24 00:12:11 +01:00
parent 300dc67a7c
commit 7644f5bf76
3 changed files with 275 additions and 0 deletions

263
CONTRIBUTING.md Normal file
View File

@@ -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! 🎄**