Contribution Open Source 101

Dec 01 2022
Comment commencer?
Back-story ⏮ En tant que mentor chez ADPList, on me pose souvent des questions sur mes contributions open-source en tant que committer Apache et sur la façon de démarrer avec Github. Être nommé Apache Committer (apache/mxnet#19512) a été l'une de mes plus grandes réalisations dans le monde du codage et de la technologie.
Photo de Richy Great sur Unsplash

Histoire en arrière ⏮

En tant que mentor chez ADPList , on me pose souvent des questions sur mes contributions open source en tant que committer Apache et sur la façon de démarrer avec Github.

Être nommé Apache Committer ( apache/mxnet#19512 ) a été l'une de mes plus grandes réalisations dans le monde du codage et de la technologie. Je souhaite partager les enseignements tirés du temps passé avec la communauté open source. Cela m'a incité à encadrer des professionnels du logiciel en début de carrière et des étudiants universitaires en informatique / engg. Cet article est une tentative de réponse à la question —

Que ferais-je aujourd'hui en novembre 2022 si je commençais mon voyage en open source ?

‍♀ Que signifie open-source ?

Github est l'enfant-affiche de l'univers open-source, ayant popularisé la notion de référentiels, de pull requests et de contrôle de version. L'open source consiste essentiellement à dézocratiser l'accès au code source. Il s'agit d'abattre les murs collés avec des accords de non-divulgation [NDA] et des droits d'auteur et marques de commerce restrictifs ™️. Cela ne signifie pas que le code open source n'a pas de licences ou de droits d'auteur. Il s'agit de fournir la liberté de partager publiquement des connaissances et des informations avec la sécurité d'une citation et d'un référencement appropriés. L'open source est un excellent niveleur, dans ce sens. Les gens du monde entier peuvent lire, commenter, écrire et s'exprimer librementsur les logiciels en cours de développement dans le monde open-source. C'est cette liberté d'expression, le droit de l'homme fondamental, lorsqu'il est appliqué au monde du logiciel et de la technologie, qui se manifeste sous la forme de "l'open-source".

‍♂️Qu'implique la contribution open-source ?

Très bien, maintenant que nous sommes sur la même longueur d'onde en ce qui concerne le terme "open-source". Quelles activités sont associées aux contributions de l'OS ?

À mon avis, les ensembles d'actions suivants relèvent des contributions au système d'exploitation

  1. Créer des problèmes, des bogues et poser des questions
  2. Soumettre des demandes de fonctionnalités [via des problèmes, Jira ou un logiciel de suivi de projet]
  3. Idéer & Faire des Propositions
  4. Commentez et participez aux discussions
  5. Répondez aux questions
  6. Corriger les bugs
  7. Examiner le code développé par d'autres membres de la communauté
  8. Ajouter des tests, améliorer l'infrastructure de test/CI/CD
  9. Écrire un nouveau code de fonctionnalité
  10. Assister à des événements virtuels/en personne
  11. Évangéliser la bibliothèque/le produit/le service
  12. Communiquer activement dans les discussions/canaux de chat/listes de développement
  13. Votez et participez au processus de publication [de la bibliothèque/du produit/du framework/du service]

Comment dois-je commencer ?

Je poursuivrais 1 des 2 routes suivantes

  1. Projet célèbre par des organisations open source renommées
  2. Projets sur lesquels j'ai le plus de contexte

Recherchez des projets familiers soutenus par de célèbres organisations Open Source

Célèbres organisations open source — GNOME, PSF, ASF, DF, LF
  • Apache Software Foundations — hadoop, hive, hbase, mxnet, cassandra
  • The Document Foundation — Suite LibreOffice [Open office]
  • GNOME Foundation - célèbre environnement de bureau GNOME
  • Linux Foundation - célèbre pour le système d'exploitation basé sur UNIX
  • Fondation Mozilla - célèbre pour le navigateur

Un moyen simple d'avoir un impact significatif sur la communauté des développeurs consiste à disposer déjà d'un modèle mental intégré du produit/framework/service sous-jacent. Je canaliserais mon énergie pour apporter ces contributions open source susmentionnées en tirant parti des connaissances et du contexte que j'ai construit jusqu'à présent en tant que développeur.

Cela pourrait signifier différents projets pour différents développeurs, évidemment en fonction de la pile logicielle à laquelle ils sont le plus habitués.

Je vais énumérer les projets open source courants basés sur les langages :

Source : octovere.github.com | 2022

Top 10 des projets Javascript par Technical Geek

  1. Réagissez par Facebook/Meta
  2. Tensorflow.js par TF [à l'origine par Google]
  3. Node.js
  4. Angulaire.js
  5. jQuery
  6. Gestionnaire de packages de nœuds [npm]
  7. Vue.js
  8. Ember.js
  9. Meteor.js
  10. Polymère
  1. Tensorflow — apprentissage en profondeur
  2. matplotlib — visualisation de données
  3. Flacon — développeur web
  4. Django par Django Software Foundation
  5. PyTorch — à l'origine par Facebook/Meta
  6. MXNet par Apache Software Foundation
  7. Ansible — outil de déploiement, d'exploitation et d'orchestration
  8. Requêtes — Bibliothèque HTTP par Python Software Foundation
  9. Scikit-learn — ML en python
  10. Pandas — science des données/analyse des données
  1. OpenJDK
  2. RXJava
  3. Apache Pinot — Banque de données OLAP
  4. Hazelcast - plate-forme de calcul et de stockage distribuée
  5. Format Google Java — Style Google Java
  6. jOOQ — SQL pour Java
  7. Botte de printemps
  8. Glide - mise en cache et génération d'images pour Android
  9. Guava - bibliothèques Java de base de Google
  10. mockito — maquette, cadre de test
  1. rechercher sur Google avec les mots clés "top 10 des projets open source" et "langue"
  2. Recherche sur Github —https://github.com/search?q=java+language%3AJava&type=repositories&l=Java