1 pontos por GN⁺ 2023-07-05 | 1 comentários | Compartilhar no WhatsApp
  • A Sourcegraph fez a transição para um monorepo privado
  • Este repositório (sourcegraph/sourcegraph-public-snapshot) é uma cópia pública do repositório sourcegraph/sourcegraph imediatamente antes da transição

1 comentários

 
GN⁺ 2023-07-05
Comentários do Hacker News
  • Falando como CEO da Sourcegraph, a Sourcegraph agora está dividida em dois produtos separados: busca de código e Cody
    O Cody continua como open source sob licença Apache 2 no diretório client/cody* do repositório, e em breve será separado em um repositório distinto 100% open source
    O princípio de licenciamento é oferecer ferramentas para desenvolvedores individuais como open source e cobrar das empresas
    A variante open source com funcionalidades limitadas da busca de código quase não era usada nem por desenvolvedores individuais nem por empresas, e o uso da busca de código da Sourcegraph estava ainda mais concentrado no build oficial não open source do que em casos como Google Chrome vs. Chromium e VS Code vs. VSCodium
    Manter as duas variantes era um peso para a equipe de engenharia, e o benefício para os usuários era muito pequeno
    Há uma explicação mais detalhada em https://github.com/sourcegraph/sourcegraph/issues/53528#issu...
    As mudanças foram anunciadas no changelog e no PR, e todo o desenvolvimento é feito publicamente
    Conforme o planejado, o grande monorepo será dividido em um repositório 100% open source para o Cody e um repositório fechado para a busca de código, e um post no blog deve sair esta semana
    Para código público, e em https://sourcegraph.com para código privado, será possível continuar usando a busca de código da Sourcegraph gratuitamente na camada gratuita self-hosted
    Ou seja, desenvolvedores individuais ainda podem rodar a busca de código da Sourcegraph com 100% de gratuidade, e não há impacto para os clientes
    • A Sourcegraph só fornecia imagens não open source, o processo de build era difícil e quebrado há muito tempo, e até a própria aplicação da versão open source quebrava com frequência
      Basta procurar por alguns minutos nas issues para encontrar bastante coisa relacionada: https://github.com/sourcegraph/sourcegraph/issues/43231, https://github.com/sourcegraph/sourcegraph/issues/43203, https://github.com/sourcegraph/sourcegraph/issues/6790, https://github.com/sourcegraph/sourcegraph/issues/6783
      Se poucas pessoas conseguiam fazer o build, e mesmo quando conseguiam o resultado quebrava a cada poucas releases, é natural que o uso da versão open source fosse baixo
      VS Code e Chromium são fáceis de compilar e há versões pré-compiladas disponíveis em vários lugares, graças à natureza e à popularidade deles
      Eu até instalaria um build “não oficial” do Chromium vindo do repositório da distribuição, mas não colocaria meu código em um build não oficial da Sourcegraph feito por alguém aleatório no GitHub
      Comparar os dois é bastante injusto, e havia outros problemas que impediram a adoção do open source
      Por um tempo, a imagem Docker oficial da Sourcegraph incluía uma licença gratuita para 10 assentos, o que era suficiente para muita gente, então ninguém ia procurar alternativas como um build open source
      Anunciar mudanças de licença e o fechamento do produto em um pequeno bloco no arquivo de changelog, ou quando alguém menciona o problema nas GitHub Issues, não me parece divulgação suficiente para esse tipo de mudança
      Não usar um princípio open-first, limitar o produto com plugins apenas enterprise como outras pessoas comentaram abaixo, não fornecer builds open source e mudar a licença sem aviso prévio, depois de antes fazer marketing gratuito simpático com a terminologia de open source, deixa um gosto amargo
      Ainda mais porque hoje em dia há empresas demais fazendo esse tipo de coisa por causa dos juros
    • Passei muito tempo tentando empurrar a adoção do SourceGraph no trabalho, mas a distribuição da versão open source era praticamente impossível, então a avaliação nem chegou a acontecer
      Não acho que a percepção da Sourcegraph de que a versão open source não teve sucesso esteja errada, e fechar o código certamente é bem mais fácil
      Mas, no fim das contas, isso significa que eles concluíram que o esforço para manter esse canal de entrada aberto não valia tanto quanto as pessoas que vinham por ele, então esse canal está sendo fechado
      Também existe outra possibilidade. Concordo mais com a ideia de que esse canal nunca esteve aberto o suficiente para ter uma chance real de sucesso desde o começo
    • Se você vai “cobrar das empresas e tornar as ferramentas para desenvolvedores individuais open source”, então não deveria usar o termo Open Source
      Quando você impõe esse tipo de restrição, isso não é open source, e é bem fácil ver que isso não é honesto
      Esse tipo de licença não foi aprovado pela OSI
    • Eu era uma das poucas pessoas que usavam a versão open source e gostava bastante dela, então essa mudança é decepcionante
      A dificuldade da Sourcegraph era que ela era difícil de acessar para desenvolvedores trabalhando em projetos pessoais
      Não havia plano hospedado, e meus projetos não podem ser facilmente publicados como open source por causa do meu empregador
      Quando o Sourcegraph App saiu, fiquei realmente animado porque eu poderia experimentar a Sourcegraph nos meus projetos sem uma configuração self-hosted complicada
      Consegui fazer até o scip-clang funcionar em um projeto baseado em Bazel, e também tentei uma configuração com docker-compose no meu homelab
      Agora a busca de código foi removida do app, e com essa mudança adicional, fico preocupado que eu não possa mais usar a Sourcegraph em projetos pessoais no futuro
      Isso foi uma oportunidade perdida
      Desenvolvedores individuais que usam o produto em projetos pessoais podem se tornar defensores fortes, e esse desenvolvedor pode convencer seu empregador a comprar o produto
      Eu pagaria com gosto se fosse possível, mas, como uma pessoa só, US$ 5 mil por ano é difícil de justificar
    • Acho que todos os comentários, inclusive os críticos, foram justos e ponderados
      Se quiser continuar a conversa depois que isso sair da primeira página do HN, entre no Discord https://discord.gg/rDPqBejz93

Se você quiser compartilhar feedback ou reclamações diretamente, me avise. Se estiver tudo bem, eu também posso tornar a gravação pública.

  • Se você estiver procurando uma ferramenta de busca open source para fazer grep em velocidade insana em vários repositórios ou em um monorepo grande, recomendo fortemente o livegrep: https://github.com/livegrep/livegrep
    A demo está em https://livegrep.com/search/linux
    Era usado na Stripe e foi bem popular; muitas vezes, mesmo para buscar em um único repositório, o livegrep era mais rápido do que o ripgrep local
    Texto de review: https://www.alexdebrie.com/posts/faster-code-search-livegrep...
    Reflexão sobre impacto, do criador nelhage: https://blog.nelhage.com/post/reflections-on-performance/, texto sobre arquitetura: https://blog.nelhage.com/2015/02/regular-expression-search-w...

    • https://oracle.github.io/opengrok/ também é open source e é rápido e útil mesmo em uma base de código gigantesca como algo do tamanho do Android inteiro somado ao kernel do Linux
    • Também existe https://github.com/boyter/cs, que está sendo desenvolvido com foco em uma escala menor
      Se não for grande demais, também funciona bem com vários repositórios
    • O livegrep é literalmente uma versão web do grep decente
      Mas claramente não é um substituto do Sourcegraph, que realmente entende o código subjacente, segue caminhos de código e permite buscar referências
  • Não se deve criar uma startup partindo do pressuposto de que o produto dos outros será insuficiente para sempre
    Com a recente reformulação da busca do GitHub, é bem possível que o Sourcegraph tenha perdido relevância
    A busca antiga do GitHub usava um algoritmo quase horrível
    Ela descartava toda pontuação e espaços em branco e só pesquisava identificadores; não aceitava padrões, não havia busca com aspas e quase o único meta-argumento útil era filename:xyz
    Agora que o GitHub melhorou a busca básica, o Sourcegraph pode estar em risco
    Usei Sourcegraph na Lyft, e na época a Lyft parecia ter dinheiro ilimitado para desperdiçar com ferramentas de software; na Databricks instalamos a versão open source, mas ninguém ligou para ela

    • A busca do GitHub só torna o Sourcegraph irrelevante quando todo o código está hospedado no GitHub
      Estou bastante cansado de soluções exclusivas para GitHub sendo tratadas como “padrão da indústria”
      O mesmo vale para vendors que só lançam integrações com produtos que funcionam apenas no GitHub
      O Git é um protocolo descentralizado, então, por favor, tratem-no como tal
    • Mesmo que a busca do GitHub tenha ficado menos ruim, ela ainda continua estranhamente ruim, então ainda hoje eu baixo repositórios do GitHub regularmente e simplesmente uso grep
    • Não acho que a busca do GitHub vá substituir o Sourcegraph
      O GitHub não é gratuito, especialmente para grandes organizações privadas, e o Sourcegraph tem recursos de busca muito melhores do que o GitHub
    • Fico me perguntando se ainda existe um nicho enterprise que não usa a versão cloud do GitHub ou o GitLab etc.
      Pelo que entendo, não há planos de colocar o novo recurso de busca de código na versão on-premises do GitHub
  • Fico curioso se realmente havia gente usando a versão aberta
    Lembro vagamente de ter dado uma olhada 2 ou 3 anos atrás, e todos os recursos realmente interessantes tinham sido removidos
    O preço enterprise era algo como 100 dólares por desenvolvedor por mês, completamente absurdo, e estava claro que eles só miravam clientes grandes com orçamento infinito
    Agora parece que o preço mudou e o “Enterprise Starter” começa em 5 mil dólares por ano, mas, apesar da longa lista de itens, continua extremamente pouco claro qual é a limitação real
    Tenho interesse real neste produto e ele poderia ser uma boa adição ao nosso conjunto de ferramentas, então é uma pena que o preço seja tão opaco

    • A versão open source não tinha imagem oficial pré-build de Docker, então era preciso fazer o build manualmente, e por muito tempo o build open source ficou quebrado
      Há 1 ou 2 anos prometeram corrigir isso ou fornecer uma imagem open source oficial, mas isso não aconteceu
      No fim, uma pessoa criou no GitHub um release train funcional e distribuiu containers open source, e no Docker Hub isso chegou a mais de 10 mil pulls
      É bastante coisa para uma imagem não oficial
      Se uma ferramenta de terceiros que nem é central para a infraestrutura exige contato comercial, em geral eu passo longe
      Em vez de me fazer desperdiçar tempo da empresa lidando com vendas por causa de algumas licenças, basta me dar um campo para inserir o número e um botão de compra
      Minha confiança no Sourcegraph também caiu um pouco, porque parece que eles mudam direção, preço e regras várias vezes por ano
    • Instalei por diversão a versão open source na empresa e sincronizei cerca de 750 repositórios
      Apliquei alguns patches para suportar proxy OAuth2 e também removi a telemetria
      O software em si é excelente, muito rápido e funciona como proposto
      Alguns meses depois, o número de usuários registrados chegou a 70, mas no total só 3 pessoas realmente usaram algumas vezes
    • Isso me lembra o preço de usuário full do New Relic, de 400 dólares por mês
    • Agora parece que eles estão pivotando com força para AI, e quase nem querem reconhecer que o produto de leitura existe
      É completamente bizarro
    • Acho injusto dizer que é preciso ter “orçamento infinito” para pagar 100 dólares por mês
      Meu orçamento é bem limitado, e ainda assim pago mais do que isso por vários produtos
      Se for uma ferramenta que aumenta a produtividade ou ajuda o negócio, vale totalmente a pena pagar
  • A licença mudou há quase 3 semanas, mas essa informação não aparece no post do blog de lançamento da versão 5.1.0
    Ainda não houve anúncio oficial
    O autor do container open source do Sourcegraph aparentemente informou que seu release train agora chegou ao fim: https://github.com/jensim/sourcegraph-release-train/

  • O suporte durante o período de demonstração foi fraco, o suporte a C++ complexo também era insuficiente, não se integrava bem com sistemas modernos de build de C++, e o preço era absurdo
    Continuaram insistindo no recurso “campaign”, que era uma ferramenta de refatoração automática excessivamente complexa que nem sequer conseguia dar suporte ao nosso sistema de build não proprietário e amplamente conhecido
    Em vez do custo da licença, contratamos dois desenvolvedores para refatoração de código, e depois eles também criaram outras ferramentas, sem que fosse necessário contratar alguém separado para cuidar da integração ruim com o serviço
    Conversando conosco, era difícil dizer que eles haviam encontrado um nicho de mercado
    Talvez isso tenha melhorado agora

    • Pelo uso do nome antigo “campaign”, parece que a avaliação do Sourcegraph foi feita há cerca de 2,5 anos ou mais
      Muita coisa mudou desde então
      Recentemente lançaram o novo indexador scip-clang(https://about.sourcegraph.com/blog/announcing-scip-clang) e ele foi usado com sucesso para indexar grandes codebases como o Chromium
      Esse indexador depende de um banco de dados de compilação JSON, assim como o indexador antigo lsif-clang, e isso pode ser gerado facilmente com CMake, Bazel, Meson, Make etc.
      Recentemente também passaram a oferecer suporte à navegação de código entre repositórios em C++: https://about.sourcegraph.com/blog/c-cpp-cross-repo
    • Fico curioso para saber quão caro era, se dava para contratar 2 desenvolvedores com o preço da licença
    • Fico curioso sobre qual sistema de build era usado
      Eu achava que hoje em dia já era relativamente fácil gerar um banco de dados de compilação JSON
      Por exemplo, isso também é usado pelo servidor de linguagem do VS Code
  • https://github.com/sourcegraph/sourcegraph/issues/53528#issu... parece ser um comentário de alguém do projeto resumindo por que a mudança foi feita

    • Os trechos mais marcantes são estes
      O Sourcegraph diz que continuará comprometido com o Zoekt, o mecanismo de busca de código open source, e continuará enviando mudanças para o upstream: https://github.com/sourcegraph/zoekt
      Dizem que o código-fonte continuará público
      Desenvolvedores individuais poderão continuar usando o Sourcegraph gratuitamente no código público do sourcegraph.com e em código privado no tier gratuito self-hosted
      Dizem que eram muito poucos os desenvolvedores individuais ou empresas que usavam a variante limitada de busca de código que era open source, e que a grande maioria absoluta, mais de 99,9%, usava o produto enterprise
      Daqui para frente, manter as duas variantes era uma grande carga para a equipe de engenharia e trazia pouquíssimo benefício aos usuários
    • Alguns meses atrás removeram a licença enterprise gratuita que permitia 10 assentos de desenvolvedor, e algumas empresas pequenas provavelmente estavam adiando atualizações enquanto avaliavam a versão open source, mas agora isso aparentemente não é mais uma opção
    • Parece que ninguém usava a versão open source e eles não queriam manter duas versões que ninguém usava
      Também está escrito que oferecem uma versão self-hosted gratuita para uso individual, mas não consegui encontrar isso no site
  • No geral, nunca gostei de produtos open core
    Como alguém que cria coisas, colocar obstáculos diante do usuário e limitar até onde ele pode usar o que eu fiz parece falta de capricho
    Às vezes, decisões que deliberadamente atrapalham a forma como as pessoas usam um produto parecem movidas puramente por ganância
    Se eu imaginar um mundo em que o Sourcegraph fosse totalmente software livre, ainda assim é bem provável que clientes enterprise pagassem para hospedar o Sourcegraph com segurança on-premises
    Só não poderiam cobrar por assento
    Teriam de manter o preço do produto suficientemente baixo para que o cliente não economizasse muito dinheiro contratando engenheiros para manter o Sourcegraph ele mesmo on-premises
    Fico curioso se o Sourcegraph, ou qualquer outro operador open core, já estimou quantos clientes e quanta receita perderia ao migrar para software totalmente livre
    Criar software livre e cobrar pelo custo de hospedagem pode servir de base para um negócio sustentável, mas provavelmente é difícil gerar resultados no nível que capitalistas de risco esperam de um investimento bem-sucedido
    Sinceramente, acho aceitável que a infraestrutura seja software fechado e proprietário
    Isso porque, se você estiver escrevendo programas sensíveis à segurança, liberar livremente o código da infraestrutura pode dar muita munição para atacantes
    Se você acredita no poder da automação e na construção de software de alta qualidade, pode criar software livre cuja infraestrutura seja proprietária, fácil e segura de implantar e manter na infraestrutura do cliente, com carga operacional muito pequena do ponto de vista do host
    Esse tipo de abordagem pode levar a um negócio muito sólido
    Fico curioso por que não vemos mais negócios assim

  • Há um pouco mais de informação em https://github.com/sourcegraph/sourcegraph/commit/3cd931ef54...), mas não é muita coisa

    • Em geral, espera-se que um aviso de mudança de licença saia antes de implementar a mudança em questão
  • Para conectar cerca de 100 repositórios Git para uso na web, estou curioso sobre qual sistema de busca de código open source seria bom
    Não quero usar a busca do GitHub porque ela pesquisa de forma ampla demais e não inclui repositórios como o GitLab
    Já tinha visto o Debian code search https://github.com/Debian/dcs antes, mas por algum motivo pareceu exigir bastante esforço, então não levei a pesquisa adiante
    Ainda assim, https://github.com/Debian/dcs/blob/main/howto/building.md parece bem acessível
    Também existe o Zoekt mencionado pelo Sourcegraph https://github.com/sourcegraph/zoekt, mas não tenho certeza de quão útil ele é na prática
    Se fosse realmente tão bom, também fico me perguntando por que a versão open source do Sourcegraph chegou a existir
    Pelas discussões dos últimos anos sobre como a versão open source do Sourcegraph ficou bem para trás, não parece haver um plano sério de fazer um fork
    O release do GCS https://github.com/google/codesearch parece ter sido open-sourced sem frontend
    Mais acima também recomendaram o Livegrep https://github.com/livegrep/livegrep e o OpenGrok https://oracle.github.io/opengrok/
    Estou com bastante vontade de testar, mas ter uma configuração Docker Compose funcional ajudaria muito a começar
    Também existe o Eureka https://github.com/Rajeev-K/eureka
    Parece menos poderoso, mas também parece mais fácil de implantar

    • O Google codesearch não é realmente um “produto” utilizável
      O Livegrep(https://github.com/livegrep/livegrep) foi inspirado nele e é bem utilizável
      O Zoekt também era originalmente um projeto open source do Google, mas deixou de ser mantido e o Sourcegraph assumiu
      Ele alimenta a maior parte das buscas regex/literais padrão do Sourcegraph
      O código da Mozilla pode ser pesquisado no Searchfox(https://searchfox.org/), que combina o indexador do Livegrep, seu próprio indexador Git e bancos de dados de referências cruzadas por linguagem
      O OpenGrok(https://github.com/oracle/opengrok) também é bem conhecido, mas achei a UI dele um pouco pior do que a das alternativas
    • Para repositórios pequenos e uso em linha de comando, também existe o cs: https://github.com/boyter/cs
    • Também existe o Hound: https://github.com/hound-search/hound