Tengo que confesarte que había algo que llevaba un tiempo reconcomiendo por dentro, y no era, ni mas ni menos que la actualización de dependencias en un proyecto de Rust. No terminaba de ver, como podía actualizar todas las dependencias de uno mis distintos proyectos en Rust. ¿Quizás tenía que ir revisando crate a crate si había una nueva versión?. No, no es necesario. Para nada. Todo es mucho mas sencillo. Y esto que me planteaba ya lo había resuelto alguien, antes que yo.
Así, que actualizar las dependencias de un proyecto a su última versión va a ser algo realmente sencillo, y tan solo necesitamos instalar un crate.
Actualizar dependencias de un proyecto en Rust
cargo-edit
cargo-edit
, es una extensión para Cargo que te permite agregar, eliminar y actualizar dependencias directamente desde la línea de comandos, modificando el archivo Cargo.toml
. Con cargo-edit
, gestionar las dependencias de tu proyecto se vuelve mucho más sencillo y rápido. En este artículo, te explicaré cómo instalar, configurar y utilizar esta herramienta en sistemas Linux.
Instalación
Antes de comenzar, asegúrate de tener instalada una versión reciente de Rust y Cargo. Si estás en Ubuntu, también necesitarás tener instalados los paquetes libssl-dev
y pkg-config
. Una vez cumplidos estos requisitos, puedes instalar cargo-edit
con el siguiente comando:
$ cargo install cargo-edit
Si prefieres utilizar una versión empaquetada de OpenSSL, puedes hacerlo de la siguiente manera:
$ cargo install cargo-edit --features vendored-openssl
Es importante tener en cuenta que esta herramienta requiere al menos rustc 1.44+
. Si no estás seguro de cómo funciona cargo install
, te recomiendo consultar la documentación de Cargo para obtener más detalles.
También existe la opción de instalar un subconjunto específico de comandos con la siguiente sintaxis:
$ cargo install -f --no-default-features --features "<COMMANDS>"
Donde <COMMANDS>
es una lista separada por espacios de los comandos que deseas instalar. Por ejemplo, para instalar los comandos add
, rm
y upgrade
, utilizarías:
$ cargo install -f --no-default-features --features "add rm upgrade"
Configuración y Personalización
Una vez instalado cargo-edit
, no requiere configuración adicional. Sin embargo, es importante mencionar que cargo-edit
está integrado en las versiones más recientes de Cargo para los comandos add
y rm
, por lo que ya están disponibles directamente sin la necesidad de instalar una versión anterior de cargo-edit
.
Uso de cargo-edit
1. Agregar Dependencias
Para agregar una nueva dependencia a tu proyecto, puedes utilizar el comando cargo add
. Por ejemplo, si quieres agregar la dependencia serde
a tu proyecto, harías lo siguiente:
$ cargo add serde
Si deseas agregar una dependencia desde un path local, puedes hacerlo de esta manera:
$ cargo add --path /ruta/a/tu/dependencia
2. Eliminar Dependencias
Si necesitas eliminar una dependencia de tu proyecto, puedes utilizar el comando cargo rm
. Por ejemplo, para eliminar la dependencia reqwest
, usarías:
$ cargo rm reqwest
3. Actualizar Dependencias
Para actualizar las dependencias de tu proyecto a sus últimas versiones, puedes utilizar el comando cargo upgrade
. Si quieres especificar una versión específica para actualizar, puedes hacerlo así:
$ cargo upgrade -p docopt@~0.9.0 -p serde@">=0.9,<2.0"
Este comando te permite actualizar las dependencias registradas en el archivo Cargo.toml
. Ten en cuenta que esto no actualiza el archivo de bloqueo (Cargo.lock
).
4. Cambiar la Versión del Proyecto
Con el comando cargo set-version
, puedes cambiar la versión de tu proyecto directamente desde la línea de comandos. Por ejemplo, para establecer la versión en 1.0.0
, usarías:
$ cargo set-version 1.0.0
También puedes incrementar la versión automáticamente utilizando las opciones --bump
. Por ejemplo, para incrementar la versión al próximo número mayor, utilizarías:
$ cargo set-version --bump major
Para el próximo número menor:
$ cargo set-version --bump minor
Y para el próximo número de parche:
$ cargo set-version --bump patch
Ejemplos de Uso
Agregar y Eliminar Dependencias
Supongamos que tienes un proyecto Rust y deseas agregar la dependencia chrono
para trabajar con fechas y horas:
$ cargo add chrono
Luego, decides eliminar la dependencia regex
de tu proyecto:
$ cargo rm regex
Actualizar Dependencias
Imagina que tienes un proyecto Rust con varias dependencias y deseas actualizarlas a sus últimas versiones:
$ cargo upgrade
También, puedes actualizar una dependencia específica a una versión determinada:
$ cargo upgrade -p reqwest@0.11.3
El vídeo
A continuación el vídeo donde te cuento lo mismo pero en otro formato,
Conclusiones
cargo-edit
es una herramienta increíblemente útil para simplificar la gestión de dependencias en proyectos Rust. Con los comandos add
, rm
y upgrade
, puedes agregar, eliminar y actualizar dependencias rápidamente desde la línea de comandos. Esto facilita el trabajo con las dependencias de tu proyecto, permitiéndote concentrarte en el desarrollo de tu aplicación.
Recuerda siempre consultar la documentación oficial de Rust y Cargo para obtener más información sobre cómo utilizar cargo-edit
y aprovechar al máximo su potencial.
¡Espero que esta guía te haya sido de ayuda! Si tienes alguna pregunta o inquietud, no dudes en preguntarme.
Más información,