Beitrag zum semantischen Kernel
Sie können zum semantischen Kernel beitragen, indem Sie Probleme übermitteln, Diskussionen starten und Pullanforderungen (Pull Requests, PRs) übermitteln. Ein beitragender Code wird sehr geschätzt, aber einfach probleme, die Sie feststellen, ist auch eine großartige Möglichkeit, um mitzuwirken, da es uns hilft, unsere Bemühungen zu konzentrieren.
Probleme und Feedback melden
Wir freuen uns immer über Fehlerberichte, API-Vorschläge und allgemeines Feedback. Da wir GitHub verwenden, können Sie die Registerkarten "Probleme und Diskussionen " verwenden, um eine Unterhaltung mit dem Team zu beginnen. Im Folgenden finden Sie einige Tipps beim Übermitteln von Problemen und Feedback, damit wir so schnell wie möglich auf Ihr Feedback reagieren können.
Melden von Problemen
Neue Probleme für das SDK können in unserer Liste der Probleme gemeldet werden, aber bevor Sie ein neues Problem ablegen, durchsuchen Sie bitte die Liste der Probleme, um sicherzustellen, dass es noch nicht vorhanden ist. Wenn Sie Probleme mit der Dokumentation für den semantischen Kernel (dieser Website) haben, senden Sie bitte ein Problem im Repository für die Semantik kerneldokumentation.
Wenn Sie ein vorhandenes Problem für das finden, was Sie melden möchten, geben Sie bitte Ihr eigenes Feedback in die Diskussion ein. Wir empfehlen auch dringend die Abstimmung (👍 Reaktion) des ursprünglichen Beitrags, da dies uns hilft, beliebte Probleme in unserem Backlog zu priorisieren.
Schreiben eines guten Fehlerberichts
Gute Fehlerberichte erleichtern es Betreuern, das zugrunde liegende Problem zu überprüfen und zu beheben. Je besser ein Fehlerbericht ist, desto schneller kann das Problem behoben werden. Im Idealfall sollte ein Fehlerbericht die folgenden Informationen enthalten:
- Eine allgemeine Beschreibung des Problems.
- Eine minimale Reproduktion, d. h. die kleinste Größe von Code/Konfiguration, die zum Reproduzieren des falschen Verhaltens erforderlich ist.
- Eine Beschreibung des erwarteten Verhaltens, im Gegensatz zum tatsächlich beobachteten Verhalten.
- Informationen zur Umgebung: Betriebssystem/Verteilung, CPU-Architektur, SDK-Version usw.
- Zusätzliche Informationen, z. B. ist es eine Regression aus früheren Versionen? Gibt es bekannte Problemumgehungen?
Übermitteln von Feedback
Wenn Sie allgemeines Feedback zu semantischem Kernel oder Ideen dazu haben, wie Sie es besser machen können, teilen Sie es bitte auf unserer Diskussionsrunde. Bevor Sie eine neue Diskussion beginnen, durchsuchen Sie bitte die Liste der Diskussionen, um sicherzustellen, dass sie noch nicht vorhanden ist.
Wir empfehlen die Verwendung der Ideenkategorie , wenn Sie eine bestimmte Idee haben, die Sie freigeben möchten, und die F&A-Kategorie , wenn Sie eine Frage zum semantischen Kernel haben.
Sie können auch Diskussionen (und jedes Feedback, das Sie erstellt haben) in der Discord-Community beginnen, indem Sie dem Semantischen Kernel-Discord-Server beitreten.
Helfen Sie uns bei der Priorisierung von Feedback
Wir verwenden derzeit Up-Voten, um uns bei der Priorisierung von Problemen und Features in unserem Backlog zu helfen. Bitte stimmen Sie alle Probleme oder Diskussionen, die Sie behandeln möchten, auf.
Wenn Sie denken, dass andere von einem Feature profitieren würden, empfehlen wir Ihnen auch, andere zu bitten, das Problem zu stimmen. Dies hilft uns, Probleme zu priorisieren, die sich auf die meisten Benutzer auswirken. Sie können Kollegen, Freunde oder die Community auf Discord bitten, ein Problem zu bewerten, indem Sie den Link zu der Frage oder Diskussion freigeben.
Übermitteln von Pullanforderungen
Wir freuen uns über Beiträge zum semantischen Kernel. Wenn Sie über einen Fehlerkorrektur oder ein neues Feature verfügen, das Sie mitwirken möchten, führen Sie die folgenden Schritte aus, um eine Pullanfrage (PR) zu übermitteln. Anschließend werden Projektbetreuer Codeänderungen überprüfen und zusammenführen, sobald sie akzeptiert wurden.
Empfohlener Beitragsworkflow
Wir empfehlen die Verwendung des folgenden Workflows, um zum semantischen Kernel beizutragen (dies ist derselbe Workflow, der vom Semantik kernel-Team verwendet wird):
- Erstellen Sie ein Problem für Ihre Arbeit.
- Sie können diesen Schritt für triviale Änderungen überspringen.
- Verwenden Sie ein vorhandenes Problem im Thema wieder, falls vorhanden.
- Erhalten Sie eine Vereinbarung vom Team und der Community, dass Ihre vorgeschlagene Änderung ein gutes ist, indem Sie die Diskussion in der Frage verwenden.
- Geben Sie in der Frage klar an, dass Sie die Umsetzung übernehmen werden. Auf diese Weise können wir Ihnen das Problem zuweisen und sicherstellen, dass eine andere Person nicht versehentlich daran arbeitet.
- Erstellen Sie eine persönliche Verzweigung des Repositorys auf GitHub (wenn Sie noch keines haben).
- Erstellen Sie in Ihrer Verzweigung eine Verzweigung vom Hauptteil (
git checkout -b mybranch
).- Nennen Sie die Verzweigung so, dass sie Ihre Absichten klar kommuniziert, z. B. "issue-123" oder "githubhandle-issue".
- Nehmen Sie Ihre Änderungen an Ihrer Verzweigung vor, und übernehmen Sie sie.
- Fügen Sie ggf. neue Tests hinzu, die Ihrer Änderung entsprechen.
- Erstellen Sie das Repository mit Ihren Änderungen.
- Stellen Sie sicher, dass die Builds sauber sind.
- Stellen Sie sicher, dass alle Tests bestehen, einschließlich der neuen Tests.
- Erstellen Sie eine PR für den Hauptzweig des Repositorys.
- Geben Sie in der Beschreibung an, welches Problem oder welche Verbesserung Ihre Änderung betrifft.
- Überprüfen Sie, ob alle Kontinuierlichen Integrationsprüfungen übergeben werden.
- Warten Sie auf Feedback oder Genehmigung Ihrer Änderungen von den Code-Betreuern.
- Wenn sich Die Besitzer der Gegend abgemeldet haben und alle Prüfungen grün sind, wird Ihre PR zusammengeführt.
Dos and Don'ts während des Beitrags
Im Folgenden finden Sie eine Liste von Dos und Don'ts, die wir empfehlen, wenn sie zu semantischem Kernel beitragen, damit wir Ihre Änderungen so schnell wie möglich überprüfen und zusammenführen können.
Gehen Sie wie folgt vor:
- Befolgen Sie den standardmäßigen .NET-Codierungsstil und python-Codestil
- Geben Sie der aktuellen Formatvorlage des Projekts oder der Datei vorrang, die Sie ändern, wenn sie von den allgemeinen Richtlinien abweichen.
- Schließen Sie Tests ein, wenn Sie neue Features hinzufügen. Beginnen Sie beim Beheben von Fehlern mit dem Hinzufügen eines Tests, der hervorhebt, wie das aktuelle Verhalten unterbrochen wird.
- Halten Sie die Diskussionen im Mittelpunkt. Wenn ein neues oder verwandtes Thema vorkommt, ist es oft besser, ein neues Problem zu erstellen, als die Diskussion nebeneinander zu verfolgen.
- Stellen Sie klar fest, dass Sie es umsetzen werden.
- Blog und/oder tweeten Sie über Ihre Beiträge!
Verbote:
- Überraschen Sie das Team nicht mit großen Pull-Anforderungen. Wir möchten Mitwirkende unterstützen, daher empfehlen wir, ein Problem einzureichen und eine Diskussion zu beginnen, damit wir uns auf eine Richtung einigen können, bevor Sie eine große Zeit investieren.
- Führen Sie keinen Commit für Code durch, den Sie nicht geschrieben haben. Wenn Sie Code finden, den Sie für geeignet halten, um dem semantischen Kernel hinzuzufügen, geben Sie ein Problem ein, und beginnen Sie eine Diskussion, bevor Sie fortfahren.
- Übermitteln Sie keine PRs, die lizenzierungsbezogene Dateien oder Header ändern. Wenn Sie glauben, dass es ein Problem mit ihnen gibt, stellen Sie ein Problem vor, und wir werden es gerne besprechen.
- Erstellen Sie keine neuen APIs, ohne ein Problem abzulegen und zuerst mit dem Team zu diskutieren. Das Hinzufügen eines neuen öffentlichen Oberflächenbereichs zu einer Bibliothek ist ein großer Teil, und wir möchten sicherstellen, dass wir es richtig bekommen.
Aktuelle Änderungen
Beiträge müssen API-Signatur und Verhaltenskompatibilität beibehalten. Wenn Sie eine Änderung vornehmen möchten, die den vorhandenen Code unterbricht, übermitteln Sie bitte ein Problem, um Ihre Idee zu besprechen oder zu ändern, wenn Sie der Meinung sind, dass eine grundlegende Änderung gerechtfertigt ist. Andernfalls werden Beiträge, die bruchbrechende Änderungen enthalten, abgelehnt.
Der Prozess der kontinuierlichen Integration (CI)
Das System für kontinuierliche Integration (Continuous Integration, CI) führt automatisch die erforderlichen Builds aus und führt Tests (einschließlich derEr, die Sie auch lokal ausführen sollten) für PRs aus. Builds und Testläufe müssen sauber sein, bevor eine PR zusammengeführt werden kann.
Wenn der CI-Build aus irgendeinem Grund fehlschlägt, wird das PR-Problem mit einem Link aktualisiert, der verwendet werden kann, um die Ursache des Fehlers zu ermitteln, damit es behoben werden kann.
Beitrag zur Dokumentation
Wir akzeptieren auch Beiträge zum Repository der semantischen Kerneldokumentation.