Hakuna seti ya mazoea yawezayo kuhakikisha kwamba programu haitakuwa na kasoro au udhaifu kamwe. Hata mbinu rasmi zinaweza kushindwa ikiwa vipimo au dhana ni sahihi. Wala hakuna seti ya mazoea yawezayo kuhakikisha kuwa mradi utaendelea kuwa na jamii ya maendeleo yenye afya na inayofanya kazi vizuri.
Hata hivyo, kufuata mazoea bora kunaweza kusaidia kuboresha matokeo ya miradi. Kwa mfano, baadhi ya mazoea huwezesha ukaguzi wa watu wengi kabla ya kutolewa, ambayo inaweza kusaidia kupata udhaifu wa kiufundi ambao vinginevyo ni vigumu kupata na kusaidia kujenga uaminifu na hamu ya mwingiliano wa kurudia kati ya wasanidi programu kutoka mashirika tofauti.
Ukurasa huu unajadili seti ya mazoea bora kwa miradi ya Programu Huru/Libre na Zana Huria (FLOSS) iliyoundwa kwa ajili ya nishani ya Mazoea Bora ya Open Source Security Foundation (OpenSSF). Miradi inayofuata mazoea haya bora itaweza kujihakikisha kwa hiari yao na kuonyesha kwamba wamepata nishani husika. Miradi yanaweza kufanya hivyo, bila malipo, kwa kutumia programu ya wavuti (BadgeApp) kueleza jinsi wanavyokidhi mazoea haya na vigezo vyao vya kina.
Mazoea haya bora yameundwa ili:
Msemo "mazoea bora" unamaanisha "njia au seti ya taratibu inayopendelewa au kuchukuliwa kuwa kiwango ndani ya shirika, sekta, n.k." (chanzo: Dictionary.com). Vigezo hivi ni kile tunachosadiki kuwa "vinavyopendelewa au kuchukuliwa kuwa kiwango" katika jamii pana ya FLOSS.
Kwa maelezo zaidi ya jinsi vigezo hivi vilivyoundwa, ona tovuti ya GitHub ya nishani ya Mazoea Bora ya OpenSSF.
Unaweza pia kuona vigezo kamili.
Vigezo vya mazoea bora vimegawanywa katika viwango vitatu:
Kila kigezo kina jina fupi, kinachoonyeshwa kama maandishi ya juu ya juu ndani ya mabano ya mraba baada ya maandishi ya vigezo.
The Linux Foundation pia inafadhili Mradi wa OpenChain, ambayo hutambua vigezo vya "programu ya ubora wa juu ya ufuatiliaji wa Programu Huru na Zana Huria (FOSS)." OpenChain inazingatia jinsi mashirika yanavyoweza kutumia FLOSS vizuri na kuchangia kurudi kwa miradi ya FLOSS, wakati nishani ya Mazoea Bora ya OpenSSF inazingatia miradi ya FLOSS yenyewe. Nishani ya Mazoea Bora ya OpenSSF na OpenChain wanafanya kazi pamoja kusaidia kuboresha FLOSS na jinsi FLOSS inavyotumiwa.
Katika baadhi ya hali tunajaribu kiotomatiki na kujaza habari ikiwa mradi unafuata mila ya kawaida na unahostishwa kwenye tovuti (k.m., GitHub) yenye msaada mzuri wa API.
Tunakusudia kuboresha uanzishaji huu kiotomatiki siku zijazo. Maboresho kwa uanzishaji huu kiotomatiki yanakaribishwa!
Hata hivyo, tumekusudia kuipa kipaumbele "kile kinachosomeka", hata kama hakiwezi kufanywa kiotomatiki kwa bei nafuu. Tunapenda vipimo vya kiotomatiki, lakini si kila kitu muhimu kinaweza kufanywa kiotomatiki au kinaweza kufanywa kiotomatiki kwa bei nafuu.
Tunatarajia kuwa mazoea haya na vigezo vyao vya kina vitaboreshwa kwa muda. Tunapanga kuongeza vigezo vipya lakini kuviweka alama kama vigezo vya "baadaye", ili miradi iweze kuongeza habari hiyo na kudumisha nishani zao.
Maoni ni sana yanakaribishwa kupitia tovuti ya GitHub kama masuala au maombi ya kuvuta. Pia kuna orodha ya barua pepe kwa majadiliano ya jumla.
Maneno muhimu "LAZIMA", "LAZIMA WALA USIWAHI", "INAPASWA", "INAPASWA WALA USIWAHI", na "YAWEZA" katika hati hii yatatafsiriwa kama ilivyoelezwa katika RFC 2119. Neno la ziada PENDEKEZA limeongezwa. Kwa muhtasari, maneno haya muhimu yana maana zifuatazo:
Mara nyingi kigezo kinafafanuliwa kama kitu ambacho KINAPASWA kufanywa, au KIPENDEKEZWA, kwa sababu inaweza kuwa vigumu kutekeleza au gharama za kufanya hivyo zinaweza kuwa juu.
Ili kupata nishani, vigezo vyote vya LAZIMA na LAZIMA WALA USIWAHI lazima vifuatwe, vigezo vyote vya INAPASWA lazima vifuatwe AU visivyo fufufutiliana na thibitisho, na vigezo vyote vya PENDEKEZA lazima vifikiwe (lazima vipimwe kama vimefuatwa au visivyo fufufutiliana, lakini thibitisho hahitajiki isipokuwa imeelezwa vinginevyo). Jibu la N/A ("haihusiki"), ambapo inaruhusiwa, linachukuliwa kama kufuatwa. Katika hali fulani, hasa katika viwango vya juu, thibitisho na/au URL inaweza kuhitajika.
Baadhi ya vigezo vina alama maalum zinazosaidia hii:
Mradi lazima ufike kiwango cha awali ili kufikia kiwango kinachofuata. Katika hali fulani vigezo vya INAPASWA vinakuwa LAZIMA katika nishani za viwango vya juu, na baadhi ya vigezo vya PENDEKEZA katika viwango vya chini vinakuwa INAPASWA au LAZIMA katika nishani za viwango vya juu. Viwango vya juu pia vinahitaji thibitisho zaidi, kwa sababu tunataka wengine kuelewa jinsi vigezo vinavyofuatwa.
Vigezo (vingi) vya usimbuaji havitumiki kila wakati, kwa sababu programu fulani haina haja ya kutumia moja kwa moja uwezo wa usimbuaji. Katika hali hizo, jibu N/A.
Kuna kigezo kimoja cha kupita kilichoonyeshwa - kila mradi LAZIMA kuwa na tovuti ya umma yenye URL thabiti. Hii inahitajika kuunda ingizo la nishani kwanza.
Ikiwa huna ufahamu wa ukuzaji wa programu au kuendesha mradi wa FLOSS, nyenzo kama vile Producing Open Source Software na Karl Fogel zinaweza kukusaidia.
Hapa ni baadhi ya maneno muhimu:
Vigezo:
Kiwango cha kupita hakijumuishi vigezo ambavyo vinaweza kuwa vigumu kwa mradi wa mtu mmoja, k.m., kitu kinachohitaji kiasi kikubwa cha fedha. Miradi mingi ya FLOSS ni ndogo, na hatutaki kuwanyima haki.
Programu yetu inatoa kila ingizo la mradi kitambulisho kipekee, lakini hicho hakiwasaidii watu wanaotafuta mradi. Kwa madhumuni yetu, jina halisi la mradi ni URL ya hifadhi yake, na pale hapo hapatakuwa papo, URL ya "ukurasa wa mbele" wa mradi. Tunaweka kikomo cha kiwango cha mabadiliko kwenye URL ya hifadhi ili kuzuia upuuzi fulani. Miradi kawaida ina jina linalosomeka na binadamu, lakini majina haya hayana kipekee cha kutosha.
Karatasi Nishani Wazi kwa elimu: ni zipi athari kwenye makutano ya mifumo wazi na mifumo ya nishani? inabainisha sababu tatu za jumla kwa mifumo ya nishani (zote ni halali kwa hii):
Tumechagua kutumia uhakikisho binafsi, kwa sababu hii inafanya iwezekane kwa idadi kubwa ya miradi (hata midogo) kushiriki. Kuna mamilioni ya miradi ya FLOSS, na kulipa wahusika wa tatu ili kutathmini kila moja kwa uhuru haizidi. Kuna hatari kwamba miradi inaweza kufanya madai ya uongo, lakini tunafikiri hatari ni ndogo, watumiaji wanaweza kuangalia madai wenyewe, na madai ya uongo yanaweza kubatilishwa. Pia tunatumia otomatiki kubatilisha madai ya uongo ambapo tunaweza kuwa na uhakika wa matokeo.