О многих проектах говорят, что они крайне важны для какой-либо отрасли. Но как оценить их реальную значимость? Корпорация Google разработала специальный рейтинг для оценки открытых проектов как раз по степени важности для отрасли.
Рейтинг создан не просто так его предлагается использоваться для выделения важнейших проектов, от которых зависит развитие. Именно для этих проектов нужно выделять максимум ресурсов, для сопровождения, разработки и обеспечения безопасности. Рейтингом, по замыслу, будут пользоваться организации, которые могут выделить нужные проектам ресурсы.
Для составления этого проекта предложена специальная формула и показатель уровень критичности (Criticality Score). Кстати, алгоритм оценки предложил известный разработчик Роб Пайк (Rob Pike), который стоял у истоков Unix, Plan 9, Inferno и UTF-8. Этот алгоритм учитывает 10 разных коэффициентов, которые и служат для подсчета финального уровня важности. Диапазон оценки от 0 (самые некритичные проекты) до 1 (самые критичные и важные).
В формуле используются следующие весовые коэффициенты:
- Число зависящих проектов (ключевой параметр, вес 2).
- Количество задействованных разработчиков (ключевой параметр, вес 2).
- Время существования проекта (1).
- Время последнего обновления (-1).
- Количество поддерживающих проект организаций (1).
- Среднее число изменений в год (1).
- Число комментариев при обсуждении проблем (1).
- Количество релизов в год (0.5).
- Число закрытых и обновленных сообщений об ошибках за последние 90 дней (0.5).
При необходимости можно добавить и собственные критерии, подходящие для различных направлений и отраслей. Кроме того, если весовые значения коэффициентов по какой-то причине не подходят, их можно изменить. Что касается самого рейтинга, то он вычисляется специальной утилитой, доступной на GitHub.
Команды критически важных проектов получат возможность попросить помощи у организации OpenSSF (Open Source Security Foundation). Она, при помощи входящих в ее состав членов, выделяет ресурсы, консультационную поддержку, финансы или даже элементы инфраструктуры.
Что касается текущего рейтинга, то вот таблица с указанием наиболее важных проектов, написанных на разных языках программирования.
Проекты на языке Си. |
Проекты на языке C++. |
Проекты на языке Java. |
Проекты на языке JavaScript. |
Проекты на языке Python. |
Проекты на языке Rust. |
gitядро linuxphp-srcopensslsystemdcurlu-bootqemumbed-oszephyrastropyredisgnucashopenwrtesp-idfRIOTlibuvbccutil-linuxompiRetroArchlxcFreeRDPglusterfsspdkdarktableobs-studiofrrurbitFFmpegovsImageMagickfreebsdfiolibwebsocketsedk2zfsgpdbkamailiohaproxynetdatambedtlsfluent-bitltpmicropythonwazuhrsyslogCMakempvfwupdjanus-gatewayvlcwineledetmuxs2ncriuOpenSCarduino-esp32betaflightdpdkrt-threadradare2firmwareTasmotazshjemallocmrubykeepalivedflatpakgpaclibvipsgccojblendergimpsyslog-ngrhodeslightningyugabyte-dblibrdkafkai3HandBrakefreeradius-serverpandaneomuttzstdEspruinoctagslibusbamazon-freertosstrongswanh2ocollectddefoldcorebootlvgllibpcappaparazzihttpdvarnish-cachememcachedcituspygit2phprediscinnamonsourcescrcpyopen62541ponyclibeventwiresharkxrdppostgresxxHashrspamdreactosinavstlinkOpenBSDsrcfontforgegoaccesslibsodiumweechatopenssh-portableseL4suricatalibarchiverayliblua-nginx-modulewlrootsdynamorioRemminaonigurumartl_433igrapharm-trusted-firmwarennndata.tablelz4bdwgctcpdumpsleuthkitklippernodemcu-firmwarescancode-toolkitnodemcu-firmwareirssiuwsgilibffiopenvpncoreutilsborggo-sqlite3nusterultrajsoncc65nDPIyarastellar-coreCMSIS_5audacityTDengineaircrack-ngnanopbhonggfuzzgeanycapstonetimescaledbcivetwebxmakelibfusedokanysysstati3json-cjanethiredisiperfopenwrtlibjpeg-turbomosquittocleanflightPF_RINGsimhunicornmtrnginxhashcatRediSearchpygamezinitmotiongreenletfirejailskynetrt-n56urubiniususerland |
tensorflowcephpytorchbitcoinelectronMarlinCataclysm-DDAllvm-projectrocksdbQGISgrpcopencvenvoyardupilotxbmcserveremscriptenarrowvcpkggodottdesktopmongosolidityarangodbincubator-mxnetClickHousegdalhhvmnixxgboostzcashv8rootqgroundcontrolwxWidgetsdrakeTrinityCoremixxxfollyz3librealsensescyllarpcs3mlpackcgalswoole-srcscummvmArduinoharfbuzzfmtmameHalideprotobufthriftpdnspclassimpzeekhpxpybind11cudfdoxygenopenmwminetestterminalppssppswigproxygencocos2d-xwesnothPrusaSlicersupercolliderimguiCatch2libzmqgoogletestPowerToysfbthriftgnuradiokakouneDeepSpeechcppcheckmumbleLightGBMFreeCADbenchmarklmmsbotanfoundationdbnode-sasseoscrawlUrho3DstellariumspdlogglslangopentxdomoticzOpenRCT2servingmysql-5.6jsonflatbuffersopenthreadopenscadwatchmanapollopassengerosqueryMagisklibtorrentqBittorrentvnpylibiglardourmysql-serverAirSimmapbox-gl-nativebgfxkeepassxconeflowopenFrameworksopenpilotnotepad-plus-plusrust-bindgensubsurfacecatboosticinga2PX4-Autopilotstk-codeQuantLibor-toolsreact-native-windowsMuseScoreshogunmesosClementinesrsLTECopyQopenvinodlibfalcorippledbullet3ethminerduckdbesphomecarlasqlitebrowseromimqt-creatorbpftracecitraGDeveloptileddolphinnewsboatopencv_contribjsoncpprathenaserenitycvxpyQOwnNotesuncrustifyyogai2pdproxysqlfilamentRawTherapeetaichiCinderglowzncncnnogretesseractonnxruntimefivemVTKKeyDByosysshotcutxmrigmoneroskiaModSecuritytigervncyuzuDALIwangleOpenShadingLanguageninjacodeliteosrm-backendseastardxvknode-canvasabseil-cpp |
elasticsearchflinkspring-boothadoopnettyjenkinsbeambazelalluxiopmdjdkballerina-langcasspring-frameworkcamelseleniumclosure-compilerquarkusnokogirikafkahazelcastrobolectricprestospring-securityNewPipemockitoplatform_frameworks_basejackson-databindhbaseokhttpcheckstylepulsarjetty.projectrstudiohibernate-ormtomcatActivitiopenapi-generatorneo4jzeppelincassandramicronaut-coreAnki-AndroidhivecucumberMindustryorientdbdropwizardchejunit5testcontainers-javajOOQlucene-solropenj9buckigniteRxJavametricslibgdxdubbojavaparsershardingsphereflywaylithodbeaverk-9groovyaws-sdk-javalanguagetoolkeycloakskywalkinggraylog2-serverredissonguavadebeziumandroiddroolsgraalgrpc-javajava-design-patternslombokpentaho-kettlezookeepernacoscratestormAntennaPodreactor-corezaproxyruneliteExoPlayerfastjsonrealm-javah2databasedruidconductorapollo-androidwildflyFrameworkBenchmarkscordova-androidarmeriaflowable-enginecapacitormaterial-components-androidTerasologyOpenRefineArduinogocdasync-http-clientdruidmicrometerDependencyCheckSignal-AndroidvespathingsboardeurekaMinecraftForgejunit4zipkinantlr4Javajava-tronspring-cloud-netflixXChangebisqprocessingkylinresilience4jmybatis-plushutoolguiceaeronshirobyte-buddyjmetervert.xmybatis-3smilespring-cloud-gatewaygraphhopperpicocliarthaswiremockswagger-corejmonkeyengineincubator-dolphinschedulerapollojnaweb3jfrescoatmosphereandroid-maps-utilsreact-native-push-notificationaws-doc-sdk-exampleslottie-androidFirebaseUI-AndroidCoreNLPxxl-jobhalospringfoxspring-boot-adminspockHikariCPautoopengrokSentineltraccarlettuce-coregsoncryptomatorerror-pronefeignCS-Notesretrofitincubator-pinotmapstructjibfrontend-maven-pluginreact-native-camerajanusgraphrest-assuredrocketmqsparkimmutablesJava-WebSocketsonarqubeglideundertowmockserverkaratejedisspring-cloud-alibabaYCSBksqlseataJavaGuideJSON-javacanalzuulgraphql-java |
node.jsreact-nativereactgatsbythree.jsbootstrapmaterial-uiodoonext.jsRocket.Chatcypressamphtmlcreate-react-appmeteorvue-clijupyterlabsequelizephaserbrowser-compat-datamaterialquasariDhighlight.jsreactiontaroChart.jsknexetherpad-liteeslint-plugin-reactreveal.jszigbee2mqttangular.jsshieldssveltep5.jsopenlayersweb3.jswekanaframeember-clikarmareact-routervideo.jsreact-testing-librarymarkedjs-ipfspreactbrave-browserrequestvuepressvue-routeracorndiscord.jssweetalert2js.orghtml-webpack-plugintersergraphql-jsvuecore-jsavastyled-componentsjavascriptcaniusesharpdayjsdraft-jsoutlinedate-fnsvalidator.jsstandardunderscorecommander.jsreact-tableUglifyJSswiperstandardgrommetbrowserslisthandsontablevuexwebtorrentenginejquery-uiwebpack-bundle-analyzerdash.jsvue-i18nsandstormag-gridbootstrap-tablelernagridsomeuppyRSSHubModernizrmini-css-extract-pluginTiddlyWiki5nodemailerSemantic-UI-Reactuni-applaravel-mixhapirealm-jsdeck.glnpm-check-updatesyupreact-dropzonecytoscape.jsselect2koabpmn-jsrelease-italpinesummernoted3fetchhiring-without-whiteboardspouchdbnightwatchjssagendaagendaOpenAPI-Specificationplyrnode-http-proxyappwritegulpFusequillworkboxless.jsjoiInquirer.jsconventional-changelogasyncportainermjmlrioteggcodesandbox-clientmustache.jsswagger-editorzoterolaravel-corsKaTeXmarkoreactivesearchreactivesearchinfernotheloungebeefcz-clireact-native-gesture-handlerjsdocsheetjsbrowser-synctsdxnoVNCpopper-coretriliumfaker.jsbracketsloopbackbootswatchvue-selectexceljsbrowserifypostgraphilereact-jsonschema-form |
saltcorepandasscikit-learnnumpycpythonairflowerpnextmatplotlibpytestpipsympycomposerasasentrycelerymodelssphinxPaddledjangosynapseelectrumzulipnumbarqcythondaskdjango-rest-frameworkipythonrequestsmotomotobokehrayckanyoutube-dlmypywagtailincubator-supersetsaleoraws-clixonshpylintcertbotwerkzeugcupyhypothesispyramidscikit-imagecryptographycryptographyisortaiohttpdvcPythonflaskqutebrowserspyderboto3espnetpyinstallerfairseqnetboxtwistedjupyterhubcookiecutter-djangolocusttriblerpytorch-lightningpipenvmmdetectiondjango-extensionsmitmproxyjumpserverpsutilstatsmodelsdocker-pyfastapiscrapyprefectbeetspre-commitdjango-allauthnltkpoetrykittyblackNuitkadetectron2optunanode-gypjaxambassadorTelethonsupervisorstreamlinkredis-pyincubator-tvmParlAIjinjaqiskit-terraPySyftallennlptqdmfakerchainermarshmallowdjango-debug-toolbarpytorch_geometricCppCoreGuidelinesgoogle-api-python-clientst2pelicanplotly.pyfail2banlutrisluigigensimmycroft-coremongoenginetornadosqlmapnetworkxcalibresqlalchemythumborignitescapyelastalertlocalstackgreat_expectationsfreqtradegymsigmagraphene-djangodashyou-getpytextpython-for-androidOctoPrintdocumentationgunicornhttpxdiscord.pyattrsOCRmyPDFd2l-enclickpytubesanicparamikoXX-NetPythonkintohostsserverless-application-modeltrioarrowbottledjango-crispy-formsuvicornhorovodpatronipycodestyledatasettehealthcheckspublic-apisgraphenetomlpythondocker-stacksziplinestarlettebrythonpwntoolsyapfspotipyFlask-AppBuildermongo-python-driverspiderfootglancessshuttlepgclimanimangrfoliumpython-prompt-toolkitchalicerecommenderswebpyauto-sklearnkafka-pythonrichZappapyromoviepyrangerflairFlask-SocketIO |
servocargorust-clippytokiorust-analyzertocktikvalacrittylibcsubstraterustfmtsolanawebrendercrates.ioactix-webhyperedenwasmtimehabitatlibraclappyo3amethystserdewasmerrustupjsonrust-opensslwinitripgrepstacks-blockchainvectorstarshipdieselwasm-bindgenchronocoreutilsrandreqwestimagecc-rsfutures-rsnixRocketcore-foundation-rsgleamnushellfirecrackerrayonpolkadottree-sitterrust-urlcrossbeamtracingi3status-rustmirigfxwranglergit2-rstrust-dnsindy-sdkcbindgenrustlingsMeiliSearchbatsynregexgrinrhaiactixtarpaulintokeiwgpurust-postgresweztermcargo-makesentry-clilighthousebevyswcmaterializeckbshadowsocks-rustyewactix-netsqlxrusttidemionomzolasledcortex-mLanguageClient-neovimjuniperparking_lotrust-bitcoinnalgebraredis-rsrlsasync-stdkube-rsgeobrootfdrust-smallvecexawarpvelorenlogstructoptrust-libp2phashbrownuuidorbtkdeltarustimageflowlemmyRustPythonitertoolslinkerd2-proxyracermailcheckercloud-hypervisornumcrosstermtauriprobe-rslibhermit-rstantivychalksccacheasync-graphqlrusototokenizershandlebars-rusttoml-rsspotifydholochain-rusttonicrustylinerust-bioawesome-rustopticpulldown-cmarkserenityh2boaquicheabstreetspotify-tuibottlerocketneongraph-nodequick-xmlggezgliumlapindifferential-datalogjustcombinerustlsrust-protobufrust-rocksdbtarpcncspotconrodrufflehashesPyOxidizercursivematurincargo-audittopgradeglutinimgui-rsnannouZoKrates996.ICUfnmembedded-halffsendnearcorelsdtowerpistoncurl-rustbitflagsrust-sdl2tui-rselectrsskimreferencerust-csvureqrusty_v8gituirust-mysql-simpleincubator-teaclave-sgx-sdk |