Code beisteuern
Wie kann ich einen Beitrag leisten?
Mitwirken bedeutet nicht zwangsläufig, Code hinzuzufügen. Sie können Fragen einreichen (https://github.com/shepherdpp/qteasy/issues/new?assignees=&labels=&projects=&template=bug-report—bugreport.md&title=), an Diskussionen teilnehmen (https://github.com/shepherdpp/qteasy/discussions) und Funktionen vorschlagen (https://github.com/shepherdpp/qteasy/issues/new?assignees=&labels=&projects=&template=feature-request—newfeaturerequest.md&title=). All dies sind wertvolle Beiträge. Ich freue mich auch sehr, wenn Sie Ihre mit
qteasyerstellten Handelsstrategien oder Ideen für deren Umsetzung teilen. Natürlich ist auch das Schreiben von Code fürqteasyeine großartige Möglichkeit, mitzuwirken. Ich bin Ihnen für jeden Beitrag sehr dankbar.Sie können alle Richtlinien für Beiträge zu Open-Source-Software konsultieren (z. B. Open Source Guide). Daher werde ich hier nur einige Punkte erwähnen, auf die ich mich bei qteasy konzentrieren werde.
Problem melden
Bitte geben Sie bei der Einreichung eines Fehlerberichts eine klare Beschreibung des Problems sowie Informationen zu Ihrer Arbeitsumgebung an. Sie können die [Vorlage für Fehlerberichte](https://github.com/shepherdpp/qteasy/issues/new?assignees=&labels=&projects=&template=bug-report—bug report.md&title=) verwenden, um die folgenden Abschnitte in Ihre Beschreibung aufzunehmen:
Was Sie erwarten: Beschreiben Sie das Ziel, das Sie erreichen möchten, oder das Ergebnis, das Sie erwarten, wenn Sie auf dieses Problem stoßen.
Spezifischer Code: Geben Sie den Code an, von dem Sie glauben, dass er das gewünschte Ergebnis erzielt.
Tatsächliche Ergebnisse: Beschreiben Sie die tatsächlich erzielten Ergebnisse, einschließlich Fehlermeldungen.
Arbeitsumgebung: Bitte teilen Sie mir Ihre Maschine, Ihr Betriebssystem und die Versionen der Abhängigkeiten mit.
Systemkonfiguration: Drucken Sie Ihre QtEasy-Konfiguration und die Übersicht der lokalen Datenquellen aus.
Reproduktionsmethoden: Bitte geben Sie Beispiele an, die es mir ermöglichen, das Problem zu reproduzieren, um die Ursache zu ermitteln.
Beispiele bereitstellen und die Dokumentation verbessern
Ich hoffe und schätze Ihre Hilfe besonders bei der Bereitstellung weiterer Anwendungsbeispiele oder bei der Verbesserung der Projektdokumentation, zum Beispiel:
Erstellen Sie eine beispielhafte Handelsstrategie
Batch-Code-Snippets teilen
Visuelle Diagramme teilen
Fehler im Dokument korrigieren
Bitte reichen Sie Ihren Beitrag gemäß dem unten beschriebenen Fork/Clone/Pull Request-Workflow ein. Ich werde Ihnen so schnell wie möglich antworten.
Workflow für Verzweigungs-/Klon-/Zusammenführungsanfragen
Der Standard-Workflow für Beiträge auf GitHub heißt Fork/Clone. Für alle, die damit noch nicht vertraut sind, folgt hier eine kurze Zusammenfassung und einige weiterführende Links.
Wir setzen voraus, dass Sie mit den Grundlagen von Git vertraut sind:
git clone,git commitusw.
Hinweis: Ein „Fork“ ist einfach ein
git clone, der auf GitHub erstellt und in Ihrem eigenen GitHub-Konto gespeichert wird. Sie können einen Fork über die Schaltfläche Fork auf GitHub erstellen. Dadurch kann GitHub die Beziehung zwischen dem ursprünglichen GitHub-Repository und Ihrem Fork nachverfolgen.Der grundlegende Arbeitsablauf ist wie folgt:
Erstelle einen Fork, der in deinem GitHub-Konto existieren wird.
Klonen Sie Ihren Fork-Branch auf Ihren lokalen Rechner (
git clone).Ändern Sie Ihren lokalen Code, speichern Sie die Änderungen mit
git commitund übertragen Sie die Änderungen anschließend mitgit pushin Ihren GitHub-Fork.Wenn Sie mit dem Code in Ihrem Fork zufrieden sind, eröffnen Sie einen Pull Request (PR) auf der GitHub-Seite Ihres Forks. Ein Pull Request ist im Wesentlichen eine Anfrage, die Änderungen aus Ihrem Fork in das Haupt-Repository von qteasy zu übernehmen. PRs bieten auf GitHub die Möglichkeit, die Änderungen einzusehen und Kommentare und Diskussionen darüber zu veröffentlichen.
Nach der Codeüberprüfung und falls die Maintainer weitere Änderungen wünschen, müssen Sie keinen neuen Pull Request einreichen (solange der ursprüngliche PR noch offen ist). Stattdessen können Sie die Änderungen in Ihrem lokalen Klon vornehmen und sie dann mit
git pushin Ihren Fork übertragen. Die Änderungen werden automatisch in den offenen Pull Request übernommen.Nach Abschluss der oben genannten Schritte werden die Maintainer von
qteasydie Änderungen aus Ihrem Fork in dasqteasy-Repository übernehmen. Der Pull Request wird automatisch geschlossen. (Ihr Fork bleibt jedoch bestehen und kann zukünftig für weitere Pull Requests verwendet werden; Informationen zur Aktualisierung Ihres Forks finden Sie in der GitHub-Dokumentation.)
Einige Referenzmaterialien:
GitHub-Dokumentation:
https://docs.github.com/en/get-started/quickstart/contributing-to-projects
Einige Zusammenfassungen von Nutzern:
https://gist.github.com/Chaser324/ce0505fbed06b947d962
https://gist.github.com/rjdmoore/ed014fba0ee2c7e75060ccd01b726cb8
Codierungsstandards
Ich bestehe nicht strikt auf der Einhaltung jeder einzelnen Regel von PEP-8, ignoriere sie aber auch nicht völlig. Ich tendiere zu einem Mittelweg: Ich bin offen für alle allgemein anerkannten Standards und gängigen Programmierpraktiken.
Hier sind einige Dinge, die mir besondere Sorgen bereiten könnten:
Verwenden Sie beim Schreiben von Code keine Tabulatoren zur Einrückung, sondern vier Leerzeichen.
Beim Schreiben von Code sollten Sie stets klare und prägnante Kommentare hinzufügen, die dessen Zweck erläutern. Dies ist besonders wichtig für Code, dessen Funktion nicht offensichtlich ist.
Wenn Sie eine wichtige Funktion hinzufügen (d. h. eine Funktion, deren Verwendung in mehr als wenigen Sätzen erklärt werden muss), erstellen Sie bitte ein „Funktions-Tutorial“ für diese Funktion. Beispiele für Funktions-Tutorials finden Sie in den Dateien im Ordner „examples“
Wenn Sie eine wichtige Funktion hinzufügen, erstellen Sie eine Regressionstestdatei im Testordner, ähnlich den anderen Regressionstestdateien dort. Am einfachsten ist es in der Regel, Beispiele aus dem „Funktionstutorial“ der jeweiligen Funktion auszuwählen (siehe vorheriger Punkt).
Wenn Sie eine bestehende Codedatei modifizieren, versuchen Sie, den bestehenden Codestil in dieser Datei nachzuahmen.