Actualizar dependencias de un proyecto en Rust

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,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *