Python Academy · Lektion

Versionshantering och metadata

Hantera paketmetadata

Lektion 3 av 413 steg

Versionshantering och metadata är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Varför metadata är viktigt

Metadata är allt som rör paketet förutom koden: version, beskrivning, licens, författare och länkar. PyPI använder den för att visa projektet, och pip använder den för att lösa beroenden.

God metadata gör paketet tillförlitligt och möjligt att installera.

Semantisk versionshantering

Konventionen är MAJOR.MINOR.PATCH:

  • MAJOR bakåtinkompatibla ändringar
  • MINOR nya, bakåtkompatibla funktioner
  • PATCH bakåtkompatibla buggfixar

Användarna förlitar sig på detta för att veta om en uppgradering är säker.

version = '2.4.1'
major, minor, patch = version.split('.')
print('Major', major, 'Minor', minor, 'Patch', patch)
print('Bug fix -> bump patch to', major + '.' + minor + '.' + str(int(patch) + 1))

Välja nästa version

Vilken del som ska höjas avgörs av reglerna: bröt du API:t, lade du till en funktion eller rättade du bara ett fel? När regeln kodifieras blir releaserna konsekventa.

def bump(version, kind):
    major, minor, patch = (int(x) for x in version.split('.'))
    if kind == 'major':
        return str(major + 1) + '.0.0'
    if kind == 'minor':
        return str(major) + '.' + str(minor + 1) + '.0'
    return str(major) + '.' + str(minor) + '.' + str(patch + 1)

print(bump('1.2.3', 'minor'))
print(bump('1.2.3', 'major'))

Förhandsversioner och utvecklingsversioner

Python tillåter suffix: 1.0.0a1 (alpha), 1.0.0b2 (beta), 1.0.0rc1 (release candidate) och 1.0.0.dev3. pip betraktar dessa som tidigare än den slutliga 1.0.0, så testare kan välja dem aktivt utan att påverka vanliga användare.

En enda källa till sanningen

Behåll versionen på exakt ett ställe. Antingen deklarerar du den statiskt i pyproject.toml eller markerar den som dynamic och läser den från koden (eller en tagg) med verktyg som setuptools-scm. Två kopior kommer oundvikligen att glida isär.

Beskrivning och README

En kort description visas i sökresultat. Den långa beskrivningen hämtas från din readme (vanligtvis README.md) och visas som projektsidan på PyPI. Hänvisa till den med readme = 'README.md'.

En tydlig README är din bästa marknadsföring.

Licens

Ange en licens så att användarna vet vilka rättigheter de har. Moderna projekt använder ett SPDX-uttryck som license = 'MIT'. Utan licens gäller alla rättigheter förbehållna, vilket avskräcker från användning.

popular = ['MIT', 'Apache-2.0', 'BSD-3-Clause', 'GPL-3.0-only']
for lic in popular:
    print('SPDX:', lic)

Klassificerare

classifiers är standardiserade taggar från PyPI:s lista, till exempel 'Programming Language :: Python :: 3.11' eller 'Development Status :: 4 - Beta'. De används för PyPI:s filter och signalerar mognadsgrad och vilka versioner som stöds.

Projektadresser

Under [project.urls] lägger du till länkar som Startsida, Dokumentation, Källkod och Ändringslogg. De visas i ett sidofält på PyPI och hjälper användarna att hitta ditt kodförråd och din dokumentation.

urls = {
    'Homepage': 'https://example.com',
    'Source': 'https://github.com/me/mytool',
    'Issues': 'https://github.com/me/mytool/issues',
}
for label, link in urls.items():
    print(label.ljust(10), link)

Nyckelord för sökbarhet

Fältet keywords är en lista med korta termer som hjälper användare att hitta paketet i sökningar. Välj ord som människor faktiskt skulle skriva, till exempel ['cli', 'automation', 'excel'], i stället för generiskt utfyllnadsmaterial.

Tillsammans med klassificerare förbättrar nyckelord hur lätt projektet går att hitta.

En ändringslogg

Underhåll en CHANGELOG som dokumenterar vad som ändrades i varje version. Användarna läser den före en uppgradering för att få information om nya funktioner och bakåtinkompatibla ändringar. Om du länkar till den under [project.urls] finns den ett klick bort från PyPI-sidan.

En bra ändringslogg förvandlar ett versionsnummer till en berättelse som användarna kan följa.

Snabbtest

Testa dina kunskaper om versionshantering.

Sammanfattning

Du hanterade paketmetadata:

  • Semantisk versionshantering MAJOR.MINOR.PATCH samt suffix för förhandsversioner
  • Behåll versionen i en enda sanningskälla
  • Ange description, en lång beskrivning i README och en license
  • Lägg till classifiers och [project.urls] så att PyPI visar upp projektet på ett bra sätt
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Versionshantering och metadata” gratis?

Ja – hela texten till ”Versionshantering och metadata” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Versionshantering och metadata”?

Hantera paketmetadata Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Versionshantering och metadata”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Projektstruktur och pyproject.toml
  2. Bygga med build
  3. Versionshantering och metadata
  4. Publicera med twine
← Tillbaka till Python Academy