Ga naar inhoud

Bijdragen; bijdragen; bijdragen; doneren (dit woord heeft meerdere betekenissen en de specifieke vertaling moet worden bepaald op basis van de context)

Bedankt voor uw interesse om bij te dragen aan Starlette. U kunt op verschillende manieren bijdragen aan het project:

Meld bugs of andere problemen

Iets gevonden dat Starlette zou moeten ondersteunen? Per ongeluk onverwacht gedrag tegengekomen?

Bijdragen moeten over het algemeen beginnen met een discussie. Mogelijke bugs kunnen naar voren worden gebracht als "potentiële problemen" -discussies en functieverzoeken kunnen worden aangedragen als "ideeën" -discussies. We kunnen dan bepalen of die discussie moet worden geëscaleerd naar "problemen", of dat we pull-aanvragen zullen overwegen.

Beschrijf zoveel mogelijk details en geef in het geval van een bugrapport zoveel mogelijk informatie, zoals:

  • Besturingssysteem Platform
  • Python versie
  • geïnstalleerde afhankelijkheden en versies (python -m pip freeze)
  • codefragment
  • Fout bij het volgen van backtrack

U moet altijd proberen elk voorbeeld terug te brengen tot de eenvoudigst mogelijke situatie die het probleem illustreert.

Ontwikkelen; ontwikkelen

Om Starlette te ontwikkelen, maak je een vork voor de Starlette-repository op GitHub.

Kloon vervolgens je branch met de volgende opdracht en vervang YOUR-USERNAME door je GitHub-gebruikersnaam:

$Git kloon https://github.com/YOUR-USERNAME/starlette

U kunt nu het project en zijn afhankelijkheden installeren met de volgende opdracht:

$CD ster
$scripts / installeren

Testen en code-inspectie

We gebruiken aangepaste shell-scripts om onze workflows voor testen, code-inspectie en documentatie-build te automatiseren.

Gebruik om deze tests uit te voeren:

$scripts / tests

Alle andere argumenten worden doorgegeven aan pytest. Zie de pytest-documentatie voor meer informatie.

Bijvoorbeeld een enkel testscript uitvoeren:

$scripts / test testen /test_application.py

Om de code automatisch geformatteerd uit te voeren:

$scripts / lint

Ten slotte, om de codecontroles afzonderlijk uit te voeren (ze worden ook uitgevoerd als onderdeel van scripts/test), voert u uit:

$scripts / cheques

Opnemen; documenten opstellen

De documentatiepagina bevindt zich onder de docs/-map.

Om een documentatiesite lokaal uit te voeren (handig voor het bekijken van wijzigingen), gebruikt u:

$scripts / documenten

Oplossen van build / continue integratiefouten

Zodra je een pull-verzoek hebt ingediend, wordt de testsuite automatisch uitgevoerd en worden de resultaten weergegeven op GitHub. Als de testsuite mislukt, moet je op de link "Details" klikken en proberen te achterhalen waarom de testsuite is mislukt.

Mislukte PR-commit-status

Hier zijn enkele veelvoorkomende manieren waarop testsuites kunnen mislukken:

Controleopdracht mislukt

Mislukte GitHub-actie lint-taak

Deze taakfout betekent een probleem met de codeopmaak of een probleem met de typeannotatie. U kunt de werkuitvoer bekijken om erachter te komen waarom deze is mislukt, of deze in een shell uitvoeren:

$scripts / cheques

Het is misschien de moeite waard om $ scripts/lint uit te voeren om te proberen de code automatisch te formatteren en als de bewerking slaagt, de wijzigingen vast te leggen.

Documenttaak mislukt

Deze taakfout betekent dat de documentopbouw is mislukt. Dit kan om verschillende redenen gebeuren, zoals ongeldige Markdown of ontbrekende configuratie binnen mkdocs.yml.

Python 3. X-taak is mislukt

Mislukte GitHub-actietesttaken

Deze taakfout betekent dat de unit-test is mislukt of dat niet alle codepaden zijn overschreven door de unit-test.

Als de test mislukt, ziet u dit bericht onder het dekkingsrapport:

=== 1 failed, 435 passed, 1 skipped, 1 xfailed in 11.09s ===

Als de test succesvol is, maar de dekking onze huidige drempel niet bereikt, ziet u dit bericht onder het dekkingsrapport:

FAIL Required test coverage of 100% not reached. Total coverage: 99.00%

Publiceren; vrijgeven; vrijgeven

Deze sectie is gericht op Starlette-beheerders.

Voordat u een nieuwe versie uitbrengt, maakt u een pull-verzoek met de volgende inhoud:

  • Een update van de changelog:
    • We volgen het keepachangelog formaat.
    • vergelijkt master met de nieuwste versie van tags en somt alle items op die interessant zijn voor onze gebruikers:
      • Wat moet worden gedocumenteerd in de changelog: functies toegevoegd, gewijzigd, verouderd of verwijderd en bugfixes.
      • Wat niet mag worden vastgelegd in de changelog: wijzigingen in documentatie, tests of tools.
      • Probeer items te sorteren in aflopende volgorde van impact / belang.
      • Houd het beknopt en to the point.🎯 Een versie-upgrade voor* : zie __version__.py.

Zie bijvoorbeeld # 1600.

Zodra een PR-release is samengevoegd, wordt een nieuwe release gemaakt, waaronder:

  • label versies zoals 0.13.3.
  • titel uitbrengen Version 0.13.3
  • Beschrijft het kopiëren vanuit het wijzigingslogboek.

Eenmaal gemaakt, wordt deze versie automatisch geüpload naar PyPI.

Als er een probleem is met de PyPI-taak, kunt u het scripts/publish-script gebruiken om de versie vrij te geven.