Les modifications apportées dans ce PR introduisent correctement un arrêt gracieux (graceful shutdown) via CancellationToken de tokio-util, une capture des signaux SIGTERM/SIGINT, ainsi qu'un Containerfile pour construire l'image Docker et un script de build/push. L'architecture générale est saine. Cependant, quelques points de robustesse sont à améliorer : version de Rust non stable, image de base Debian en version testing, portabilité des signaux (Linux only), import inutile, et précision du script de push. Pour une première release, ces ajustements garantiront une meilleure maintenabilité et reproductibilité.
Cost: $0.00098065
## Review Feedback
### 5 issues found.
---
### Summary
Les modifications apportées dans ce PR introduisent correctement un arrêt gracieux (graceful shutdown) via `CancellationToken` de `tokio-util`, une capture des signaux SIGTERM/SIGINT, ainsi qu'un Containerfile pour construire l'image Docker et un script de build/push. L'architecture générale est saine. Cependant, quelques points de robustesse sont à améliorer : version de Rust non stable, image de base Debian en version testing, portabilité des signaux (Linux only), import inutile, et précision du script de push. Pour une première release, ces ajustements garantiront une meilleure maintenabilité et reproductibilité.
---
### Cost: $0.00098065
L'image Rust 1.96 n'est pas une version stable connue. Privilégiez une version précise et stable (ex: rust:1.85.0) pour garantir la reproductibilité des builds. Si vous utilisez une nightly, indiquez-le clairement avec une date ou un digest.
L'image Rust `1.96` n'est pas une version stable connue. Privilégiez une version précise et stable (ex: `rust:1.85.0`) pour garantir la reproductibilité des builds. Si vous utilisez une nightly, indiquez-le clairement avec une date ou un digest.
Debian trixie est actuellement une version Testing, pas encore stable. Utilisez une version stable comme debian:bookworm-slim (Debian 12) ou debian:bullseye-slim pour éviter des surprises lors de mises à jour non contrôlées.
Debian `trixie` est actuellement une version Testing, pas encore stable. Utilisez une version stable comme `debian:bookworm-slim` (Debian 12) ou `debian:bullseye-slim` pour éviter des surprises lors de mises à jour non contrôlées.
La commande push ne précise pas le registre complet. Comme l'image a été taguée avec docker.io/..., cela fonctionnera, mais il peut être plus explicite d'utiliser buildah push "docker.io/${IMAGE}:${TAG}" pour éviter toute ambiguïté. Ajoutez également un tag latest si cela est souhaité pour les releases.
La commande `push` ne précise pas le registre complet. Comme l'image a été taguée avec `docker.io/...`, cela fonctionnera, mais il peut être plus explicite d'utiliser `buildah push "docker.io/${IMAGE}:${TAG}"` pour éviter toute ambiguïté. Ajoutez également un tag `latest` si cela est souhaité pour les releases.
L'import Bytes semble inutilisé dans ce fichier (le nom est importé mais jamais référencé). Supprimez-le pour éviter un avertissement du compilateur. Vérifiez la suite du fichier, mais si non utilisé, il est préférable de le retirer.
L'import `Bytes` semble inutilisé dans ce fichier (le nom est importé mais jamais référencé). Supprimez-le pour éviter un avertissement du compilateur. Vérifiez la suite du fichier, mais si non utilisé, il est préférable de le retirer.
Le code utilise tokio::signal::unix qui ne fonctionne que sous Linux/Unix. Assurez-vous que l'application ne cible que ces systèmes, ou ajoutez une gestion alternative pour Windows (ex: tokio::signal::ctrl_c). Pour une première release, cela peut être acceptable si le déploiement est Linux uniquement.
Le code utilise `tokio::signal::unix` qui ne fonctionne que sous Linux/Unix. Assurez-vous que l'application ne cible que ces systèmes, ou ajoutez une gestion alternative pour Windows (ex: `tokio::signal::ctrl_c`). Pour une première release, cela peut être acceptable si le déploiement est Linux uniquement.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
prepare first release with graceful shutdown + containerfile + push to hub script
@Herald
Review Feedback
5 issues found.
Summary
Les modifications apportées dans ce PR introduisent correctement un arrêt gracieux (graceful shutdown) via
CancellationTokendetokio-util, une capture des signaux SIGTERM/SIGINT, ainsi qu'un Containerfile pour construire l'image Docker et un script de build/push. L'architecture générale est saine. Cependant, quelques points de robustesse sont à améliorer : version de Rust non stable, image de base Debian en version testing, portabilité des signaux (Linux only), import inutile, et précision du script de push. Pour une première release, ces ajustements garantiront une meilleure maintenabilité et reproductibilité.Cost: $0.00098065
@@ -0,0 +1,12 @@FROM rust:1.96 as builderL'image Rust
1.96n'est pas une version stable connue. Privilégiez une version précise et stable (ex:rust:1.85.0) pour garantir la reproductibilité des builds. Si vous utilisez une nightly, indiquez-le clairement avec une date ou un digest.@@ -0,0 +5,4 @@RUN cargo build --releaseFROM debian:trixie-slimDebian
trixieest actuellement une version Testing, pas encore stable. Utilisez une version stable commedebian:bookworm-slim(Debian 12) oudebian:bullseye-slimpour éviter des surprises lors de mises à jour non contrôlées.@@ -0,0 +17,4 @@.echo "Pushing ${IMAGE}:${TAG}..."buildah push "${IMAGE}:${TAG}"La commande
pushne précise pas le registre complet. Comme l'image a été taguée avecdocker.io/..., cela fonctionnera, mais il peut être plus explicite d'utiliserbuildah push "docker.io/${IMAGE}:${TAG}"pour éviter toute ambiguïté. Ajoutez également un taglatestsi cela est souhaité pour les releases.@@ -1,5 +1,4 @@use anyhow::anyhow;use axum::body::{Body, Bytes, to_bytes};use axum::body::{Bytes, to_bytes};L'import
Bytessemble inutilisé dans ce fichier (le nom est importé mais jamais référencé). Supprimez-le pour éviter un avertissement du compilateur. Vérifiez la suite du fichier, mais si non utilisé, il est préférable de le retirer.@@ -60,2 +65,3 @@tokio::try_join!(bot.start(rx), api::start(app_state))?;let signal = async {let mut sigterm = signal(SignalKind::terminate())?;Le code utilise
tokio::signal::unixqui ne fonctionne que sous Linux/Unix. Assurez-vous que l'application ne cible que ces systèmes, ou ajoutez une gestion alternative pour Windows (ex:tokio::signal::ctrl_c). Pour une première release, cela peut être acceptable si le déploiement est Linux uniquement.Graceful shutdown work !