10 KiB
Bidra till Data Science för Nybörjare
Tack för ditt intresse av att bidra till Data Science för Nybörjare-kursen! Vi välkomnar bidrag från communityn.
Innehållsförteckning
- Uppförandekod
- Hur kan jag bidra?
- Komma igång
- Riktlinjer för bidrag
- Process för pull requests
- Stilriktlinjer
- Licensavtal för bidragsgivare
Uppförandekod
Det här projektet har antagit Microsoft Open Source Code of Conduct. För mer information, se Code of Conduct FAQ eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.
Hur kan jag bidra?
Rapportera buggar
Innan du skapar en buggrapport, kontrollera befintliga ärenden för att undvika dubbletter. När du skapar en buggrapport, inkludera så många detaljer som möjligt:
- Använd en tydlig och beskrivande titel
- Beskriv de exakta stegen för att återskapa problemet
- Ge specifika exempel (kodsnuttar, skärmdumpar)
- Beskriv det beteende du observerade och vad du förväntade dig
- Inkludera detaljer om din miljö (OS, Python-version, webbläsare)
Föreslå förbättringar
Förslag på förbättringar är välkomna! När du föreslår förbättringar:
- Använd en tydlig och beskrivande titel
- Ge en detaljerad beskrivning av den föreslagna förbättringen
- Förklara varför denna förbättring skulle vara användbar
- Lista eventuella liknande funktioner i andra projekt, om tillämpligt
Bidra till dokumentation
Förbättringar av dokumentationen uppskattas alltid:
- Rätta stavfel och grammatiska fel
- Förbättra tydligheten i förklaringar
- Lägg till saknad dokumentation
- Uppdatera föråldrad information
- Lägg till exempel eller användningsfall
Bidra med kod
Vi välkomnar kodbidrag, inklusive:
- Nya lektioner eller övningar
- Buggrättningar
- Förbättringar av befintliga notebooks
- Nya dataset eller exempel
- Förbättringar av quiz-applikationen
Komma igång
Förutsättningar
Innan du bidrar, se till att du har:
- Ett GitHub-konto
- Git installerat på ditt system
- Python 3.7+ och Jupyter installerat
- Node.js och npm (för bidrag till quiz-appen)
- Kunskap om kursens struktur
Se INSTALLATION.md för detaljerade installationsinstruktioner.
Forka och klona
- Forka repot på GitHub
- Klona din fork lokalt:
git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git cd Data-Science-For-Beginners - Lägg till upstream remote:
git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
Skapa en gren
Skapa en ny gren för ditt arbete:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
Grennamns-konventioner:
feature/- Nya funktioner eller lektionerfix/- Buggrättningardocs/- Dokumentationsändringarrefactor/- Kodomstrukturering
Riktlinjer för bidrag
För lektionsinnehåll
När du bidrar med lektioner eller ändrar befintliga:
-
Följ den befintliga strukturen:
- README.md med lektionsinnehåll
- Jupyter-notebook med övningar
- Uppgift (om tillämpligt)
- Länk till quiz före och efter lektionen
-
Inkludera dessa element:
- Tydliga lärandemål
- Steg-för-steg-förklaringar
- Kodexempel med kommentarer
- Övningar för träning
- Länkar till ytterligare resurser
-
Säkerställ tillgänglighet:
- Använd tydligt, enkelt språk
- Ge alt-text för bilder
- Inkludera kodkommentarer
- Tänk på olika inlärningsstilar
För Jupyter-notebooks
-
Rensa alla outputs innan du commitar:
jupyter nbconvert --clear-output --inplace notebook.ipynb -
Inkludera markdown-celler med förklaringar
-
Använd konsekvent formatering:
# Import libraries at the top import pandas as pd import numpy as np import matplotlib.pyplot as plt # Use meaningful variable names # Add comments for complex operations # Follow PEP 8 style guidelines -
Testa din notebook helt innan du skickar in
För Python-kod
Följ PEP 8 stilriktlinjer:
# Good practices
import pandas as pd
def calculate_mean(data):
"""Calculate the mean of a dataset.
Args:
data (list): List of numerical values
Returns:
float: Mean of the dataset
"""
return sum(data) / len(data)
För quiz-app-bidrag
När du ändrar quiz-applikationen:
-
Testa lokalt:
cd quiz-app npm install npm run serve -
Kör linter:
npm run lint -
Bygg framgångsrikt:
npm run build -
Följ Vue.js stilguide och befintliga mönster
För översättningar
När du lägger till eller uppdaterar översättningar:
- Följ strukturen i
translations/-mappen - Använd språkkoden som mappnamn (t.ex.
frför franska) - Behåll samma filstruktur som den engelska versionen
- Uppdatera quiz-länkar för att inkludera språkparameter:
?loc=fr - Testa alla länkar och formatering
Process för pull requests
Innan du skickar in
-
Uppdatera din gren med de senaste ändringarna:
git fetch upstream git rebase upstream/main -
Testa dina ändringar:
- Kör alla modifierade notebooks
- Testa quiz-appen om den ändrats
- Kontrollera att alla länkar fungerar
- Kontrollera stavning och grammatik
-
Commit dina ändringar:
git add . git commit -m "Brief description of changes"Skriv tydliga commit-meddelanden:
- Använd presens ("Lägg till funktion" inte "Lade till funktion")
- Använd imperativ form ("Flytta markören till..." inte "Flyttar markören till...")
- Begränsa första raden till 72 tecken
- Referera till ärenden och pull requests när det är relevant
-
Push till din fork:
git push origin feature/your-feature-name
Skapa pull request
- Gå till repot
- Klicka på "Pull requests" → "New pull request"
- Klicka på "compare across forks"
- Välj din fork och gren
- Klicka på "Create pull request"
Format för PR-titel
Använd tydliga, beskrivande titlar enligt detta format:
[Component] Brief description
Exempel:
[Lektion 7] Rätta importfel i Python-notebook[Quiz App] Lägg till tysk översättning[Docs] Uppdatera README med nya förutsättningar[Fix] Korrigera datapath i visualiseringslektionen
PR-beskrivning
Inkludera i din PR-beskrivning:
- Vad: Vilka ändringar har du gjort?
- Varför: Varför är dessa ändringar nödvändiga?
- Hur: Hur implementerade du ändringarna?
- Testning: Hur testade du ändringarna?
- Skärmdumpar: Inkludera skärmdumpar för visuella ändringar
- Relaterade ärenden: Länka till relaterade ärenden (t.ex. "Fixes #123")
Granskningsprocess
- Automatiska kontroller kommer att köras på din PR
- Maintainers kommer att granska ditt bidrag
- Åtgärda feedback genom att göra ytterligare commits
- När det är godkänt, kommer en maintainer att mergea din PR
Efter att din PR har mergeats
-
Ta bort din gren:
git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name -
Uppdatera din fork:
git checkout main git pull upstream main git push origin main
Stilriktlinjer
Markdown
- Använd konsekventa rubriknivåer
- Inkludera tomma rader mellan sektioner
- Använd kodblock med språkangivelser:
```python import pandas as pd ``` - Lägg till alt-text till bilder:
 - Håll linjelängder rimliga (runt 80-100 tecken)
Python
- Följ PEP 8 stilguide
- Använd meningsfulla variabelnamn
- Lägg till docstrings till funktioner
- Inkludera typanvisningar där det är lämpligt:
def process_data(df: pd.DataFrame) -> pd.DataFrame: """Process the input dataframe.""" return df
JavaScript/Vue.js
- Följ Vue.js 2 stilguide
- Använd den medföljande ESLint-konfigurationen
- Skriv modulära, återanvändbara komponenter
- Lägg till kommentarer för komplex logik
Filorganisation
- Håll relaterade filer tillsammans
- Använd beskrivande filnamn
- Följ befintlig katalogstruktur
- Commita inte onödiga filer (.DS_Store, .pyc, node_modules, etc.)
Licensavtal för bidragsgivare
Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett Licensavtal för bidragsgivare (CLA) som deklarerar att du har rätt att, och faktiskt gör, ge oss rättigheterna att använda ditt bidrag. För detaljer, besök https://cla.microsoft.com.
När du skickar in en pull request, kommer en CLA-bot automatiskt att avgöra om du behöver tillhandahålla en CLA och dekorera PR:n på lämpligt sätt (t.ex. etikett, kommentar). Följ bara instruktionerna som tillhandahålls av boten. Du behöver bara göra detta en gång för alla repositories som använder vår CLA.
Frågor?
- Kolla vår Discord-kanal #data-science-for-beginners
- Gå med i vår Discord-community
- Granska befintliga ärenden och pull requests
Tack!
Dina bidrag gör denna kurs bättre för alla. Tack för att du tar dig tid att bidra!
Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, bör det noteras att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.