Forslag til en ny funktion¶
Vi er altid åbne for forslag og ideer til nye funktioner eller dokumentation til BeeWare. Men hvordan indsender du din idé til overvejelse?
Før du begynder¶
Vi har allerede en meget lang liste over funktioner, vi gerne vil implementere, og meget begrænsede ressourcer. Hvis du har en idé, som du mener vil gøre BeeWare bedre, vil vi meget gerne høre om den. Hvis nok mennesker anmoder om det samme, vil kerneteamet muligvis implementere den idé. Men i sig selv er det usandsynligt, at en anmodning om en funktion vil resultere i, at den funktion bliver implementeret i den nærmeste fremtid.
BeeWare er et open source-fællesskab. Den mest effektive måde at sikre, at en funktion implementeres, er at implementere den selv. Vi vil gøre alt, hvad vi kan, for at hjælpe bidragydere med at implementere de funktioner, de gerne vil have tilføjet. Krav om, at kerneteamet implementerer en funktion for dig gratis, vil sandsynligvis ikke blive modtaget positivt.
Hvis du ikke selv er i stand til at implementere en funktion, er den anden måde at fremskynde udviklingen af din funktion på at betale nogen for at implementere den for dig. Hvis du gerne vil diskutere at betale for at få prioriteret udviklingen af en bestemt funktion, bedes du kontakte BeeWare-teamet.
Foreslå nye funktioner¶
Det mest oplagte forslag er en ny API eller funktion. Hvis du har et anvendelsestilfælde, som BeeWare ikke understøtter i øjeblikket, eller hvis der er en indbygget platformsfunktion, som BeeWare ikke kan udnytte i øjeblikket, kan du foreslå en ændring for at udfylde dette hul.
Når du foreslår en ny funktion, skal du huske, at BeeWare-værktøjssuiten understøtter flere platforme. Det betyder, at enhver ny funktion skal:
- Være egnet og implementerbar på alle platforme (f.eks. har alle GUI-værktøjssæt begrebet "knap"); eller
- Være egnet til platforme af samme "type" og passende at ignorere på andre platforme (f.eks. har alle mobiltelefoner accelerometre, men det har ikke mange stationære computere, og derfor giver det mening, at der findes et accelerometer-API til iOS og Android, men ikke til stationære computere eller webplatforme); eller
- Tillad adgang til en intern platformsfunktion uden at ændre den offentlige API (f.eks. kan du ikke tilføje en funktion, der er tydeligt Android-specifik, men du kan gøre det lettere for slutbrugere at få adgang til en Android-specifik funktion fra deres egen kode).
Det betyder ikke, at du skal være ansvarlig for at implementere en funktion på alle platforme. Hvis du ikke har adgang til Apple-hardware, er det ikke rimeligt, at vi forventer, at du leverer en macOS- eller iOS-implementering af en funktion. Som en del af designprocessen skal vi dog fastslå, at det er muligt at implementere en funktion på den måde, du beskriver.
Foreslå ny dokumentation¶
En anden ting, du måske vil foreslå, er en forbedring af dokumentationen. Hvis du har en idé til at forbedre dokumentationen for BeeWare, skal du overveje følgende:
- Overlapper dit forslag eksisterende dokumentation? Foreslår du en ny vejledning eller et tillæg til en eksisterende vejledning?
- Hvordan passer det ind i resten af BeeWare-økosystemet? Er dette projekt det rette sted at dokumentere ideen? Eller bør vi dokumentere en funktion i et andet projekt og linke til den dokumentation?
- Er der et overordnet begreb, der skal forklares, før specifikke instruktioner giver mening?
- Er det relevant for os at forklare emnet, eller har en anden allerede dækket det et sted, som vi kan henvise til?
Hvis du er usikker på noget af dette, skal du ikke bekymre dig! Indsend din idé, og fortæl os i den indledende diskussion, hvad du er usikker på, så kan vi hjælpe med at forme dine idéer til en form, der passer til BeeWares dokumentation.
Indsendelse af forslag til funktioner¶
Forslag til en ny funktion
Så du har en idé til en forbedring af BeeWare – hvordan indsender du den idé til overvejelse?
Gør din research¶
Det første skridt er at søge i BeeWare issue tracker efter eksisterende feature issues (issues tagged "enhancement"), documentation issues (issues tagged "documentation"), eller Discussion threads for at se, om ideen er blevet foreslået før. Hvis det er tilfældet, og du har nye kontekster eller ideer at tilføje, skal du inkludere dem i den eksisterende tråd. Hvis du ønsker hjælp til din research, kan du spørge i #dev-kanalen på BeeWare Discord. Vi kan muligvis henvise dig til eksisterende tråde, give dig kontekst, som du måske ikke er opmærksom på, eller forbinde din idé med en anden idé, der måske ikke umiddelbart virker relateret.
Diskuter ideen¶
Hvis du ikke finder nogen eksisterende referencer til din idé, skal du starte en diskussionstråd. Giv en overordnet beskrivelse af formålet med og anvendelsesmulighederne for din idé. Inkluder eventuelle tanker om, hvordan funktionen vil se ud, hvis den implementeres, f.eks. den generelle form af en API, det visuelle udseende af en funktion eller det dokument, der vil blive tilføjet. Hvis det er relevant, bør du også medtage eventuelle undersøgelser, du har foretaget af, hvordan din idé ville manifestere sig på forskellige platforme.
Når diskussionstråden er åbnet, vil BeeWare-teamet og resten af fællesskabet svare. Kerneteamet vil forsøge at give et første indtryk af din idé inden for to hverdage. Hvis en idé er særlig kompleks, kan en mere detaljeret analyse tage op til en uge. Begivenheder som helligdage og konferencer kan medføre, at disse tidsfrister bliver lidt længere.
Dette er din mulighed for at deltage i en samtale om din idé. Vi kan bede om flere detaljer eller baggrundsinformation. Andre medlemmer af fællesskabet kan også deltage i diskussionen og bidrage med andre perspektiver, forslag eller modforslag. Resultatet af denne diskussion vil afgøre de næste skridt.
Det er vigtigt at forstå, at ikke alle ideer vil blive accepteret. Grunden til, at denne proces starter med et forslag, er for at undgå, at du lægger alt arbejdet i det, kun for at finde ud af, at der er en grund til, at din ændring ikke vil blive accepteret.
Det betyder ikke, at det ikke var en god idé! Der kan være tekniske årsager til, at den ikke kan implementeres. For eksempel kan vi afvise en idé, hvis:
- Det ville være vanskeligt eller umuligt at implementere pålideligt på alle understøttede platforme; eller
- Det ville være vanskeligt at vedligeholde, eller vedligeholdelse ville kræve adgang til teknologi eller software, der ikke er bredt tilgængelig; eller
- Det betjener en nichepublikum, men påfører andre brugere betydelige omkostninger.
Hvis vi vurderer, at din idé ikke passer ind, betyder det ikke nødvendigvis, at du skal opgive den. Selvom vi måske afviser en specifik idé, kan vi være meget mere åbne over for at tilføje et plugin-interface eller et andet udvidelsespunkt, der giver dig mulighed for at bevare den samme funktion som et eksternt bibliotek. På den måde kan du få funktionen, men uden de specifikke vedligeholdelsesproblemer eller begrænsninger, der kan blive en hindring for selve projektet.
Konverter til en formel funktionsanmodning¶
Når diskussionen har nået enighed om formen af en funktion, kan du oprette en ny funktionsanmodning i BeeWare issue tracker, der opsummerer diskussionen og linker til diskussionen for at give kontekst.
Du behøver ikke selv implementere dit forslag til en funktion; du kan oprette en sag med detaljer om dit forslag. Men det er ikke sikkert, at dit forslag bliver implementeret, bare fordi du opretter en sag. Du skal vente på, at det potentielt bliver taget op af en anden, der er interesseret i den samme funktion, uanset om det er et andet medlem af communityet eller kerneteamet; det er dog ikke garanteret, at det sker. Hvis du vil have garanti for implementeringen, skal du selv implementere den eller betale en anden for at implementere den for dig.