Python Academy · leksjon

Versjonering og metadata

Administrer pakkemetadata

Leksjon 3 av 413 trinn

Versjonering og metadata er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hvorfor metadata er viktig

Metadata er alt ved pakken bortsett fra koden: versjon, beskrivelse, lisens, utvikler og lenker. PyPI bruker metadataene til å vise prosjektet, og pip bruker dem til å løse avhengigheter.

Gode metadata gjør pakken mer pålitelig og enklere å installere.

Semantisk versjonering

Konvensjonen er MAJOR.MINOR.PATCH:

  • MAJOR endringer som bryter kompatibiliteten
  • MINOR nye, bakoverkompatible funksjoner
  • PATCH bakoverkompatible feilrettinger

Brukerne stoler på dette for å vite om en oppgradering er trygg.

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

Velge neste versjon

Valget av versjonsøkning følger regler: Brøt De API-et, la De til en funksjon, eller rettet De bare en feil? Når regelen kodes inn, blir utgivelsene konsekvente.

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

Forhåndsversjoner og utviklingsversjoner

Python tillater suffikser: 1.0.0a1 (alfa), 1.0.0b2 (beta), 1.0.0rc1 (utgivelseskandidat) og 1.0.0.dev3. pip behandler disse som tidligere enn den endelige 1.0.0, slik at testere kan velge dem uten å påvirke vanlige brukere.

Én kilde til sannheten

Oppbevar versjonen nøyaktig ett sted. Enten deklarerer De den statisk i pyproject.toml, eller markerer den som dynamic og leser den fra koden (eller en tagg) via verktøy som setuptools-scm. To kopier vil uunngåelig komme i utakt.

Beskrivelse og README

En kort description vises i søkeresultater. Den lange beskrivelsen hentes fra readme (vanligvis README.md) og gjengis som prosjektsiden på PyPI. Pek på den med readme = 'README.md'.

En tydelig README er den beste markedsføringen Deres.

Lisens

Deklarer en lisens, slik at brukerne vet hvilke rettigheter de har. Moderne prosjekter bruker et SPDX-uttrykk som license = 'MIT'. Uten lisens er alle rettigheter forbeholdt, noe som gjør at færre vil ta pakken i bruk.

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

Klassifikatorer

classifiers er standardiserte tagger fra PyPIs liste, for eksempel 'Programming Language :: Python :: 3.11' eller 'Development Status :: 4 - Beta'. De driver filtrene på PyPI og viser modenhet og støttede versjoner.

Prosjektadresser

Legg til lenker som Homepage, Documentation, Source og Changelog under [project.urls]. De vises i et sidefelt på PyPI og hjelper brukerne med å finne depotet og dokumentasjonen Deres.

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økkelord for å bli funnet

Feltet keywords er en liste med korte termer som hjelper brukerne med å finne pakken i søk. Velg ord folk faktisk ville skrevet inn, som ['cli', 'automation', 'excel'], i stedet for generiske fyllord.

Sammen med klassifikatorer gjør nøkkelord prosjektet enklere å oppdage.

En endringslogg

Vedlikehold en CHANGELOG som registrerer hva som ble endret i hver versjon. Brukerne leser den før de oppgraderer, for å få vite om nye funksjoner og endringer som bryter kompatibiliteten. Hvis De lenker til den under [project.urls], er den tilgjengelig med ett klikk fra PyPI-siden.

En god endringslogg gjør et versjonsnummer om til en historie brukerne kan følge.

Kort sjekk

Test kunnskapene dine om versjonering.

Oppsummering

Du har håndtert metadata for pakker:

  • Semantisk versjonering MAJOR.MINOR.PATCH, pluss suffikser for forhåndsutgivelser
  • Oppbevar versjonen i én autoritativ kilde
  • Oppgi description, en lang beskrivelse i README-en og en license
  • Legg til classifiers og [project.urls] slik at PyPI presenterer prosjektet ditt på en god måte
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Versjonering og metadata» gratis?

Ja – hele teksten i «Versjonering og metadata» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Versjonering og metadata»?

Administrer pakkemetadata Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Versjonering og metadata»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Prosjektstruktur og pyproject.toml
  2. Bygge med build
  3. Versjonering og metadata
  4. Publisering med twine
← Tilbake til Python Academy