Para asegurarnos que las dependencias siempre esten en la última versión podemos usar el Dependabot, que se encargará de crear pull requests actualizando a las últimas versiones.
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
labels:
- "dependencies"
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
labels:
- "dependencies"
Ahora debemos crear un archivo de configuración para el proyecto. Este se debe llamar setup.py
, y debemos rellenar los datos siguientes
con los nuestros propios:
from setuptools import setup, find_packages
setup(
name="Proyecto ###", # Nombre del proyecto
version="0.1", # Versión de desarrollo
description="Esta es la descripción del proyecto", # Descripción del funcionamiento
author="Autor", # Nombre del autor
author_email='[email protected]', # Email del autor
license="GPL", # Licencia: MIT, GPL, GPL 2.0...
url="https://example.com", # Página oficial (si la hay)
packages=find_packages(),
# Dependencias. Podemos añadir tantas como necesitemos, e indicarlas con el formato "wheels" si nos da igual la versión que instale.
# Si queremos que todos los contribuidores tengan la misma versión podemos usar "wheels==0.12" para una versión exacta,
# o "wheels>=0.12" para una versión igual o mayor.
install_requires=[],
)
En la sección de install_requires
lo lógico es no ponerlo en código plano, sino importar la lista de dependencias de un archivo de
requerimientos llamado requirements.txt
. Y cambiaremos esta línea por:
install_requires=[i.strip() for i in open("requirements.txt").readlines()]
Dentro de este archivo colocaremos la lista de dependencias con el mismo formato anterior, colocando una dependencia en cada línea, por ejemplo:
pillow==1.1.0
django>=1.10.0,<=1.10.3
pygame
Ahora tenemos el proyecto configurado, pero debemos reestructurar un poco la estructura de archivos. Debemos colocar todos los scripts
en una carpeta independiente, por ejemplo llamada main
. Y dentro, el archivo principal debe llarmarse __init__.py
.