포지의 연합이 필요하다

5 hours ago 3
  • 오픈소스 협업은 단일 제공자에 크게 의존하는 구조보다, 코드 전송과 커뮤니케이션을 나눠 맡는 분산형 프로토콜 조합이 더 바람직하다는 문제의식 위에 놓여 있음
  • 코드 협업은 원래 git과 이메일 조합으로 이뤄졌고, 이후 git과 GitHub 웹사이트 조합으로 옮겨갔으며, ForgeFed는 git과 ActivityPub, Tangled는 git과 AT protocol 조합으로 이어짐
  • Tangled는 git 서버 사이 이벤트를 연합하는 구조로, 각 서버를 knot이라 부르며 서버가 달라도 저장소 협업, 서버 간 fork, 다른 서버에 있는 저장소로의 pull request를 지원함
  • 코드 주변의 Authenticated Transfer에는 AT를 쓰고, issues, pull requests, 이벤트 타임라인, follows, stars를 함께 다루며 협업자 초대와 SSH 공개키 공유에도 활용함
  • 직접 cgit 인스턴스를 운영하고 이메일로 패치를 보내는 흐름과 닮아 있으면서도, GitHub 모노컬처에서 벗어나 협업의 사회성과 재미를 유지하려는 방향이 드러남

포지 연합 필요성

  • 오픈소스 협업의 상당 부분을 단일 제공자에 의존하는 구조는 바람직하지 않으며, 중앙집중형 시스템보다 분산형 프로토콜이 더 오래 버틴다는 관점을 바탕에 둠
  • 코드 협업은 항상 두 가지 프로토콜을 함께 써 왔고, 하나는 코드 전송, 다른 하나는 커뮤니케이션을 맡아 왔음
    • 초기 흐름은 git과 이메일 조합이었음
    • 이후에는 git과 GitHub 웹사이트 조합으로 바뀜
    • ForgeFed는 git과 ActivityPub 조합 가능성을 두고 있음
    • Tangled는 git과 AT protocol 조합으로 구축 중임
  • Tangled는 git 서버들 사이의 이벤트를 연합하며, 각 서버를 knot이라고 부름
    • 어느 서버에 있든 저장소 협업 가능함
    • 서버를 넘는 fork 지원함
    • 자기 서버의 저장소에 push한 뒤, 완전히 다른 서버에 호스팅된 저장소로 pull request를 열 수 있음
  • 이 방식은 직접 cgit 인스턴스를 운영하면서 이메일로 패치를 보내는 흐름과 여러 면에서 닮아 있음

Tangled가 맡는 역할

  • Tangled는 코드 주변 이벤트의 Authenticated Transfer에 AT를 사용함
    • issues와 pull requests 같은 이벤트 전달에 쓰임
    • 이벤트 타임라인, follows, stars 같은 소셜 기능도 함께 다룸
    • vouches도 곧 추가될 예정임
  • AT는 협업자 초대와 SSH 공개키 공유에도 쓰이며, 그 밖의 부분은 기존 git을 그대로 사용함
  • 오픈소스는 GitHub 같은 모노컬처에서 벗어날 필요가 있으며, 동시에 코드 협업의 사회성과 재미도 유지해야 함
  • tangled alpha
  • docs
  • source
  • discord
  • bluesky
  • twitter (x)
  • feed
Read Entire Article