Python Academy · Lektion

Versionering og metadata

Administrér pakkemetadata

Lektion 3 af 413 trin

Versionering og metadata er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.

Hvorfor metadata er vigtigt

Metadata er alt ved din pakke bortset fra koden: dens version, beskrivelse, licens, forfatter og links. PyPI bruger det til at vise dit projekt, og pip bruger det til at løse afhængigheder.

Gode metadata gør din pakke troværdig og nem at installere.

Semantisk versionsstyring

Konventionen er MAJOR.MINOR.PATCH:

  • MAJOR ændringer, der bryder kompatibiliteten
  • MINOR nye, bagudkompatible funktioner
  • PATCH bagudkompatible fejlrettelser

Brugerne stoler på dette for at vide, om en opgradering er sikker.

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))

Valg af næste version

Beslutningen om versionsforøgelsen følger reglerne: Brød du API'et, tilføjede du en funktion, eller rettede du bare en fejl? Når reglen er indbygget, bliver udgivelserne ensartede.

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'))

Forudgivelses- og udviklingsversioner

Python tillader suffikser: 1.0.0a1 (alfa), 1.0.0b2 (beta), 1.0.0rc1 (udgivelseskandidat) og 1.0.0.dev3. pip betragter disse som tidligere end den endelige 1.0.0, så testere kan tilvælge dem uden at påvirke almindelige brugere.

Én sandhedskilde

Gem versionen præcis ét sted. Enten erklærer du den statisk i pyproject.toml, eller markerer den som dynamic og læser den fra koden (eller et mærke) via værktøjer som setuptools-scm. To kopier kommer uundgåeligt til at afvige fra hinanden.

Beskrivelse og README

En kort description vises i søgeresultater. Den lange beskrivelse kommer fra din readme (som regel README.md) og gengives som projektsiden på PyPI. Peg på den med readme = 'README.md'.

En tydelig README er din bedste markedsføring.

Licens

Angiv en licens, så brugerne kender deres rettigheder. Moderne projekter bruger et SPDX-udtryk som license = 'MIT'. Uden en licens er alle rettigheder forbeholdt, hvilket afholder folk fra at tage pakken i brug.

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

Klassifikatorer

classifiers er standardiserede mærker fra PyPI's liste, f.eks. 'Programming Language :: Python :: 3.11' eller 'Development Status :: 4 - Beta'. De driver PyPI's filtre og signalerer modenhed og understøttede versioner.

Projekt-URL'er

Under [project.urls] kan du tilføje links som Hjemmeside, Dokumentation, Kildekode og Ændringslog. De vises i et sidepanel på PyPI og hjælper brugerne med at finde dit kodelager og 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)

Nøgleord til synlighed

Feltet keywords er en liste med korte termer, der hjælper brugerne med at finde din pakke i søgninger. Vælg ord, som folk faktisk ville skrive, f.eks. ['cli', 'automation', 'excel'], i stedet for generiske fyldord.

Sammen med klassifikatorer gør nøgleord dit projekt lettere at finde.

En ændringslog

Vedligehold en CHANGELOG, der registrerer, hvad der blev ændret i hver version. Brugerne læser den før en opgradering for at få mere at vide om nye funktioner og ændringer, der bryder kompatibiliteten. Hvis du linker til den under [project.urls], er den tilgængelig med ét klik fra PyPI-siden.

En god ændringslog forvandler et versionsnummer til en historie, som brugerne kan følge.

Hurtigt tjek

Afprøv din viden om versionsstyring.

Opsummering

Du har håndteret pakkemetadata:

  • Semantisk versionsstyring MAJOR.MINOR.PATCH samt suffikser til forhåndsudgivelser
  • Bevar versionen i en éneste sandhedskilde
  • Angiv description, en lang beskrivelse i README og en license
  • Tilføj classifiers og [project.urls], så PyPI viser dit projekt på bedste vis
Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
76
Lektioner
320

Ofte stillede spørgsmål

Er lektionen “Versionering og metadata” gratis?

Ja — hele teksten til “Versionering og metadata” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Versionering og metadata”?

Administrér pakkemetadata Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Python Academy?

Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Versionering og metadata”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Python Academy-lektion?

Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Projektstruktur og pyproject.toml
  2. Byg med build
  3. Versionering og metadata
  4. Udgivelse med twine
← Tilbage til Python Academy