En tant que développeur de Python, je trouve ça chouette d'encourager les gens à tester la version RC1 pour qu'un maximum de bugs soient remontés avant la version 3.10.0 finale !
C’est une menace latente mais bien réelle sur laquelle alerte Veracode dans son 11eme rapport « State of Software Security : Open Source Edition » (sur inscription). En effet pour le spécialiste des tests applicatifs, un champ de mines se cache sous le capot des logiciels modernes. Ces bombes à retardement proviennent des bibliothèques open source et de l’absence d’actualisation du code. En général, les développeurs se servent de ces librairies pour créer leurs applications, mais sans se soucier de la qualité du code, ni de la sécurité.
L'article peut laisser penser qu'utiliser des librairies libre introduit une menace dans un logiciel.
Avant les logiciels fermés avaient sûrement le même problème en copiant/collant du code sans se soucier des licences. La différence est que maintenant il y a un meilleur suivi des "dépendances", leur version, et détecter les vulnérabilités connues est plus aisé (peut être automatisé et GitHub le fait très bien !).
Pour moi, c'est un progrès en terme de sécurité. Il n'y a pas plus du vulnérabilités qu'avant. C'est uniquement la communication sur ces vulnérabilités connues qui est meilleure !
Hé oui, avoir des dépendances demande de les tenir à jour. Roh là là, déjà le code est gratuit, mais en plus il faut travailler pour les tenir à jour ! Remboursez le logiciel libre gratuit !
Après, irc ne mourra pas complètement avant quelques générations tout comme pleins de langages de programmations ou des trucs comme gopher perdurent avec peu d'utilisateurs.
En écrivant ce journal, j'ai appris que Freenode avait 90 000 utilisateurs. Au niveau du microcosme du logiciel libre, c'est plutôt important comme taille de réseau social. Au niveau du protocole IRC, Freenode est simplement le plus gros réseau mondial en 2021 : numéro 1 de https://netsplit.de/networks/top10.php
Le logiciel libre est plutôt réputé pour la diversité de ses outils. Freenode est un des derniers chainon centralisé du logiciel libre. GitHub devient le nouveau chainon centralisé du logiciel libre (le code de Freenode y était hébergé ;-)).
Pour avoir un ordre d'idée, GitHub annonce avoir 40 millions d'utilisateurs. Freenode avec ses 90k représente 0.2% de GitHub.
Oups désolé, j'ai mal lu, Rob a été renversé par une voiture alors qu'il était à vélo :
On 12 September 2006, Levin was struck by a car while riding a bicycle at night in Houston, Texas, in a hit-and-run collision. After the collision, it was reported that Levin was hospitalized for several days. He died on 16 September.
L'article cite "lilo", Rob Levin : fondateur de Freenode, mort dans un accident de moto en 2006. Il cite aussi Christel Dahlskjaer : freenode Project Leader depuis 2006.
Plutôt stylée l'annonce de sa démission via un notice globale IRC !
14:05 -jess(jess@freenode/staff/jess)- [Global Notice] Hi all. It feels like my moral responsibility to inform all users that administrative control of freenode and its user data will soon change hands, and I will be resigning from freenode staff effective immediately. It's been an honour to help you all.
Dans un monde idéal, toutes les applications sont "cloud ready" : on peut tuer n'importe quelle machine virtuelle (test chaos monkey de Netflix) et le service continue de tourner.
Dans le monde réel, pas mal d'applications tournent sur un serveur avec un post-it "c'est la prod', merci de ne pas éteindre cette machine" ! … c'est une image hein, pas exactement la réalité ;-)
Perso j'imagine ça comme un serveur qui met longtemps à s'éteindre, longtemps à se rallumer et comme personne ne l'a éteint-rallumé depuis longtems, on n'est pas sûr qu'il va se relancer. Mais comme il n'y a pas eu de panne (électrique, hardware, réseau, …) récemment, tout va bien !
On peut aussi imaginer que rebooter un tel serveur va entrainer une interruption de service qui va bloquer une usine / bloquer un autre service / empêcher les clients de passer des commandes / etc.
Bien sûr, tout ceci n'est que pure fiction. L'incendie du datacenter Strasbourgeois d'OVH nous montre bien la capacité des entreprises à relancer rapidement les serveurs partis en fumée (au sens propre).
Ne suivant pas l'affaire de près, je me suis renseigné et j'ai trouvé quelques infos.
En 2019, plusieurs personnes se sont plaintes du comportement de Richard Stallman ("RMS"). Il a été obligé de démissionner de son poste à l'université MIT et de son poste de président de la FSF :
L'événement déclencheur sont des messages de Stallman liés à l'affaire Jeffrey Epstein et l'université MIT.
En 2021, Stallman annonce qu'il est de retour au board de de direction de la FSF :
Dans une vidéo LibrePlanet, RMS annonce qu'il est de retour au board de la direction de la FSF. Morceau choisis : "Some of you will be happy about this, some may be disappointed, but who knows, in any case, that's how it is. And I'm not planning to resign a second time." (Certains d'entre vous seront heureux de ça, d'autres seront déçus, mais qui sait, dans tous les cas, c'est comme ça. Et je ne compte pas démissionner une 2e fois.")
Sur Twitter, la FSF explique que seul le board des directeurs était au courant, les organisateurs de LibrePlanet ne savaient pas.
Plusieurs incidents ont été documentés, surtout sur ces 10 dernières années :
Tous ces incidents sont bien documentés, et il y a de plus en plus de témoignagnes de personnes se plaignant du comportement de Stallman (lors de rencontres comme des conférences, à l'université MIT, etc.).
Par exemple, c'est utilisé pour le partage de fichiers entre une machine virtuelle et le host.
(*) Le système de fichier "union" de Linux est inspiré par l'architecture de l'union de répertoire Plan 9. Wikipédia :
Plan 9's union directory architecture inspired 4.4BSD and Linux union file system implementations,[28] although the developers of the BSD union mounting facility found the non-recursive merging of directories in Plan 9 "too restrictive for general purpose use".
Comme l'idée des traducteurs (translators) Hurd a été reprise sous Linux avec FUSE.
Au début de l'univers fut OSS (Open Sound System), pilote du noyau Linux. Une application parle directement à la carte son, simple, basique.
OSS était trop limité, alors ALSA a été écrit dans le noyau Linux pour gérer le mixage de son matériel entre autres.
Mais ALSA ne permet pas à plusieurs applications de jouer du son en même temps. KDE a alors ajouté le démon aRts, serveur qui mixe plusieurs sources de son (plusieurs applications). Enlightened et GNOME ont choisi Enlightened Sound Daemon (ESD).
PulseAudio offre le même genre de service mais reste compatible avec les applications conçues pour OSS, ALSA, aRts, ESD, etc. Un démon pour les gouverner tous !
Tous ? Ou presque ! Les professionnels du son préfèrent JACK qui est pensé pour réduire la latence, gère aussi les données MIDI, et offre une grande flexibilité.
Et PipeWire ? Bah le soucis vient des applications tournant dans un bac à sable Flatpak. Autoriser une application à jouer un son avec PulseAudio lui donne accès à toute la chaîne PulseAudio : enregistrement (micro de votre laptop, coucou !), mixage, etc. PipeWire est pensé pour gérer plus finement les permissions, et également pour réduire la latence.
L'autre soucis adressé par PipeWire est la vidéo avec les compositeurs Wayland et les applications tournant dans un bac à sable Flatpak. L'idée ici est d'éviter les copies mémoires tout en incluant la sécurité dans la conception.
PipeWire a new low-level multimedia framework designed from scratch that aims to provide:
Graph based processing with support for feedback loops and atomic graph updates.
Flexible and extensible media format negotiation and buffer allocation.
Support for out-of-process processing graphs with minimal overhead.
Hard real-time capable plugins.
Achieve very low-latency for both audio and video processing.
The framework is used to build a modular daemon that can be configured to:
Be a low-latency audio server with features like PulseAudio and/or JACK
A video capture server that can manage hardware video capture devices and provide access to them.
A central hub where video can be made available for other applications such as the Gnome Shell screencast API.
Perso j'attends beaucoup du projet PipeWire qui vise à réécrire quelque chose d'existant écrit par Lennart Poettering (PulseAudio).
https://pipewire.org/ promet une compatibilité JACK et PulseAudio, de la sécurité, une intégration à Flatpak, et la vidéo en plus de l'audio !
C'est déjà intégré au bureau Fedora, mais je ne sais pas ce qui l'utilise.
$ systemctl --user status pipewire
● pipewire.service - Multimedia Service
Active: active (running) since Thu 2020-12-31 12:59:16 CET; 2 days ago
TriggeredBy: ● pipewire.socket
...
This change proposal is to route all audio from PulseAudio and JACK to the PipeWire Audio daemon by default.
This proposal is to replace the PulseAudio daemon with a functionally compatible implementation based on PipeWire. This means that all existing clients using the PulseAudio client library will continue to work as before, as well as applications shipped as Flatpak.
All PRO audio is handled with the JACK client library, which talks to the JACK server. This proposal will install a JACK client library replacement that talks directly to PipeWire. All existing PRO audio jack applications will then work on top of PipeWire.
For legacy ALSA clients, we will install an ALSA plugin that routes the audio directly to PipeWire.
Avec ça, c'est sûr, Linux sera enfin prêt pour le desktop en 2021 !
Salut, l'an dernier j'ai forcé l'usage de Wayland dans Firefox avec MOZ_ENABLE_WAYLAND=1 et j'ai fait face à plusieurs bugs. Fort heureusement, ils ont été corrigé rapidement, dont un par mon collègue Martin Stransky ;-) https://vstinner.github.io/graphics-bugs-firefox-gnome.html
Maintenant Firefox utilise Wayland par défaut sous Fedora et j'ai zéro soucis !
J'utilise Fedora sur mon poste de travail depuis de nombreuses années et c'est très stable. La migration d'une version à l'autre se fait sans aucun soucis (aucun soucis majeur dumoins, y'a toujours des petits bricoles) tous les 6 mois (avril et octobre).
Fedora est un OS à part entière. RHEL est plus un fork qu'une branche de Fedora.
Tiens marrant, Python 3.7 a ajouté la même feature : PEP 557—Data Classes. Cette PEP n'était pas non plus un grosse nouveauté, il existait déjà le module attrs sur PyPI qui faisait la même chose depuis longtemps. Sauf que là c'est une version allégée (restreinte) qui a été ajouté à la bibliothèque standard.
Comme quoi, il n'y pas pas que Java qui souffre de la "verbosité" de la programmation orientée objet :-)
Sous Fedora, plusieurs extensions Firefox sont installables via dnf. Par exemple :
mozilla-ublock-origin.noarch : An efficient blocker for Firefox
mozilla-https-everywhere.noarch : HTTPS enforcement extension for Mozilla Firefox
mozilla-noscript.noarch : JavaScript white list extension for Mozilla Firefox
[^] # Re: Titre de la dépêche
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Python 3.10 est disponible. Évalué à 4.
En tant que développeur de Python, je trouve ça chouette d'encourager les gens à tester la version RC1 pour qu'un maximum de bugs soient remontés avant la version 3.10.0 finale !
# La bombe à retardement des librairies open source non mises à jour
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Revue de presse de l'April pour la semaine 25 de l'année 2021. Évalué à 6.
L'article peut laisser penser qu'utiliser des librairies libre introduit une menace dans un logiciel.
Avant les logiciels fermés avaient sûrement le même problème en copiant/collant du code sans se soucier des licences. La différence est que maintenant il y a un meilleur suivi des "dépendances", leur version, et détecter les vulnérabilités connues est plus aisé (peut être automatisé et GitHub le fait très bien !).
Pour moi, c'est un progrès en terme de sécurité. Il n'y a pas plus du vulnérabilités qu'avant. C'est uniquement la communication sur ces vulnérabilités connues qui est meilleure !
Hé oui, avoir des dépendances demande de les tenir à jour. Roh là là, déjà le code est gratuit, mais en plus il faut travailler pour les tenir à jour ! Remboursez le logiciel libre gratuit !
[^] # Re: réponse d'Andrew Lee
Posté par Victor STINNER (site web personnel) . En réponse au journal Multiple démissions dans l'équipe du réseau IRC Freenode. Évalué à 3.
En écrivant ce journal, j'ai appris que Freenode avait 90 000 utilisateurs. Au niveau du microcosme du logiciel libre, c'est plutôt important comme taille de réseau social. Au niveau du protocole IRC, Freenode est simplement le plus gros réseau mondial en 2021 : numéro 1 de https://netsplit.de/networks/top10.php
Le logiciel libre est plutôt réputé pour la diversité de ses outils. Freenode est un des derniers chainon centralisé du logiciel libre. GitHub devient le nouveau chainon centralisé du logiciel libre (le code de Freenode y était hébergé ;-)).
Pour avoir un ordre d'idée, GitHub annonce avoir 40 millions d'utilisateurs. Freenode avec ses 90k représente 0.2% de GitHub.
[^] # Re: plus de liens
Posté par Victor STINNER (site web personnel) . En réponse au journal Multiple démissions dans l'équipe du réseau IRC Freenode. Évalué à 4.
Cette réponse parle d'un conflit entre Andrew Lee (rasengan) et Tom Wesley (tomaw).
Oh, Christel Dahlskjaer a aussi démissionné ?
Il reste qui à bord ? La toute de suite, https://freenode.net/people liste 4 personnes : kloeri, ilbelkyr, Swant (a démissionné), tomaw.
Le 23 avril dernier, selon archive.org, cette page listait 4 personnes : tomaw, e, glguy, Fuchs (a démissionné).
Le 25 décembre 2020, selon archive.org, cette page listait 4 personnes : kloeri, ilbelkyr, Swant (a démissionné), christel (a démissionné).
[^] # Re: plus de liens
Posté par Victor STINNER (site web personnel) . En réponse au journal Multiple démissions dans l'équipe du réseau IRC Freenode. Évalué à 6.
Oups désolé, j'ai mal lu, Rob a été renversé par une voiture alors qu'il était à vélo :
[^] # Re: plus de liens
Posté par Victor STINNER (site web personnel) . En réponse au journal Multiple démissions dans l'équipe du réseau IRC Freenode. Évalué à 7.
Outch, l'article liste 10 lettres de démission !
L'article cite "lilo", Rob Levin : fondateur de Freenode, mort dans un accident de moto en 2006. Il cite aussi Christel Dahlskjaer : freenode Project Leader depuis 2006.
# Démission de Jessica Sophie Porter (jess)
Posté par Victor STINNER (site web personnel) . En réponse au journal Multiple démissions dans l'équipe du réseau IRC Freenode. Évalué à 6.
Plutôt stylée l'annonce de sa démission via un notice globale IRC !
[^] # Re: Creation de system-petitiond
Posté par Victor STINNER (site web personnel) . En réponse au journal Pétition pour consolider les pétitions sur RMS. Évalué à 2.
Python ou rien.
[^] # Re: Intérêt du live patching ?
Posté par Victor STINNER (site web personnel) . En réponse au journal Sortie de Almalinux 8.3. Évalué à 4.
Dans un monde idéal, toutes les applications sont "cloud ready" : on peut tuer n'importe quelle machine virtuelle (test chaos monkey de Netflix) et le service continue de tourner.
Dans le monde réel, pas mal d'applications tournent sur un serveur avec un post-it "c'est la prod', merci de ne pas éteindre cette machine" ! … c'est une image hein, pas exactement la réalité ;-)
Perso j'imagine ça comme un serveur qui met longtemps à s'éteindre, longtemps à se rallumer et comme personne ne l'a éteint-rallumé depuis longtems, on n'est pas sûr qu'il va se relancer. Mais comme il n'y a pas eu de panne (électrique, hardware, réseau, …) récemment, tout va bien !
On peut aussi imaginer que rebooter un tel serveur va entrainer une interruption de service qui va bloquer une usine / bloquer un autre service / empêcher les clients de passer des commandes / etc.
Bien sûr, tout ceci n'est que pure fiction. L'incendie du datacenter Strasbourgeois d'OVH nous montre bien la capacité des entreprises à relancer rapidement les serveurs partis en fumée (au sens propre).
[^] # Re: quelle farce
Posté par Victor STINNER (site web personnel) . En réponse au journal Le directeur exécutif de la FSF démissionne, quelle suite?. Évalué à 7.
L'actuel CEO d'IBM Arvind Krishna a remplacé Virginia Rometty qui était la précédente CEO pendant 8 ans (2012-2020).
[^] # Re: Contexte
Posté par Victor STINNER (site web personnel) . En réponse au journal RMS et la FSF. Évalué à 0.
Voilà.
# Contexte
Posté par Victor STINNER (site web personnel) . En réponse au journal RMS et la FSF. Évalué à 10.
Ne suivant pas l'affaire de près, je me suis renseigné et j'ai trouvé quelques infos.
En 2019, plusieurs personnes se sont plaintes du comportement de Richard Stallman ("RMS"). Il a été obligé de démissionner de son poste à l'université MIT et de son poste de président de la FSF :
En 2021, Stallman annonce qu'il est de retour au board de de direction de la FSF :
Plusieurs incidents ont été documentés, surtout sur ces 10 dernières années :
Plus généralement, Stallman :
Tous ces incidents sont bien documentés, et il y a de plus en plus de témoignagnes de personnes se plaignant du comportement de Stallman (lors de rencontres comme des conférences, à l'université MIT, etc.).
# GNUstep
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Histoire de l'Objective-C et décès de son créateur. Évalué à 4.
D'ailleurs, une nouvelle version de WindowMaker vient de sortir ! https://linuxfr.org/news/sortie-de-windowmaker-0-60-0
[^] # Re: Tout nouveau projet de Lennart Poettering de réécriture de quelque chose d’existant
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Bonne année 2021 !. Évalué à 2.
Je suis le projet de loin. Je n'arrive pas à savoir si c'est plus proche du prototype ou du produit fini…
# Idées reprises de Plan9 dans Linux
Posté par Victor STINNER (site web personnel) . En réponse au journal Plan9, l’OS installé parce qu’OpenBSD était trop mainstream. Évalué à 5.
(*) v9fs est une implémentation Unix du système de fichier distance Plan 9 "9p".
https://www.kernel.org/doc/Documentation/filesystems/9p.txt
Par exemple, c'est utilisé pour le partage de fichiers entre une machine virtuelle et le host.
(*) Le système de fichier "union" de Linux est inspiré par l'architecture de l'union de répertoire Plan 9. Wikipédia :
Comme l'idée des traducteurs (translators) Hurd a été reprise sous Linux avec FUSE.
[^] # Re: Tout nouveau projet de Lennart Poettering de réécriture de quelque chose d’existant
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Bonne année 2021 !. Évalué à 10.
Au début de l'univers fut OSS (Open Sound System), pilote du noyau Linux. Une application parle directement à la carte son, simple, basique.
OSS était trop limité, alors ALSA a été écrit dans le noyau Linux pour gérer le mixage de son matériel entre autres.
Mais ALSA ne permet pas à plusieurs applications de jouer du son en même temps. KDE a alors ajouté le démon aRts, serveur qui mixe plusieurs sources de son (plusieurs applications). Enlightened et GNOME ont choisi Enlightened Sound Daemon (ESD).
PulseAudio offre le même genre de service mais reste compatible avec les applications conçues pour OSS, ALSA, aRts, ESD, etc. Un démon pour les gouverner tous !
Tous ? Ou presque ! Les professionnels du son préfèrent JACK qui est pensé pour réduire la latence, gère aussi les données MIDI, et offre une grande flexibilité.
Et PipeWire ? Bah le soucis vient des applications tournant dans un bac à sable Flatpak. Autoriser une application à jouer un son avec PulseAudio lui donne accès à toute la chaîne PulseAudio : enregistrement (micro de votre laptop, coucou !), mixage, etc. PipeWire est pensé pour gérer plus finement les permissions, et également pour réduire la latence.
L'autre soucis adressé par PipeWire est la vidéo avec les compositeurs Wayland et les applications tournant dans un bac à sable Flatpak. L'idée ici est d'éviter les copies mémoires tout en incluant la sécurité dans la conception.
PipeWire a new low-level multimedia framework designed from scratch that aims to provide:
The framework is used to build a modular daemon that can be configured to:
# Tout nouveau projet de Lennart Poettering de réécriture de quelque chose d’existant
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Bonne année 2021 !. Évalué à 10.
Perso j'attends beaucoup du projet PipeWire qui vise à réécrire quelque chose d'existant écrit par Lennart Poettering (PulseAudio).
https://pipewire.org/ promet une compatibilité JACK et PulseAudio, de la sécurité, une intégration à Flatpak, et la vidéo en plus de l'audio !
C'est déjà intégré au bureau Fedora, mais je ne sais pas ce qui l'utilise.
Voir https://fedoraproject.org/wiki/Changes/DefaultPipeWire#Route_all_Audio_to_PipeWire prévu pour Fedora 34 :
Avec ça, c'est sûr, Linux sera enfin prêt pour le desktop en 2021 !
[^] # Re: snake_case
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Python 3.9 est disponible. Évalué à 4.
Voilà. https://www.python.org/dev/peps/pep-0616/#alternative-method-names
# Firefox au top sous Wayland
Posté par Victor STINNER (site web personnel) . En réponse au journal Utiliser la version Flatpak + Wayland de Thunderbird. Évalué à 4.
Salut, l'an dernier j'ai forcé l'usage de Wayland dans Firefox avec MOZ_ENABLE_WAYLAND=1 et j'ai fait face à plusieurs bugs. Fort heureusement, ils ont été corrigé rapidement, dont un par mon collègue Martin Stransky ;-)
https://vstinner.github.io/graphics-bugs-firefox-gnome.html
Maintenant Firefox utilise Wayland par défaut sous Fedora et j'ai zéro soucis !
D'ailleurs si vous avez un laptop avec 2 GPUs et que vous avez des soucis graphiques, j'ai écrit un petit article "Debug Hybrid Graphics issues on Linux":
https://vstinner.github.io/debug-hybrid-graphics-issues-linux.html
Il me reste gvim qui utilise toujours X11.
[^] # Re: Fork probable
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche CentOS se saborde‑t‑elle ?. Évalué à 2.
J'utilise Fedora sur mon poste de travail depuis de nombreuses années et c'est très stable. La migration d'une version à l'autre se fait sans aucun soucis (aucun soucis majeur dumoins, y'a toujours des petits bricoles) tous les 6 mois (avril et octobre).
Fedora est un OS à part entière. RHEL est plus un fork qu'une branche de Fedora.
# Choose an open source license
Posté par Victor STINNER (site web personnel) . En réponse au journal [Bookmark] Liste des licences communément utilisées dans les projets communautaires. Évalué à 4.
https://choosealicense.com/ par GitHub est pas mal aussi avec un résumé en quelques points d'une licence. Exemple avec la licence MIT :
https://choosealicense.com/licenses/mit/
# C++ is hard
Posté par Victor STINNER (site web personnel) . En réponse au journal Toujours plus de fun avec C. Évalué à 2.
"Conclusion : C++ is hard" :-)
Bon, aussi :
# Records
Posté par Victor STINNER (site web personnel) . En réponse au journal Java perdra une partie de sa verbosité à la fin de l’hiver. Évalué à 3.
Tiens marrant, Python 3.7 a ajouté la même feature : PEP 557—Data Classes. Cette PEP n'était pas non plus un grosse nouveauté, il existait déjà le module attrs sur PyPI qui faisait la même chose depuis longtemps. Sauf que là c'est une version allégée (restreinte) qui a été ajouté à la bibliothèque standard.
Comme quoi, il n'y pas pas que Java qui souffre de la "verbosité" de la programmation orientée objet :-)
# Paquets Fedora mozilla-*
Posté par Victor STINNER (site web personnel) . En réponse au journal Systèmes de mise à jour. Évalué à 5.
Sous Fedora, plusieurs extensions Firefox sont installables via dnf. Par exemple :
mozilla-ublock-origin.noarch : An efficient blocker for Firefox
mozilla-https-everywhere.noarch : HTTPS enforcement extension for Mozilla Firefox
mozilla-noscript.noarch : JavaScript white list extension for Mozilla Firefox
[^] # Re: s’attaquer à la pénurie de compétences avancées sur les bases de données
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Appel à contributions de la Fondation MariaDB auprès des universités. Évalué à 9.
Tu sembles être le candidat idéal pour contribuer à la documentation !
https://mariadb.com/kb/en/library/contributing-to-the-mariadb-project/