Sourcegraph descontinua recursos de código aberto
(github.com/sourcegraph)- A Sourcegraph fez a transição para um monorepo privado
- Este repositório (
sourcegraph/sourcegraph-public-snapshot) é uma cópia pública do repositóriosourcegraph/sourcegraphimediatamente antes da transição
1 comentários
Comentários do Hacker News
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 sourceO 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
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
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
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
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-clangfuncionar em um projeto baseado em Bazel, e também tentei uma configuração comdocker-composeno meu homelabAgora 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
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
ripgreplocalTexto 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...
Se não for grande demais, também funciona bem com vários repositórios
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:xyzAgora 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
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
grepO GitHub não é gratuito, especialmente para grandes organizações privadas, e o Sourcegraph tem recursos de busca muito melhores do que o GitHub
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
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
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
É completamente bizarro
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
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 ChromiumEsse 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
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
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
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
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 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
cs: https://github.com/boyter/cs