Mjadala wa Vigezo

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:

  1. kuhamasisha miradi kufuata mazoea bora,
  2. kusaidia miradi mipya kugundua mazoea hayo ni yapi, na
  3. kusaidia watumiaji kujua ni miradi ipi inayofuata mazoea bora (ili watumiaji waweze kupendelea miradi kama hiyo).

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.

Muundo wa Vigezo

Vigezo vya mazoea bora vimegawanywa katika viwango vitatu:

  • Kupita inazingatia mazoea bora ambayo miradi ya FLOSS inayoendeshwa vizuri kwa kawaida tayari inafuata. Kupata nishani ya kupita ni ushindi; wakati wowote mmoja tu karibu asilimia 10 ya miradi yanayofuata nishani hufikia kiwango cha kupita.
  • Fedha ni seti ya vigezo vikali zaidi kuliko kupita lakini inatarajiwa kupatikana na miradi midogo na ya shirika moja.
  • Dhahabu ni vikali zaidi kuliko fedha na inajumuisha vigezo ambavyo haviwezi kupatikana na miradi midogo au ya shirika moja.

Kila kigezo kina jina fupi, kinachoonyeshwa kama maandishi ya juu ya juu ndani ya mabano ya mraba baada ya maandishi ya vigezo.

Uhusiano na Miradi Mingine

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.

Utawala wa Vigezo

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.

Mabadiliko kwa muda

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

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:

  • Neno LAZIMA ni mahitaji kabisa, na LAZIMA WALA USIWAHI ni marufuku kabisa.
  • Neno INAPASWA linaonyesha kigezo ambacho kawaida kinahitajika, lakini kunaweza kuwepo sababu halali katika hali maalum kuikimbia. Hata hivyo, maana kamili lazima zieleweke na kupimwa kwa uangalifu kabla ya kuchagua njia tofauti.
  • Neno PENDEKEZA linatumika badala ya INAPASWA wakati kigezo lazima kifikiwe, lakini sababu halali za kutofanya hivyo ni za kawaida zaidi kuliko kwa INAPASWA.
  • Neno YAWEZA linatoa njia moja ambayo kitu kinaweza kufanywa, k.m., ili kufanya wazi kuwa utekelezaji ulioelezwa unakubaliwa.

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.

Kupata nishani

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:

  • {N/A inaruhusiwa} - "N/A" ("Haihusiki") inaruhusiwa.
  • {N/A thibitisho} - "N/A" ("Haihusiki") inaruhusiwa na inahitaji thibitisho.
  • {Kukabiliana na thibitisho} - "Kumefuatwa" kunahitaji thibitisho.
  • {Kukabiliana na URL} - "Kumefuatwa" kunahitaji thibitisho na URL.
  • {Baadaye} - jibu la kigezo hiki kwa sasa hakina athari, lakini linaweza kuhitajika siku zijazo.

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.

Istilahi

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:

  • Mradi project ni kipengele chenye shughuli ambacho kina mwanachama/wanachama wa mradi na kinazalisha matokeo ya mradi. Mwanachama wake hutumia tovuti za mradi kuandaa na kusambaza matokeo. Mradi hauhitaji kuwa chombo rasmi cha kisheria.
  • Wanachama wa mradi ni kikundi cha mtu mmoja au zaidi au makampuni ambao wanafanya kazi pamoja kujaribu kuzalisha matokeo ya mradi. Baadhi ya miradi ya FLOSS inaweza kuwa na aina tofauti za wanachama, wenye majukumu tofauti, lakini hilo liko nje ya wigo wetu.
  • Matokeo ya mradi ni kile wanachama wa mradi wanafanya kazi pamoja kuzalisha kama lengo lao la mwisho. Kawaida hii ni programu, lakini matokeo ya mradi yanaweza kujumuisha vitu vingine pia. Vigezo vinavyorejelea "programu iliyozalishwa na mradi" vinaonelea matokeo ya mradi.
  • Tovuti za mradi ni tovuti zilizotengwa kusaidia ukuzaji na usambazaji wa matokeo ya mradi, na ni pamoja na tovuti ya mradi, hifadhi, na tovuti za kupakua inapohusika (angalia sites_https).
  • Tovuti ya mradi, pia inajulikana kama ukurasa wa nyumbani wa mradi, ni ukurasa mkuu kwenye wavuti ya ulimwengu (WWW) ambayo mtumiaji mpya atatembelea kawaida kuona habari kuhusu mradi; inaweza kuwa sawa na tovuti ya hifadhi ya mradi (hii mara nyingi ni kweli kwenye GitHub).
  • Hifadhi ya mradi husimamia na kuhifadhi matokeo ya mradi na historia ya marekebisho ya matokeo ya mradi. Hii pia inajulikana kama hifadhi ya chanzo ya mradi, kwa sababu tunahitaji tu kusimamia na kuhifadhi matoleo ya kuhaririwa, si matokeo yaliyozalishwa kiatomati (katika hali nyingi matokeo yaliyozalishwa hayahifadhiwi katika hifadhi).
  • Utaratibu wa usalama wa mradi ni utaratibu wa usalama uliotolewa na programu ya mradi iliyowasilishwa.

Visivyo Vigezo

Vigezo:

  • havihitaji si teknolojia maalum, bidhaa, au huduma. Kwa mfano, havihitaji si git, GitHub, au GitLab. Vigezo vinatoa mwongozo na msaada kwa visa vya kawaida, kwa kuwa habari hiyo inaweza kusaidia watu kuelewa na kukidhi vigezo. Kuna kiatomati maalum kwa miradi inayotumia git au GitHub, kusaidia watumiaji katika visa hivyo vya kawaida, lakini havihitajiki si. Hivyo, vigezo vipya na uwezo vinapokuwa vinapatikana, miradi inaweza kubadilika haraka kwavyo. Kama vigeuzo, vigezo vinahitaji ukurasa wa wavuti wa mradi na TLS.
  • havihitaji si au kukataza lugha yoyote maalum ya upangaji programu. Wanahitaji hatua za ziada kuchukuliwa kwa aina fulani za lugha za upangaji programu, lakini hiyo ni tofauti.
  • kamwe never kuhitaji matumizi ya programu ya kibinafsi, huduma ya kibinafsi, au teknolojia ya kibinafsi, kwa kuwa wasanidi programu wengi wa programu huria wangekataa vigezo kama hivyo. Miradi inaruhusiwa kuzitumia na kutegemea.
  • havihitaji si maendeleo ya shughuli au majadiliano ya watumiaji ndani ya mradi. Baadhi ya miradi iliyokomaa sana hubadilika nadra na hivyo inaweza kuwa na shughuli kidogo. Vigezo vinahitaji, hata hivyo, kuwa mradi uwe na majibu ikiwa udhaifu unaripotiwa kwenye mradi.
  • havihitaji si ada kupata nishani.
  • havihitaji si kuwa vigezo vyote vitekelezwe mara moja; miradi mingi huviendelesha kwa wakati.

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.

Kutambua mradi

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.

Kwa nini kuwa na vigezo?

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):

  1. Nishani kama msukumo wa tabia. Tunatumaini kwamba kwa kutambua mazoea bora, tutashawishi miradi kutekeleza mazoea hayo bora ikiwa hawayafanyi tayari.
  2. Nishani kama chombo cha kielimu. Baadhi ya miradi inaweza kutofahamu baadhi ya mazoea bora yanayotumika na wengine, au jinsi yanavyoweza kutumika kwa vitendo. Nishani itawawezesha kufahamu yao na njia za kuyatekeleza.
  3. Nishani kama kiashiria au cheti. Watumiaji wanaotarajiwa wanataka kutumia miradi inayotumia mazoea bora ili kuzalisha matokeo mazuri mara kwa mara; nishani hufanya iwe rahisi kwa miradi kuashiria kuwa wanafuata mazoea bora, na kufanya iwe rahisi kwa watumiaji kuona ni miradi ipi inayofanya hivyo.

Kwa nini uhakikisho binafsi?

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.