Представлен выпуск P2P-платформы Radicle 1.5, нацеленной на создание децентрализованного сервиса совместной разработки и хранения кода, похожего на GitHub и GitLab, но не привязанного к конкретным серверам, не подверженного цензуре и работающего с использованием ресурсов участников P2P-сети. Платформа поддерживает типовые элементы социального взаимодействия разработчиков, такие как issue, патчи и рецензии на код. Наработки проекта написаны на языке Rust и распространяются под лицензиями Apache 2.0 и MIT. Сборки подготовлены для Linux и macOS. Дополнительно развиваются десктоп-клиент, web-интерфейс и консольный интерфейс.
Radicle lejon që zhvillimi dhe shpërndarja e kodit të mos varen nga platforma dhe korporatat e centralizuara, lidhja me të cilat sjell shtrenjtime të tjera (pikë e vetme dështimi, kompania mund të mbyllet ose të ndryshojë kushtet e funksionimit). Për menaxhimin e kodit në Radicle përdoret Git-i i njohur, i zgjeruar me mjete për përkufizimin e repozitorëve në rrjetin P2P. Të gjitha të dhënat ruhet fillimisht në mënyrë lokale (koncepti local-first) dhe gjithmonë janë të disponueshme në kompjuterin e zhvilluesit, pa marrë parasysh gjendjen e lidhjes në rrjet.
Pjesëmarrësit ofrojnë qasje në kodin e tyre dhe artikujt e lidhur me kodin, të tilla si patches dhe diskutime për rregullimin e gabimeve (issues), të cilat ruhet lokalish dhe replikohen në nyjet e zhvilluesve të tjerë të interesuar, të lidhur me rrjetin e përgjithshëm decentralizuar P2P. Si rezultat, formohet një repozitor global i decentralizuar Git, të dhënat e të cilit janë replikuar dhe kopjuar në sisteme të ndryshme të pjesëmarrësve.
Për të përcaktuar nyjet fqinj në rrjetin P2P, aplikohet protokolli Gossip, dhe për replikimin e të dhënave midis nyjeve, protokolli Heartwood, i bazuar në Git. Duke qenë se protokolli është i bazuar në Git, platforma lehtë integruar me mjetet ekzistuese për zhvillim në Git. Për identifikimin e nyjeve dhe verifikimin e repozitorëve përdoret kriptografia e bazuar në çelësa publikë, pa përdorimin e llogarive. Autentifikimi dhe autorizimi bëhet mbi bazën e çelësave publikë, pa unifikim qendror. serverësh.
Çdo depo në rrjetin P2P ka një identifikues unik dhe është vetë-certifikues, pra të gjitha veprimet në depo, si shtimi i komiteteve dhe lënia e komenteve në çështje, janë të vulosura nga pronari me një nënshkrim digjital, duke lejuar verifikimin e saktësisë së të dhënave në nyje të tjera pa përdorur qendrat e akreditimit centralizuese. Për të pasur qasje në depo mjafton që të jetë në internet të paktën një nyje, në të cilën ndodhet kopja e saj e riprodhuar.
Nyjet në rrjetin P2P mund të regjistrohen në depo të caktuara dhe të marrin përmirësime. Është e mundur krijimi i depozita private, të cilat janë të qasshme vetëm për nyje të caktuara. Për menaxhimin dhe pronësinë e depozitës përdoret koncepti i "delegatëve". Një delegat mund të jetë ose një përdorues i vetëm, ose një bot ose grup, i lidhur me një identifikues të veçantë. Delegatët mund të pranojnë patch-e në depo, të mbyllin çështje dhe të caktuar të drejtat e aksesit në depo. Çdo depo mund të lidhet me disa delegatë.
Depozitat Radicle ruajnë në sistemet e përdoruesve si depo git të zakonshme, në të cilat janë të pranishme hapësira shtesë emrash për ruajtjen e të dhënave të peers dhe fork-ëve, me të cilët po punohet aktualisht. Diskutimet, patch-et e propozuara dhe komponentet për organizimin e rishikimeve gjithashtu ruhen në depo git si objekte bashkëpunuese (COB - Collaborative Objects) dhe riprodhohen midis peers.
Në versionin e ri:
- Улучшена поддержка bare-репозиториев, не содержащих рабочего каталога с копией файлов проекта, а хранящих только историю изменений и метаданные, такие как ветки и теги. В команду «rad clone» добавлена опция «—bare», позволяющая клонировать репозиторий в представление без рабочего дерева. В утилите «git-remote-rad» улучшена работа с bare-репозиториями при использовании команд «git push» и «git fetch» при обращении к внешнему rad-серверу.
- Добавлена настройка «patch.branch», которую можно использовать в утилите git-remote-rad («git-remote-rad -o patch.branch[=<name>]») при добавлении патча для автоматического создания ветки в upstream-репозитории, без необходимости использования команды «rad patch checkout».
- Улучшен вывод команды «rad patch show», которая теперь показывает исходную версию патча, выводимую ранее только при указании флага «—verbose». Все ревизии теперь выводится в единой хронологии без разделения на изменений от оригинального автора и других участников.
- Добавлена возможность вывода логов в структурированном представлении, включаемом через опции «—log-logger structured» и «—log-format json».
Burimi: opennet.ru
