URL: https://linuxfr.org/news/desole-j-ai-forke Title: Désolé, j'ai forké Authors: lovasoa BAud, Ysabeau, Arkem et Nils Ratusznik Date: 2023-08-22T12:02:15+02:00 License: CC By-SA Tags: licence, sql, logiciel_libre, agpl et sqlpage Score: 3 Forker un logiciel libre (en créer une nouvelle version indépendante de l’original) est une décision difficile, qui risque de diviser sa communauté. Je propose ici la traduction en français d’un article que j’avais initialement écrit en anglais et publié sur le blog du [logiciel de création de sites web SQLPage](https://sql.ophir.dev) à propos du [fork d’une bibliothèque populaire du langage de programmation *Rust*](https://sql.ophir.dev/blog.sql?post=I%E2%80%99m%20sorry%20I%20forked%20you). ---- ---- Je suis plongé dans le milieu du logiciel libre depuis mon adolescence, et aujourd’hui, je ne peux pas imaginer un monde sans lui. Tout au long de ma carrière d’ingénieur logiciel, je n’ai jamais rencontré d’entreprise technologique qui ne soit pas fondée sur les logiciels libres et open source. Chaque entreprise ajoute en général sa propre touche propriétaire à ce vaste paysage open source, mais elles ne font en fin de compte que former un petit mélange privateur au sommet d’un colossal iceberg de système d’exploitation, d’outils, et surtout de bibliothèques logicielles partagées et libres. Dans le monde du logiciel, l’open source est véritablement la force motrice de l’innovation. ## L’argent dans le monde du logiciel Les courants financiers qui parcourent l’industrie du logiciel défient toutes les normes conventionnelles. Contrairement à d’autres secteurs où des acteurs clés du début de la chaîne de production tels que les compagnies pétrolières s’enrichissent en fournissant des produits essentiels à d’autres entreprises, le domaine du logiciel renverse le scénario. Dans ce domaine, ce sont les géants de l’informatique qui font face aux clients finaux, comme Google, qui récoltent les bénéfices; et il arrive souvent que les créateurs des logiciels libres qui forment les fondations de Google et d’innombrables autres entreprises travaillent gratuitement. Les développeurs de logiciels libres observent cette dynamique intrigante, parfois même satisfaits de voir leurs logiciels libres développés gratuitement alimenter la création d’entreprises qui font des millions de dollars de bénéfices. ## *SQLx* : Une merveille du monde de Rust [SQLx](https://crates.io/crates/sqlx) est l’une des nombreuses bibliothèques logicielles qui se trouvent dans la partie immergée de cet iceberg logiciel. Il s’agit d’un formidable pilote de base de données SQL pour le langage de programmation _Rust_, qui harmonise la connexion à une multitude de bases de données. Il est téléchargé environ 20 000 fois par jour. ### La fameuse version 0.7 Le principal mainteneur de *SQLx* a cherché à trouver un juste milieu – créer un bon logiciel libre tout en cherchant la pérennité économique de son projet. Cet effort a conduit à une décision cruciale : extraire les pilotes de base de données de la bibliothèque de base. Tout en conservant la plupart des pilotes en tant que logiciels libres sous la licence permissive *MIT*, **la compatibilité avec Microsoft SQL Server a été abandonnée**. Ce changement architectural significatif a également nécessité la suppression d’autres fonctionnalités du cadre de base, et l’introduction d’une nouvelle API, rendant la migration depuis la version précédente non triviale. ## SQLPage En tant que principal responsable du [serveur d’applications web SQLPage](https://sql.ophir.dev), qui repose sur sqlx, j’ai été confronté à un tournant décisif. Deux possibilités s’offraient à moi : 1. une migration difficile vers SQLx v0.7, en faisant une croix sur la possibilité d’utiliser SQLPage avec Microsoft SQL Server; 2. attendre, et rester sous SQLx v0.6, une solution qui impliquait de conserver des dépendances obsolètes, contenant potentiellement des failles de sécurité rendant le logiciel vulnérable. Après beaucoup d’hésitations, j’ai choisi une troisième voie : **forker SQLx**. ## Désolé, j’ai forké La situation me désole. Je suis vraiment en faveur d’un monde du logiciel libre financièrement viable. J’espère que l’auteur original arrivera à commercialiser ses futurs nouveaux pilotes de base de données et qu’ils le compenseront dûment pour les contributions inestimables qu’il a apportées. Mais, j’ai vraiment besoin d’un bon ensemble de pilotes de base de données sous une licence permissive pour Rust, j’ai besoin de certaines des fonctionnalités qui ont été supprimées dans la v0.7, et je veux que les bases *SQL Server* fonctionnent avec SQLPage. J’ai donc créé [sqlx-oldapi](https://lib.rs/crates/sqlx-oldapi), un fork de SQLx v0.6. Dans le fork : - J’ai méticuleusement mis à jour toutes les dépendances vers leurs dernières itérations, m'assurant ainsi que les fondations restent robustes et sûres. - Les fonctionnalités essentielles qui manquaient ont été incorporées pour répondre à des besoins spécifiques, et des bogues de longue date ont été résolus. Notamment, le support des types de données a été renforcé, avec par exemple un décodage efficace avec perte des valeurs `DECIMAL` en tant que flottants dans tous les pilotes, et un décodage sans perte vers les types natifs de rust. - Mes efforts se sont concentrés sur l’élévation du pilote SQL Server au même niveau que ses pairs. Cela a impliqué la correction de bugs et de crashs, et le support de nouveaux types de données comme `DATETIME` et `DECIMAL`. La liste complète des changements peut être trouvée dans le [changelog](https://github.com/lovasoa/sqlx/blob/main/CHANGELOG.md). ## Notes de conclusion * J’espère sincèrement que sqlx réussira à financer son développement. * Aux développeurs et développeuses qui se trouvent à la même croisée des chemins que moi avec SQLPage, sachez que [sqlx-oldapi](https://lib.rs/crates/sqlx-oldapi) vous attend, prêt à vous aider dans vos efforts, librement. Les contributions et les rapports de bogues sont les bienvenus [sur github](https://github.com/lovasoa/sqlx-oldapi). Et si vous voulez savoir pourquoi l’URL de cette page se termine par `.sql`, jetez un œil à [SQLPage](https://sql.ophir.dev). [NdT : l’URL de l’article original est [`https://sql.ophir.dev/blog.sql?post=I’m sorry I forked you`](https://sql.ophir.dev/blog.sql?post=I%E2%80%99m%20sorry%20I%20forked%20you) ] --- ## Réactions à l’article original L’article traduit ci-dessus a suscité [de nombreuses réactions](https://www.reddit.com/r/rust/comments/15pudt2/im_sorry_i_forked_you/) sur le forum de discussion anglophone reddit. La plus importante est probablement celle de l’auteur principal de sqlx, qui était mécontent de la présentation que l’article faisait de la situation, et qui a notamment apporté deux corrections importantes. 1. L’auteur principal développe SQLx durant son temps de travail, et prend les décisions concernant cette bibliothèque libre en accord avec son employeur. Si la commercialisation de pilotes de base de données rapporte de l’argent, il n’ira pas directement au développeur, mais à son employeur. L’objectif affiché serait de pouvoir justifier d’accorder plus de temps exclusivement au développement de sqlx. 1. Il y avait bien eu une annonce originale du passage du pilote de base de données pour SQL Server sous une licence propriétaire, mais une nouvelle annonce avait déjà été faite, depuis longtemps, lorsque l’article de blog a été publié. SQLx n’a désormais plus l’intention de publier les futurs nouveaux pilotes de base de données sous une licence privatrice, mais de les publier sous la licence libre (mais restrictive) AGPL, et de vendre des exemptions à la licence aux entreprises qui le souhaitent. Pour le moment, rien n’a encore été publié, il n’y a pas de pilote, ni libre ni propriétaire, pour SQL Server avec SQLx v0.7. Et vous, qu’en pensez-vous ? Que pensez-vous de l’idée viabiliser le développement d’un logiciel en le publiant sous une licence libre, mais restrictive, en commercialisant des exceptions à la licence ? Est-il correct de forker un logiciel libre dont l’auteur essaie de rendre son projet plus pérenne en le monétisant ?