The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Открыты исходные тексты Sourcegraph

02.10.2018 13:05

Платформа Sourcegraph переведена в разряд открытых проектов. Sourcegraph предоставляет движок для навигации по исходным текстам и поиска определённых конструкций в коде. Проект состоит из серверной части и web-интерфейса, а также браузерного дополнения для интеграции с GitHub.com. Код написан на языках Go и JavaScript (Node.js). Для хранения данных используется PostgreSQL, а для хранения сеансов Redis. Код открыт под лицензией Apache 2.0.

Sourcegraph может применяться как самодостаточная платформа для рецензирования и навигации по исходным текстам, размещённым в Git-репозиториях. Например, имеется возможность анализа произвольного вызова функции и перехода к месту её определения, просмотра других вызовов этой функции в коде, истории изменений, связанных с функций обсуждений, документации и сообщений об ошибках. Sourcegraph также предоставляет гибкие средства поиска ссылок и всплывающие подсказки по использованию различных объектов.

Поддерживается анализ кода на 19 языках и модули интеграции с GitHub.com, GitHub Enterprise, Bitbucket Server и Phabricator. Возможно подключение внешних серверных обработчиков для разбора семантики языка и статического анализа кода, поддерживающих протокол LSP (Language Server Protocol). Для интеграции со сторонними инструментами разработки предоставляется Sourcegraph Extension API.

В состав серверной части входят:

  • Cервисы для обеспечения работы фронтэнда (web-интерфейса);
  • Прокси для интеграции с GitHub;
  • Git-сервер для зеркалирования репозиториев на своём хосте;
  • Индексатор для построения поискового индекса на основании содержимого репозитория с учётом семантики кода на разных языках;
  • Lsp-proxy для взаимодействия с LSP-модулями для разбора кода на разных языках программирования (имеются собственные модули для Go, Java, TypeScript/JavaScript, Python и PHP);
  • query-runner для выполнения проверочных поисковых запросов и отправки уведомлений;
  • Repo-updater для отслеживания актуальности репозитория и его обновления при необходимости;
  • Searcher для поиска в git-архиве;
  • Indexed-search/zoekt для поиска с привлечением предварительно построенного индекса;
  • Symbols для индексации с учётом обработки в Ctags;
  • Syntect для обеспечения подсветки синтаксиса;
  • Модули для интеграции с редакторами кода и интегрированными средами разработки.

Проект вместо проприетарного продукта теперь будет развиваться в соответствии с моделью OpenCore, которая подразумевает наличие открытой базовой части с поставкой дополнительной функциональности в виде платных редакций. Например, среди возможностей, доступных только в платной версии, упоминаются поддержка механизма единой аутентификации (SSO), кластеризация, навигация с охватом разных репозиториев, поддержка внешних СУБД и расширенная система логов.

  1. Главная ссылка к новости (https://about.sourcegraph.com/...)
  2. OpenNews: Выпуск платформы обмена сообщениями Zulip 1.8
  3. OpenNews: Facebook представил новый язык формирования запросов GraphQL
  4. OpenNews: Выпуск интегрированной среды разработки Eclipse "Photon" с поддержкой языка Rust
  5. OpenNews: Доступна интегрированная среда разработки Apache NetBeans 9.0
  6. OpenNews: GitHub реализовал средства совместной разработки для редактора кода Atom
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49382-sourcegraph
Ключевые слова: sourcegraph
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Володя (??), 13:18, 02/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ура! Годный сервис, юзаем в команде из двух трех =) .
     
     
  • 2.2, Володя (??), 13:19, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    трех человек
     
     
  • 3.3, Анон222333 (?), 13:36, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    четверых человек
     
     
  • 4.9, Хайпер (?), 14:45, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Трёх-Черверёх
     
     
  • 5.13, Аноним (13), 15:27, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Кто мы? Мы команда! Сколько нас? Нас ¾ человека!
     
     
  • 6.36, trdm (ok), 11:31, 04/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Нас ¾ человека!

    это человек, который закончил учебу. Есть все кроме опыта работы.

     
  • 3.4, немезидеЦ (?), 13:37, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    2/3 ?
    Так мало? Даже на одного не хватило? =))
     
     
  • 4.10, Аноним (10), 15:13, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >  2/3 ?
    > Так мало? Даже на одного не хватило? =))

    Юзает тем, во что еще иногда едят.
    А код пишется немного другим местом.


     
  • 2.8, Аноним (8), 14:31, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Кто из них человек-разумный и гамадрил?
     

  • 1.5, th3m3 (ok), 13:49, 02/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Код написан на языках Go и JavaScript (Node.js).

    Зачем туда было ноду пихать, если использовали Go? Они бы ещё туда php запихали для большей солянки.

     
     
  • 2.11, Аноним (11), 15:19, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Пых не модно и молодежно.
     
     
  • 3.15, нах (?), 16:45, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Пых не модно и молодежно.

    но rust в этой конструкции явно не хватает!

     
     
  • 4.23, th3m3 (ok), 23:11, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если только всё переписать на Rust.
     
  • 2.14, bloodmoonger (?), 16:30, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если внимательно посмотреть код, то можно понять что это web-сервис. Nodejs используется для сборки TypeScript+React - в общем это frontend проекта, а не backend как было указано в статье...
     

  • 1.6, Аноним (6), 14:02, 02/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Я, конечно, понимаю, что инструмент для мало-мальски серьёзного проекта (когда большой объём кода и куча сторонних либ) нужный, но парадигма "навалим кучу навоза, а потом создадим специальную волшебную лопату чтобы в ней копаться" как-то не очень нравится.
     
     
  • 2.7, Ананимуз (?), 14:20, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вы наверно всегда правильно проектируете и код пишете, все предусматриваете.
     
     
  • 3.20, Maxim (??), 19:27, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Прикинь! ))
     
  • 3.26, Ordu (ok), 01:47, 03/10/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    При чём здесь "правильно" или "неправильно"? Ядро linux правильно написано? Допустим, что да (если нет, выбери любой другой проект сравнимого размера, который написан правильно). Попробуй разобраться в нём без специализированной лопаты. Вот возьми /bin/more и попробуй разобраться.

    Экскаваторы изобрели вместо лопаты не потому, что теперь приходится копать более сложный грунт, их изобрели потому, что теперь приходится вынимать большие объёмы грунта. То же самое касается и средств разработки, таких как IDE, VCS и всяких там sourcegraph, для которых ещё не придумали категории с трёхбуквенной аббревиатурой.

     

  • 1.16, Аноним (16), 17:13, 02/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Node.js

    Ещё Electron очень не хватает для полного счастья.

     
     
  • 2.17, Аноним (17), 18:03, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не смешно.
    Нода предоставляет отличный скриптовый язык для серверов (как Питон, например).
     
     
  • 3.19, Аноним (19), 18:50, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Однопоточный с реализацией всего через дополнения, которые через 5 лет сгинут в небытие. Нет, лучше питон.
     
     
  • 4.27, Аноним (17), 02:19, 03/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что для многих юзкейсов хватает хорошей асинхронности.
    Но многопоточка тоже есть https://nodejs.org/api/worker_threads.html
     
  • 3.24, th3m3 (ok), 23:12, 02/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Настолько отличный, что создатель node.js теперь открещивается от неё?)
     
     
  • 4.28, Аноним (17), 02:23, 03/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Где?) Там речь была всего лишь о том, что "я бы DNS писать на ноде не стал бы". Но каждому инструменту свои задачи. Иногда и на чистом C есть смысл писать серверную часть.
    А так, Go как полноценный язык - ну сильно такое себе, если честно. А JS работает на клиенте, работает на сервере, работает быстро - что еще для счастья надо?
     
     
  • 5.29, th3m3 (ok), 02:49, 03/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Всё это полумеры, для счастья нужен Rust. Скоро и js из браузера выпихнем Wasm.
     
     
  • 6.33, Аноним (17), 00:07, 04/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Скриптовый язык и нативные вставки "где надо" - оптимальное решение между скоростью разработки и просто скоростью
     
     
  • 7.34, th3m3 (ok), 00:23, 04/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это всё полумеры.
     
     
  • 8.35, Аноним (17), 04:41, 04/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Только компилирумый - тоже не лучший вариант По крайней мере, в контексте раста... текст свёрнут, показать
     

  • 1.22, Аноним (22), 21:36, 02/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://gitlab.com/gitlab-org/gitlab-ce/issues/41925 - issue по интеграции sourcegraph в GitLab
     
  • 1.25, Ддд (?), 01:05, 03/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нифига не понял для чего эта шиука
     
     
  • 2.31, Аноним (31), 09:21, 03/10/2018 [^] [^^] [^^^] [ответить]  
  • +/
    заходишь на какую-нибудь репу на github, или bitbucket, или phabricator. Видишь там функцию в коде, щелкаешь на ней правой кнопкой, появляется меню с пунктами "go to definition" и т.п. Причем этот definition может быть вообще в другой репе.
     

  • 1.32, Аноним (32), 16:34, 03/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ух ты, годнота! Интересно, можно её приспособить как IDE к текстовому редактору, т.е. индексировать локальную дельту? Всегда мечтал вынести тяжёлые функции индексации кода на внешний сервис.
     
  • 1.37, Аноним (-), 14:16, 04/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если бы они это сделали в консоли без джаваскрипт приблуд, то было бы интересно.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру