0Pricing
Python Academy · Lección

Versionado y metadatos

Gestione los metadatos del paquete

Versionado y metadatos es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Por qué son importantes los metadatos

Los metadatos incluyen todo lo relacionado con su paquete salvo el código: su versión, descripción, licencia, autor y enlaces. PyPI los usa para mostrar el proyecto y pip los usa para resolver las dependencias.

Unos buenos metadatos hacen que su paquete sea fiable y fácil de instalar.

Versionado semántico

La convención es MAJOR.MINOR.PATCH:

  • MAJOR, cambios incompatibles
  • MINOR, funciones nuevas compatibles con versiones anteriores
  • PATCH, correcciones de errores compatibles con versiones anteriores

Los usuarios se basan en esto para saber si una actualización es segura.

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

Elegir la siguiente versión

La decisión sobre el incremento se basa en reglas: ¿ha roto la API, ha añadido una función o solo ha corregido un error? Codificar esta regla hace que las versiones sean coherentes.

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

Versiones preliminares y de desarrollo

Python permite sufijos: 1.0.0a1 (alfa), 1.0.0b2 (beta), 1.0.0rc1 (candidata a versión final) y 1.0.0.dev3. pip considera que estas versiones son anteriores a la versión final 1.0.0, por lo que los evaluadores pueden optar por instalarlas sin afectar a los usuarios habituales.

Fuente única de verdad

Mantenga la versión en un único lugar. Puede declararla de forma estática en pyproject.toml o marcarla como dynamic y leerla desde el código (o una etiqueta) mediante herramientas como setuptools-scm. Dos copias terminan inevitablemente desincronizadas.

Descripción y README

Una description breve aparece en los resultados de búsqueda. La descripción larga procede de su readme (normalmente README.md) y se muestra como la página del proyecto en PyPI. Indíquela mediante readme = 'README.md'.

Un README claro es su mejor herramienta de promoción.

Licencia

Declare una licencia para que los usuarios conozcan sus derechos. Los proyectos modernos usan una expresión SPDX como license = 'MIT'. Sin una licencia, todos los derechos quedan reservados, lo que desanima a los posibles usuarios.

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

Clasificadores

Los classifiers son etiquetas estandarizadas de la lista de PyPI, como 'Programming Language :: Python :: 3.11' o 'Development Status :: 4 - Beta'. Alimentan los filtros de PyPI y comunican el nivel de madurez y las versiones compatibles.

URL del proyecto

En [project.urls], añada enlaces como Página principal, Documentación, Código fuente y Registro de cambios. Aparecen en una barra lateral de PyPI y ayudan a los usuarios a encontrar el repositorio y la documentación.

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)

Palabras clave para facilitar el descubrimiento

El campo keywords es una lista de términos breves que ayuda a los usuarios a encontrar su paquete en las búsquedas. Elija palabras que realmente escribirían, como ['cli', 'automation', 'excel'], en lugar de términos genéricos de relleno.

Junto con los clasificadores, las palabras clave mejoran la visibilidad de su proyecto.

Un registro de cambios

Mantenga un CHANGELOG que registre los cambios de cada versión. Los usuarios lo consultan antes de actualizar para conocer las funciones nuevas y los cambios incompatibles. Enlazarlo en [project.urls] permite acceder a él con un solo clic desde la página de PyPI.

Un buen registro de cambios convierte un número de versión en una historia que los usuarios pueden seguir.

Comprobación rápida

Compruebe sus conocimientos sobre el versionado.

Resumen

Ha gestionado los metadatos del paquete:

  • Versionado semántico MAJOR.MINOR.PATCH, además de los sufijos de versión preliminar
  • Mantener la versión en una única fuente de verdad
  • Proporcionar description, una descripción larga en README y una license
  • Añadir classifiers y [project.urls] para que PyPI muestre su proyecto correctamente

Preguntas frecuentes

¿La lección «Versionado y metadatos» es gratis?

Sí — el texto completo de «Versionado y metadatos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Versionado y metadatos»?

Gestione los metadatos del paquete Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Versionado y metadatos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Estructura del proyecto y pyproject.toml
  2. Compilación con build
  3. Versionado y metadatos
  4. Publicación con twine
← Volver a Python Academy