Scrivere un buon problema

Tutti i grandi progetti sono basati sul feedback degli utenti. Blockly usa i problemi GitHub per monitorare il feedback. In questa pagina viene spiegato come scrivere un problema che gli sviluppatori possono leggere e rispondere facilmente e, in questo modo, è più probabile che la segnalazione di bug/la richiesta di funzionalità venga risolta.

Preparazione

Domande?

Ci fa piacere ricevere le tue domande. Ma i problemi relativi a GitHub non sono un ottimo mezzo per loro. In caso di domande, visitate il nostro forum per gli sviluppatori. Se poni la tua domanda lì, è più probabile che tu riceva una risposta tempestiva e completa perché è pieno di sviluppatori che utilizzano Blockly da anni.

Verifica la presenza di duplicati

Prima di iniziare a scrivere qualsiasi tipo di problema, è sempre bene verificare se ne esiste già uno corrispondente. In questo modo, eviterai di dover scrivere il codice autonomamente. Prima di iniziare a scrivere, cerca duplicati o problemi correlati.

Se trovi un problema di corrispondenza, metti Mi piace o aggiungi un commento con le tue opinioni. Ciò è particolarmente importante per le segnalazioni di bug e le richieste di funzioni. Se gli sviluppatori si rendono conto che un problema sta attirando molta attenzione, è più probabile che venga risolto.

Segnala un bug

Quindi credi di aver scoperto un bug? Bene. Apprezziamo molto le segnalazioni di bug perché vogliamo che questo progetto sia il più stabile possibile. Ecco alcuni passaggi che puoi seguire per correggere il bug.

  1. Verifica la presenza di duplicati
  2. Raccogliere prove
  3. Individuare il problema
  4. Consolida la tua riproduzione
  5. Suggerisci una causa
  6. Scrivi il tuo problema

Raccogli le prove

In genere, più informazioni ha il bug, meglio è. Ecco alcune informazioni che ti consigliamo di fornire:

  • Screenshot o GIF possono essere molto utili se un bug causa un problema visivo.
  • Il codice campione è utile se un bug interessa solo determinati tipi di blocchi o configurazioni di aree di lavoro.
  • Un sito in hosting è la soluzione ideale se hai difficoltà a riprodurre il bug al di fuori del tuo ambiente specifico.

Individua il problema

Tra la libreria di base, i plug-in, gli esempi e i codelab, c'è molto codice Blockly. Aiutaci indicandoci esattamente dov'è il problema.

Se il problema riguarda il nucleo, quale componente? Ad esempio, il problema potrebbe riguardare gli strumenti, i controlli di zoom o i blocchi delle librerie. Cerca di essere il più specifico possibile.

Se il problema riguarda gli esempi a blocchi, individua il plug-in, il codelab o l'esempio a cui si trova. Se trovi lo stesso bug in più punti, faccelo sapere.

Rafforza la tua riproduzione

Un bug è risolvibile solo se è riproducibile, quindi prima di inviare un problema assicurati di disporre di un metodo valido per far sì che si verifichi il bug.

Dovresti ottenere un elenco numerato di passaggi che indicano a uno sviluppatore come riprodurre il bug. Ad esempio:

  1. Apri il codelab X.
  2. Vai alla pagina Y.
  3. Esegui codice di esempio Z.
  4. Osserva il comportamento dannoso, che assomiglia a W.

Se il problema è principale di Blockly, prova a riprodurlo nel playground.

Suggerisci una causa

Se pensi di sapere il motivo del bug, includi anche queste informazioni. Anche in questo caso, sii il più specifico possibile.

Scrivi il tuo problema.

È arrivato il momento di scrivere la tua segnalazione di bug. Seleziona il repository:

Assicurati di compilare tutte le sezioni del modello del problema, anche quelle non dettagliate qui.

Grazie per l'interesse dimostrato per la segnalazione di un bug e ti auguriamo di scrivere il problema.

Passaggi successivi

  • La tua segnalazione di bug viene taggata automaticamente per la classificazione.
  • Il membro del team di Blockly consultabile e, se necessario, porrà domande di chiarimento. Aggiungeranno anche le etichette, che utilizziamo per mantenere organizzati i bug.
  • Il problema potrebbe essere contrassegnato come "Assistenza richiesta", nel qual caso puoi rivendicarlo e iniziare a lavorarci.
  • Il problema potrebbe essere assegnato a un membro del team di Blockly per una correzione.
  • Il problema può essere contrassegnato con un traguardo trimestrale per indicare quando verrà completato.
  • Il problema potrebbe trovarsi in Icebox, ovvero non intendiamo occuparci della risoluzione nell'immediato futuro.
    • Questo può accadere per problemi di bassa frequenza o bug con soluzioni alternative note.
    • Puoi ancora occuparti dei problemi relativi a Icebox.
  • Il problema potrebbe essere inserito nel traguardo relativo al backlog di Bug Bash, il che significa che non è urgente, ma vogliamo comunque risolverlo.
    • Alla fine di ogni trimestre il team dedica alcune settimane a lavorare sui bug derivanti dal traguardo del backlog di Bug Bash.
  • Se necessario, il problema può essere spostato dal blocco principale agli esempi a blocchi (o nella direzione opposta).
  • Il problema potrebbe essere chiuso.

Richiesta di funzionalità

C'è qualcosa che vuoi cambiare per migliorare Blockly? Hai un'idea per un plug-in, un esempio o un codelab? Forse ce n'è già una che ti piace e hai trovato un modo per migliorarla. Se è così, sei nel posto giusto. Di seguito sono riportati i passaggi per creare una richiesta di funzionalità eccezionale che riceve una risposta.

  1. Verifica la presenza di duplicati
  2. Verifica i requisiti
  3. Raccogli le tue idee
  4. Scrivi la richiesta di funzionalità

Verifica i requisiti

Ci piacerebbe permettere a ogni singola idea di entrare in questo repository. Ma purtroppo siamo solo esseri umani, quindi abbiamo definito alcune linee guida sui tipi di richieste che perseguiremo.

Di seguito sono riportate le linee guida per ciascuna delle diverse categorie di progetti:

  • Core Blockly
  • Plug-in
  • Esempi: mostra come utilizzare solo una o due funzionalità di Blockly.
  • Codelab: mostrano come completare una singola attività o implementare un singolo comportamento.

Ma non si tratta di regole rigide e veloci. Il loro scopo è semplicemente quello di darti un'idea di ciò che stiamo cercando prima che tu possa dedicare tempo alla creazione della richiesta di funzionalità.

Se non hai la certezza che qualcosa sia adatto, prova a pubblicarlo sui nostri forum per gli sviluppatori. Ricorda che, anche se la tua idea non viene accettata, ci farebbe piacere se sviluppassi la tua idea come plug-in o tutorial di terze parti.

Raccogli le tue idee

La tua idea non deve essere completata al 100% con tinsel e diagrammi prima di procedere e inviarla, ma dovresti avere un'idea solida di ciò che stai cercando. Ecco alcune buone domande su cui riflettere prima di iniziare a scrivere:

  • Perché voglio questa funzionalità?
  • Questa funzionalità risolve un problema?
  • A chi è destinata questa funzionalità?
  • Perché questa funzionalità offre loro?
  • Quali sono alcune opzioni alternative che potrebbero ottenere lo stesso risultato?

Una volta che avrai capito come funziona, potrai rispondere alla richiesta di funzionalità.

Scrivi la richiesta di funzionalità.

Ora puoi scrivere la tua richiesta di funzionalità. Seleziona il repository:

Assicurati di compilare tutte le sezioni del modello del problema, anche quelle non dettagliate qui.

Grazie per l'interesse dimostrato per l'invio di una richiesta di funzione e buon lavoro.

Passaggi successivi

  • La richiesta di funzionalità viene codificata automaticamente per la classificazione.
  • Il membro del team di Blockly consultabile e, se necessario, porrà domande di chiarimento. Aggiungeranno anche le etichette, che utilizziamo per mantenere organizzati i bug.
  • La funzionalità potrebbe essere contrassegnata come "Assistenza richiesta", nel qual caso puoi rivendicarla e iniziare a lavorarci.
  • La funzionalità può essere assegnata a un membro del team di Blockly per l'implementazione.
  • La richiesta di funzionalità può essere spostata dal blocco principale ai blocchi di esempio (o alla direzione opposta), se necessario.
  • La richiesta di funzionalità potrebbe essere chiusa, nel qual caso hai ancora la possibilità di implementarla come plug-in di terze parti.