Contributo Open Source 101

Dec 01 2022
Come iniziare?
Back-story ⏮ In qualità di mentore presso ADPList, mi viene spesso chiesto dei miei contributi open source come committer di Apache e di come iniziare con Github. Essere nominato Apache Committer (apache/mxnet#19512) è stato uno dei miei più grandi successi nel mondo del coding e della tecnologia.
Foto di Richy Great su Unsplash

Retroscena ⏮

In qualità di mentore presso ADPList , mi viene spesso chiesto dei miei contributi open source come committer di Apache e di come iniziare con Github.

Essere nominato Apache Committer ( apache/mxnet#19512 ) è stato uno dei miei più grandi successi nel mondo della programmazione e della tecnologia. Desidero condividere quanto appreso dal trascorrere del tempo con la comunità open source. Questo mi ha spinto a fare da mentore a professionisti del software all'inizio della carriera e studenti universitari di informatica / inglese. Questo articolo è un tentativo di rispondere alla domanda:

Cosa farei oggi nel novembre 2022 se dovessi iniziare il mio viaggio nell'open source?

‍♀ Cosa significa open-source?

Github è il poster dell'universo open source, avendo reso popolare la nozione di repository, richieste pull e controllo della versione. L'open source riguarda essenzialmente la dezocratizzazione dell'accesso al codice sorgente. Si tratta di abbattere i muri incollati con accordi di non divulgazione [NDA] e diritti d'autore e marchi restrittivi ™️. Ciò non implica che il codice open source non abbia licenze o diritti d'autore. Si tratta di fornire la libertà di condividere la conoscenza e le informazioni pubblicamente con la sicurezza di una corretta citazione e riferimento. L'open source è un grande livellatore, in questo senso. Persone provenienti da tutto il mondo possono leggere, commentare, scrivere ed esprimersi liberamentesul software in fase di sviluppo nel mondo open-source. È questa libertà di espressione, il diritto umano fondamentale, quando applicato al mondo del software e della tecnologia, si manifesta sotto forma di “open-source”.

‍♂️Cosa comporta il contributo open-source?

Va bene, ora che siamo sulla stessa pagina per quanto riguarda il termine "open-source". Quali attività sono associate ai contributi del sistema operativo?

A mio parere, le seguenti serie di azioni rientrano nell'ambito dei contributi del sistema operativo

  1. Crea problemi, bug e fai domande
  2. Aumentare le richieste di funzionalità [tramite problemi, jira o software di monitoraggio del progetto]
  3. Ideare e fare proposte
  4. Commenta e partecipa alle discussioni
  5. Rispondere alle domande
  6. Correggi bug
  7. Esamina il codice sviluppato da altri membri della comunità
  8. Aggiungi test, migliora l'infrastruttura di test/CI/CD
  9. Scrivi il nuovo codice funzione
  10. Partecipa a eventi virtuali/di persona
  11. Evangelizzare la biblioteca/prodotto/servizio
  12. Comunicare attivamente nei canali di discussione/chat/liste di sviluppo
  13. Vota e partecipa al processo di rilascio [di libreria/prodotto/framework/servizio]

Come dovrei iniziare?

Perseguirei 1 dei seguenti 2 percorsi

  1. Famoso progetto di rinomate organizzazioni open source
  2. Progetti su cui ho più contesto

Cerca progetti familiari supportati da famose organizzazioni open source

Famose organizzazioni open source: GNOME, PSF, ASF, DF, LF
  • Apache Software Foundations — hadoop, hive, hbase, mxnet, cassandra
  • The Document Foundation — Suite LibreOffice [Open office].
  • GNOME Foundation — famoso ambiente desktop GNOME
  • Linux Foundation — famoso per il sistema operativo basato su UNIX
  • Mozilla Foundation — famosa per il browser

Un modo semplice per avere un impatto significativo sulla comunità degli sviluppatori è quando si dispone già di un modello mentale integrato del prodotto/framework/servizio sottostante. Canalizzerei la mia energia nel fornire quei suddetti contributi open source sfruttando la conoscenza e il contesto che ho costruito finora come sviluppatore.

Ciò potrebbe significare progetti diversi per sviluppatori diversi, ovviamente in base allo stack software a cui sono più abituati.

Elencherò progetti open source comuni basati sulle lingue:

Fonte: octoverse.github.com | 2022

I 10 migliori progetti Javascript di Technical Geek

  1. Reagisci tramite Facebook/Meta
  2. Tensorflow.js di TF [originariamente di Google]
  3. Node.js
  4. Angular.js
  5. jQuery
  6. Node Package Manager [npm]
  7. Vue.js
  8. Ember.js
  9. Meteor.js
  10. Polimero
  1. Tensorflow : apprendimento approfondito
  2. matplotlib — visualizzazione dei dati
  3. Boccetta - web dev
  4. Django della Django Software Foundation
  5. PyTorch — originariamente di Facebook/Meta
  6. MXNet di Apache Software Foundation
  7. Ansible : strumento di distribuzione, operazioni e orchestrazione
  8. Requests — Libreria HTTP di Python Software Foundation
  9. Scikit-learn — ML in Python
  10. Panda : scienza dei dati/analisi dei dati
  1. ApriJDK
  2. RXJava
  3. Apache Pinot : archivio dati OLAP
  4. Hazelcast : piattaforma di calcolo e archiviazione distribuita
  5. Formato Google Java: Google Java Style
  6. jOOQ — SQL per Java
  7. Stivale a molla
  8. Glide : memorizzazione nella cache e generazione di immagini per Android
  9. Guava : librerie Java di base di Google
  10. mockito — simulato, quadro di prova
  1. cerca su Google con le parole chiave “top 10 open source projects” e “language”
  2. Cerca su Github —https://github.com/search?q=java+language%3AJava&type=repositories&l=Java