Vai al contenuto

Proposta di una nuova funzionalità

Hai un'idea su un miglioramento per {{ nome_formale }} - come si fa a sottoporre l'idea alla vostra attenzione?

Fate la vostra ricerca

Il primo passo consiste nel cercare nell'issue tracker {{ nome_formale }} i problemi di funzionalità (problemi etichettati come "miglioramento"), documentation issues (problemi con tag "documentation"), o Discussioni per vedere se l'idea è già stata proposta in precedenza. In caso affermativo, se avete un nuovo contesto o nuove idee da aggiungere, inseritele nella discussione esistente. Se si desidera assistenza per la ricerca, è possibile chiedere nel canale #dev su BeeWare Discord. Potremmo essere in grado di indirizzarvi verso le discussioni esistenti, di fornirvi un contesto di cui potreste non essere a conoscenza o di collegare la vostra idea a un'altra che potrebbe non sembrare immediatamente collegata.

Discutere l'idea

Se non si trovano riferimenti esistenti alla propria idea, avviare una Discussione. Fornire una descrizione di alto livello dello scopo e del caso d'uso della propria idea. Includere qualsiasi idea sull'aspetto della funzionalità, se implementata, come la forma generale di un'API, l'aspetto visivo di una funzionalità o il documento che verrebbe aggiunto. Se applicabile, è necessario includere anche qualsiasi ricerca effettuata su come la vostra idea si manifesterebbe su piattaforme diverse.

Una volta aperto il thread di discussione, il team BeeWare e il resto della comunità risponderanno. Il team centrale cercherà di fornire almeno un'impressione iniziale della vostra idea entro due giorni lavorativi. Se un'idea è particolarmente complessa, un'analisi più dettagliata potrebbe richiedere fino a una settimana. Eventi come vacanze e conferenze potrebbero allungare leggermente i tempi.

Questa è l'occasione per partecipare a una conversazione sulla vostra idea. Potremmo chiedervi ulteriori dettagli o un contesto. Anche altri membri della comunità possono partecipare alla discussione, fornendo altre prospettive, suggerimenti o controproposte. L'esito della discussione determinerà i passi successivi.

È importante capire che non tutte le idee saranno accettate. Il motivo per cui questo processo inizia con una proposta è che si evita di fare tutto il lavoro per poi scoprire che la modifica non sarà accettata.

Questo non significa che non fosse una buona idea! Ci possono essere ragioni tecniche per cui non può essere implementata. Ad esempio, potremmo rifiutare un'idea se:

  • Sarebbe difficile o impossibile da implementare in modo affidabile su tutte le piattaforme supportate; oppure
  • Sarebbe difficile da mantenere o la manutenzione richiederebbe l'accesso a tecnologie o software non ampiamente disponibili; oppure
  • Serve un pubblico di nicchia, ma impone un notevole sovraccarico agli altri utenti.

Se decidiamo che la vostra idea non è adatta, non significa necessariamente che dobbiate rinunciarvi. Se da un lato possiamo rifiutare un'idea specifica, dall'altro potremmo essere molto più disponibili ad aggiungere un'interfaccia per i plugin o altri punti di estensione che permettano di mantenere la stessa funzionalità come libreria esterna. In questo modo si può avere la funzione, ma senza che i problemi specifici di manutenzione o le limitazioni della funzione diventino un vincolo per il progetto stesso.

Convertite in una richiesta formale di funzionalità

Una volta che la discussione ha raggiunto un consenso sulla forma di una caratteristica, si può creare un nuovo [issue di richiesta di caratteristica] (https://github.com/beeware/{{ nome_progetto }}/issues/new/choose), nell'issue tracker {{ nome_formale }}, che riassume la discussione, collegandosi alla discussione per il contesto.

Non è necessario implementare da soli la propria proposta di funzionalità; è possibile aprire un problema con i dettagli di ciò che si sta proponendo. Tuttavia, la semplice pubblicazione del problema non significa che verrà implementato per voi. Dovrete aspettare che la proposta venga presa in considerazione da qualcun altro interessato alla stessa funzionalità, che si tratti di un altro membro della comunità o del team centrale; tuttavia non è garantito che ciò accada. Se si desidera un'implementazione garantita, è necessario implementarla da soli o pagare qualcun altro per farlo.

Se sei interessato, puoi iniziare a implementare la tua nuova funzionalità.