Wir begrüßen Beiträge zum Fess-Projekt! Diese Seite erklärt, wie Sie zu Fess beitragen können, Community-Richtlinien, Schritte zum Erstellen von Pull Requests usw.
Einführung
Fess ist ein Open-Source-Projekt und wächst durch die Beiträge der Community. Jeder kann beitragen, unabhängig vom Erfahrungsniveau in der Programmierung.
Möglichkeiten beizutragen
Sie können auf verschiedene Weise zu Fess beitragen.
Code-Beiträge
Hinzufügen neuer Funktionen
Fehlerbehebungen
Performance-Verbesserungen
Refactoring
Hinzufügen von Tests
Dokumentations-Beiträge
Verbesserung der Benutzerhandbücher
Hinzufügen/Aktualisieren von API-Dokumentation
Erstellen von Tutorials
Übersetzungen
Issue-Berichterstattung
Fehlerberichte
Feature-Anfragen
Fragen oder Vorschläge
Community-Aktivitäten
Diskussionen in GitHub Discussions
Beantworten von Fragen in Foren
Schreiben von Blogbeiträgen oder Tutorials
Präsentationen bei Veranstaltungen
Erster Beitrag
Wenn Sie zum ersten Mal zu Fess beitragen, empfehlen wir die folgenden Schritte.
Schritt 1: Das Projekt verstehen
Überprüfen Sie grundlegende Informationen auf der offiziellen Fess-Website
Verstehen Sie den Entwicklungsüberblick unter Open-Source-Volltextsuche-Server - Fess Entwicklungsübersicht
Lernen Sie die Codestruktur unter Architektur und Codestruktur
Schritt 2: Nach Issues suchen
Suchen Sie auf der GitHub-Issue-Seite nach Issues mit dem Label good first issue.
Diese Issues sind relativ einfache Aufgaben, die für Erstbeiträger geeignet sind.
Schritt 3: Entwicklungsumgebung einrichten
Richten Sie Ihre Entwicklungsumgebung gemäß Einrichten der Entwicklungsumgebung ein.
Schritt 4: Branch erstellen und arbeiten
Erstellen Sie gemäß Entwicklungsworkflow einen Branch und beginnen Sie mit dem Codieren.
Schritt 5: Pull Request erstellen
Committen Sie Ihre Änderungen und erstellen Sie einen Pull Request.
Codierungskonventionen
Fess folgt den folgenden Codierungskonventionen, um konsistenten Code zu pflegen.
Java-Codierungsstil
Grundstil
Einrückung: 4 Leerzeichen
Zeilenumbruch: LF (Unix-Stil)
Kodierung: UTF-8
Zeilenlänge: maximal 140 Zeichen empfohlen
Namenskonventionen
Pakete: Kleinbuchstaben, durch Punkte getrennt (z. B.:
org.codelibs.fess)Klassen: PascalCase (z. B.:
SearchService)Schnittstellen: PascalCase (z. B.:
Crawler)Methoden: camelCase (z. B.:
executeSearch)Variablen: camelCase (z. B.:
searchResult)Konstanten: UPPER_SNAKE_CASE (z. B.:
MAX_SEARCH_SIZE)
Kommentare
Javadoc:
Schreiben Sie Javadoc für öffentliche Klassen, Methoden und Felder.
Implementierungskommentare:
Fügen Sie für komplexe Logik Kommentare auf Japanisch oder Englisch hinzu.
Klassen- und Methodendesign
Prinzip der einzigen Verantwortung: Eine Klasse hat nur eine Verantwortung
Kleine Methoden: Eine Methode macht nur eine Sache
Aussagekräftige Namen: Klassen- und Methodennamen sollten ihre Absicht deutlich machen
Ausnahmebehandlung
Umgang mit null
Vermeiden Sie nach Möglichkeit die Rückgabe von
nullVerwendung von
Optionalwird empfohlenKennzeichnen Sie null-Möglichkeit explizit mit
@Nullable-Annotation
Schreiben von Tests
Schreiben Sie Tests für alle öffentlichen Methoden
Testmethodennamen beginnen mit
testVerwenden Sie das Given-When-Then-Muster
Code-Review-Richtlinien
Pull-Request-Review-Prozess
Automatische Überprüfung: CI führt automatisch Builds und Tests aus
Code-Review: Betreuer überprüfen den Code
Feedback: Änderungsanfragen bei Bedarf
Genehmigung: Review wird genehmigt
Merge: Betreuer merged in den main-Branch
Review-Aspekte
Im Review werden folgende Punkte überprüft:
Funktionalität
Erfüllt es die Anforderungen
Funktioniert es wie beabsichtigt
Werden Randfälle berücksichtigt
Code-Qualität
Entspricht es den Codierungskonventionen
Ist der Code lesbar und wartbar
Ist die Abstraktion angemessen
Tests
Sind ausreichende Tests geschrieben
Bestehen die Tests
Führen die Tests sinnvolle Überprüfungen durch
Performance
Gibt es Auswirkungen auf die Performance
Ist die Ressourcennutzung angemessen
Sicherheit
Gibt es Sicherheitsprobleme
Ist die Eingabevalidierung angemessen
Dokumentation
Ist die erforderliche Dokumentation aktualisiert
Ist Javadoc angemessen geschrieben
Antworten auf Review-Kommentare
Reagieren Sie auf Review-Kommentare zeitnah und höflich.
Wenn Änderungen erforderlich sind:
Wenn Diskussion erforderlich ist:
Best Practices für Pull Requests
Größe der PR
Erstellen Sie kleine, leicht zu überprüfende PRs
Eine PR sollte eine logische Änderung enthalten
Teilen Sie große Änderungen in mehrere PRs auf
PR-Titel
Geben Sie einen klaren und beschreibenden Titel an:
PR-Beschreibung
Fügen Sie folgende Informationen hinzu:
Änderungsinhalt: Was wurde geändert
Grund: Warum diese Änderung notwendig ist
Testmethode: Wie wurde es getestet
Screenshots: Bei UI-Änderungen
Zugehöriges Issue: Issue-Nummer (z. B.: Closes #123)
Commit-Nachrichten
Schreiben Sie klare und beschreibende Commit-Nachrichten:
Beispiel:
Verwendung von Draft-PRs
Erstellen Sie PRs, an denen Sie noch arbeiten, als Draft-PR und ändern Sie sie zu „Ready for review“, wenn sie fertig sind.
Community-Richtlinien
Verhaltenskodex
Die Fess-Community hält sich an folgenden Verhaltenskodex:
Respektvoll sein: Respektieren Sie alle Menschen
Kooperativ sein: Geben Sie konstruktives Feedback
Offen sein: Begrüßen Sie unterschiedliche Perspektiven und Erfahrungen
Höflich sein: Verwenden Sie höfliche Sprache
Kommunikation
Wo Sie Fragen stellen können:
GitHub Discussions: Allgemeine Fragen und Diskussionen
Issue-Tracker: Fehlerberichte und Feature-Anfragen
Fess-Forum: Japanisches Forum
Wie man Fragen stellt:
Fragen Sie konkret
Erklären Sie, was Sie versucht haben
Fügen Sie Fehlermeldungen oder Logs hinzu
Geben Sie Umgebungsinformationen an (OS, Java-Version usw.)
Wie man antwortet:
Höflich und freundlich
Geben Sie konkrete Lösungen an
Bieten Sie Links zu Referenzmaterialien
Dankbarkeit ausdrücken
Wir drücken Dankbarkeit für Beiträge aus. Auch kleine Beiträge sind für das Projekt wertvoll.
Häufig gestellte Fragen
F: Können auch Anfänger beitragen?
A: Ja, herzlich willkommen! Wir empfehlen, mit Issues zu beginnen, die das Label good first issue haben. Auch die Verbesserung der Dokumentation ist ein für Anfänger geeigneter Beitrag.
F: Wie schnell werden Pull Requests überprüft?
A: Normalerweise innerhalb weniger Tage. Dies kann jedoch je nach Zeitplan der Betreuer variieren.
F: Was passiert, wenn ein Pull Request abgelehnt wird?
A: Überprüfen Sie den Grund für die Ablehnung und Sie können ihn nach Änderungen erneut einreichen. Wenn Sie unsicher sind, fragen Sie gerne nach.
F: Was passiert, wenn ich gegen Codierungskonventionen verstoße?
A: Es wird im Review darauf hingewiesen, also ist es kein Problem, wenn Sie es korrigieren. Sie können die Formatierung vorab überprüfen und korrigieren, indem Sie mvn formatter:format ausführen. Mit mvn license:format können Sie auch die Lizenz-Header automatisch formatieren.
F: Was ist, wenn ich eine große Funktion hinzufügen möchte?
A: Wir empfehlen, zuerst ein Issue zu erstellen und den Vorschlag zu diskutieren. Durch vorherige Einigung können Sie verschwenderische Arbeit vermeiden.
F: Darf ich auf Japanisch fragen?
A: Ja, sowohl Japanisch als auch Englisch sind in Ordnung. Fess ist ein Projekt aus Japan, daher gibt es auch gute japanische Unterstützung.
Leitfaden nach Art des Beitrags
Verbesserung der Dokumentation
Forken Sie das Dokumentations-Repository:
Nehmen Sie Änderungen vor
Erstellen Sie einen Pull Request
Fehlerbericht
Suchen Sie nach vorhandenen Issues, um Duplikate zu vermeiden
Erstellen Sie ein neues Issue
Fügen Sie folgende Informationen hinzu:
Fehlerbeschreibung
Schritte zur Reproduktion
Erwartetes Verhalten
Tatsächliches Verhalten
Umgebungsinformationen
Feature-Anfrage
Erstellen Sie ein Issue
Erklären Sie Folgendes:
Beschreibung der Funktion
Hintergrund und Motivation
Vorgeschlagene Implementierungsmethode (optional)
Code-Review
Die Überprüfung der Pull Requests anderer Personen ist ebenfalls ein Beitrag:
Finden Sie eine interessante PR
Überprüfen Sie den Code
Geben Sie konstruktives Feedback
Lizenz
Fess wird unter der Apache License 2.0 veröffentlicht. Beigesteuerte Code unterliegt derselben Lizenz.
Durch das Erstellen eines Pull Requests stimmen Sie zu, dass Ihr Beitrag unter dieser Lizenz veröffentlicht wird.
Danksagung
Vielen Dank für Ihren Beitrag zum Fess-Projekt! Ihr Beitrag macht Fess zu einer besseren Software.
Nächste Schritte
Wenn Sie bereit sind, beizutragen:
Richten Sie Ihre Entwicklungsumgebung mit Einrichten der Entwicklungsumgebung ein
Überprüfen Sie den Entwicklungsablauf mit Entwicklungsworkflow
Suchen Sie nach Issues auf GitHub
Referenzmaterialien
Community-Ressourcen
GitHub: codelibs/fess
Discussions: GitHub Discussions
Forum: Fess-Forum
Twitter: @codelibs
Website: fess.codelibs.org