Le cache Bazel, l'exécution distante et l'incompatibilité de version de glibc provoquent un plantage en production

2025-09-21
Le cache Bazel, l'exécution distante et l'incompatibilité de version de glibc provoquent un plantage en production

Cet article détaille un plantage en production causé par l'interaction entre le cache Bazel, l'exécution distante et les différentes versions de glibc dans différents environnements. Un développeur compile et teste un changement localement, le CI utilise le cache pour compiler une version de production, mais le déploiement en production échoue en raison de l'absence de la version 'GLIBC_2.28'. L'article analyse comment les différences de version de glibc brisent la reproductibilité de la compilation et présente des solutions : une solution rapide consiste à capturer les versions locales et distantes de glibc, en sélectionnant la plus élevée pour la chaîne d'outils C++ ; une solution plus robuste restreint les écritures dans le cache d'action, forçant les compilations à s'exécuter sur des exécuteurs distants ; la solution ultime utilise les sysroots, en installant plusieurs versions de glibc dans tous les environnements et en spécifiant explicitement celle à utiliser. L'article souligne l'importance des compilations reproductibles, en recommandant des solutions en fonction du contexte.

Lire plus

sandboxfs : Une tentative ratée d’accélération du sandboxing de Bazel sur macOS

2025-06-13
sandboxfs : Une tentative ratée d’accélération du sandboxing de Bazel sur macOS

Un ingénieur Google a tenté d’améliorer les performances du sandboxing de Bazel sur macOS avec le projet sandboxfs. sandboxfs utilisait un système de fichiers en espace utilisateur pour créer des hiérarchies de fichiers virtuelles plus efficacement, remplaçant l’approche initiale des liens symboliques de Bazel. Cependant, parce que les performances des liens symboliques sur macOS n’étaient pas le principal goulot d’étranglement, et en raison de problèmes d’implémentation et de changements dans l’écosystème macOS, sandboxfs a finalement été abandonné. Malgré cela, l’auteur pense que son idée centrale — la création efficace de sandbox — reste prometteuse pour résoudre les problèmes de performances du sandboxing de Bazel sur macOS.

Lire plus
Développement

Bonanza : un avenir natif du cloud pour Bazel ?

2025-04-10
Bonanza : un avenir natif du cloud pour Bazel ?

Pour le 10e anniversaire de Bazel, un projet nommé Bonanza attire l'attention. Il vise à réinventer complètement Bazel en déplaçant l'ensemble du processus de construction vers le cloud afin de résoudre les lacunes de Bazel tant pour les grands que pour les petits projets. Bonanza réalise des constructions véritablement incrémentales en exécutant à distance toutes les opérations, y compris la gestion des dépendances et la construction du graphe de construction, ce qui se traduit par des temps de construction considérablement plus rapides. Bien qu'il soit encore au stade de la preuve de concept, sa conception et son potentiel technique offrent une nouvelle orientation pour les systèmes de construction futurs, laissant présager une ère de construction native du cloud.

Lire plus
Développement Système de construction

Graphiques pratiques sans X11 : Plongeon au cœur de wscons sous NetBSD

2025-01-17
Graphiques pratiques sans X11 : Plongeon au cœur de wscons sous NetBSD

Cet article explique comment réaliser de la programmation graphique bas niveau sous NetBSD sans X11 ni Wayland, en utilisant le framework wscons. L’auteur montre comment accéder et manipuler le framebuffer pour dessiner des graphiques directement sur le terminal et gérer les entrées clavier. Cela permet de contourner les systèmes graphiques traditionnels pour une interaction directe avec le matériel, idéal pour les environnements à ressources limitées comme les systèmes embarqués, offrant des temps de démarrage plus rapides et une consommation de ressources réduite.

Lire plus
Développement

Revue de code : une success story

2025-01-15
Revue de code : une success story

Un ingénieur, X, chez Google, a travaillé sur deux projets avec des processus de revue de code radicalement différents. Le premier, avec des revues minimales, a abouti à une version contenant des bogues. Le second, avec un processus de revue rigoureux et complet, bien que plus lent au départ, a produit une version sans bogues et un apprentissage significatif pour X, impactant positivement sa carrière. L'article soutient que les revues de code ne sont pas intrinsèquement antagonistes ; ce sont les personnes impliquées et la manière dont l'outil est utilisé qui comptent pour améliorer la qualité du code et le mentorat.

Lire plus
Développement

Retour sur le système de construction de NetBSD : un outil puissant mais obscur

2024-12-31
Retour sur le système de construction de NetBSD : un outil puissant mais obscur

Cet article de blog revient sur le système de construction de NetBSD, un système puissant mais quelque peu obscur basé sur une combinaison de BSD make et de scripts shell. Il permet de construire un système NetBSD complet à partir de zéro sur pratiquement n'importe quelle plateforme POSIX, sans privilèges root, et prend en charge la compilation croisée pour diverses architectures. L'auteur détaille le processus de construction, y compris la génération de la chaîne d'outils, la structure de construction, le mécanisme destdir, les constructions sans privilèges et la création de supports de distribution. Tout en reconnaissant les lacunes telles que les constructions incrémentales inefficaces et la gestion imparfaite des dépendances, l'auteur souligne les points forts du système et sa philosophie de conception. L'auteur conclut en mentionnant un projet embarqué actuel utilisant NetBSD et explore la possibilité de migrer le système de construction vers Bazel pour une efficacité accrue.

Lire plus
Développement système de construction

Synology DS923+ contre NAS FreeBSD/ZFS fait maison : Comparaison détaillée

2024-12-19
Synology DS923+ contre NAS FreeBSD/ZFS fait maison : Comparaison détaillée

Julio Merino compare un Synology DS923+ à son NAS personnel construit avec FreeBSD 14 et ZFS. Son NAS personnalisé utilise une puissante station de travail ThinkStation avec beaucoup de CPU et de RAM, tandis que le DS923+ est un appareil NAS dédié compact avec le DSM de Synology et btrfs. Les deux offrent des IOPS et des performances réseau comparables, mais le DS923+ excelle en termes de bruit et de consommation d'énergie. Le DSM offre une expérience conviviale et des solutions de sauvegarde robustes, tandis que FreeBSD/ZFS nécessite plus de configuration et de maintenance manuelles. En fin de compte, l'auteur préfère le DS923+ pour sa tranquillité d'esprit accrue concernant la sécurité et la gestion des données.

Lire plus
Matériel