Sourcegraph CEO here. We're back to work on testing release candidates for Sourcegraph 2.12, coming out this week. I'm especially excited about a few big new features that fit really nicely into the code search and browsing workflows people use Sourcegraph for:<p>- <a href="https://github.com/sourcegraph/about/blob/master/projects/extension-authoring.md" rel="nofollow">https://github.com/sourcegraph/about/blob/master/projects/ex...</a><p>- <a href="https://github.com/sourcegraph/about/blob/master/projects/sourcegraph-for-gitlab.md" rel="nofollow">https://github.com/sourcegraph/about/blob/master/projects/so...</a><p>- <a href="https://about.sourcegraph.com/blog/discuss-code-and-docs-in-repositories/" rel="nofollow">https://about.sourcegraph.com/blog/discuss-code-and-docs-in-...</a><p>along with a whole host of improvements to code search, code intelligence, self-hosted deployment on a single node and k8s, etc.<p>Happy to answer any questions folks have about our open sourcing. I summarized the business case at <a href="https://twitter.com/sqs/status/1046913901688807424" rel="nofollow">https://twitter.com/sqs/status/1046913901688807424</a>. And we went with the Apache License (2.0) and an open core model because that's about as standard and as open as possible for this kind of thing.
I'm especially interested in open source/free software businesses and business models. Are you planning to do an open core kind of thing, or maintain full on open source while charging for hosting and/or other services? I realise that might be a difficult question to answer as you might want to keep your options open, so I'm not asking for a commitment :-) I'm just curious about your plans.<p>Also do you ever think you might add (for want of a better phrase) custom development services if you aren't already? For example, allowing people to pay a fee to get specific features added to Sourcegraph. What are the kinds of benefits and risks you might see from going in that kind of direction?<p>I've noticed that a lot of open core businesses tend to avoid offering customer development services -- and if they do it's often perceived as a cost centre rather than a profit centre. It's something that is provided out of necessity of having to provide custom solutions for a few big customers, but the services team often appears to be at odds with the core development team. As you have obviously gone through the thought process of how to make money when your software is out in the open, I wonder what kinds of thoughts you have on that topic.<p>It's really nice to see this kinds of stuff happening and I wish you the best luck possible in your endeavours!
We've been using Sourcegraph at Uber and it has been working pretty well. We saw a performance regression last week with `max` queries but it got fixed fairly quickly (less than a week from reporting to having the fix deployed)<p>Some wishlist things:<p>- would be nice if the query language was better documented (not the GraphQL console, the help section for that is comprehensive)<p>- a coworker had expressed a desire for multi-line searches (which is supposedly in the pipeline)
I was lucky to connect with Quinn and get the opportunity to volunteer as a guinea pig for open sourcing this code :).<p>Sourcegraph is an interesting product and company. I see the potential for it to have a bigger positive impact on developer productivity than even Jetbrains IntelliJ has, because the reach can go beyond any particular editor or frontend. It could be a ubiquitous solution to efficient code search and discovery.<p>Will definitely be watching how things unfold for Sourcegraph. If you haven't already read their Master Plan, it's a compelling vision.<p><a href="https://about.sourcegraph.com/plan" rel="nofollow">https://about.sourcegraph.com/plan</a>
This is amazing for secure code reviews. I have already spun up and instance and am demoing it for my team.<p>Is it possible to get Jira integration?<p>Can you test bitbucket.org connection with credentials some place I am not seeing? I can't tell what is causing it to fail.<p>Is there a way to add markers in the code and then a queue to clear it? I.E I mark hotspots in the code and want a developer to review them or edit them.<p>I think a current pain point would be no flat file upload. I understand you only need the .git directory and this was designed with a developer in mind. A lot of times when doing a secure code review we don't get credentials, we just get a current clone of the code. I just tried to do it using the instructions and had some trouble ended up just cloning it on the host machine. I usually get a zip/tar of the code.<p>Another feature that would be awesome is export a search to a CSV file. I could script together something for Jira integration with that pretty quickly. Something to get the line affected #, branch and filepath.<p>The subscription to searches was a brilliant idea. I wish I thought of it.<p>SSO already integrated? Nice man!<p>I'd make the discussions default too, I discovered that after playing with it for a bit. It's an awesome feature.<p>I look forward to seeing more of it.
Awesome! You guys did what I could not. Congratulations! So excited to see where this takes Sourcegraph, and the community around it.<p>In my experience, even just using Sourcegraph to browse source code in open source repos is way faster than the native git host browsing (BitBucket, GitHub, Gitlab, etc). We use it daily at my lab, especially as I help others learn the code base. Thanks for Sourcegraph.
Holy cow, does this mean I can use source graph as a single dev wanting the features, but not able to upload private source to a cloud service?<p>Fwiw, I'd love to pay as a private user for this type of service. It's just that for many, we can't use a tool that leaks code. I look forward to that day, if it's not today :)
Very nice. Poking though the source now, cmdfrontend/graphqlbackend/textsearch.go is one of the more interesting files I have found so far. It's very neat to look under the hood.
So before anything else - congratulations and thank you for releasing something as open source, under a business-friendly licence. Regardless of the project itself, that should be commended.<p>However. I've never paid much attention before, so perhaps I'm missing something.. but this "just" seems to be the code intelligence you'd expect to find in a good IDE.<p>Is there more to it? Or is this the 'solution' for the lack of such code intel in the plethora of text editors people use these days?
Know those cool features in your editor that allow you to hover over source and get more detail on what you are looking at? Also, know that feature in an editor that lets you go to definition? Imagine this and not within your editor but rather your browser, whatever host you choose, such as GitHub or GitLab. Sourcegraph enables this feature with browser extensions.
So what's the use case for this ? If somebody wants "Find all references" , what's preventing them to open the code in Visual Studi/Intellij/Eclipse etc.
I remember Sourcegraph as being a sort of sidecar to your text editor.<p>Based on your caret position, it would automatically show you crawled examples of how other people use the functions/classes you are dealing with.<p>Has that been de-emphasised or gone away?
"Master plan" link [0] is 404 in the linked article. (Not sure if this is right way to report it)<p>[0] <a href="https://about.sourcegraph.com/plan" rel="nofollow">https://about.sourcegraph.com/plan</a>
Very cool! Does it have C or C++ support? Last time I looked it didn't.<p>Something that understands Python calls into C and vice versa would be interesting to me as well.
The kind of cross-reference SourceGraph provides is a must have for me after a few years of using a tool like it to understand big projects (I don't use SourceGraph, I use Grok/CodeSearch).<p>Google open sourced a version of Grok some time ago (<a href="https://kythe.io/" rel="nofollow">https://kythe.io/</a>). [1]
A quick search also found this `OpenGrok` thing which I assume must be yet another generic indexer [2].<p>I wonder if there are other <i>popular</i> tools out there providing generic cross-referencing of code bases?<p><SourceGraph><p>I was trying to find the equivalent of this Kythe page (how to write an indexer)[6] on SourceGraph docs, after 20 minutes I was still confused. I wish there was more clarity on the different pieces of the system. At first I thought SourceGraph could create a cross reference index from an LSP server, but I guess makes more sense it is the order way around? (SG can talk to text editors via LSP).<p>It must be a lot of work to make integrate any single language with both SG or Kythe and LSP, perhaps there's some tools or methodologies to make this easier?<p><Tangent><p>I feel like language designers don't always think about building their implementations with ease of integration as a goal. I remember wanting to play with doing some AST transformations with both TypeScript and Dart (independently) and finding both languages made the task so hard and tedious. Mandatory remark: this is so easy with Lisp derivatives :-)<p>Things that a good language+ecosystem should have, IMO:<p>* Easy to retrieve and manipulate CST (for things like writing refactoring and querying tools, writing code formatters/pretty printers, etc). Many languages provide the syntax tree say, without comments, so it is hard to write a pretty printer.<p>* Documentation generator with cross-reference navigation.<p>* Play along nicely with generic build tools like Ninja [3].<p>* Good debugger and value-pretty-printer support (so I can just drop a breakpoint and print anything easily). And some sort of API to use the debugger programmatically or connect to a remote process.<p>* An LSP implementation [4], although it seems pretty much every popular language is getting one these days!<p>1: <a href="https://en.wikipedia.org/wiki/Google_Kythe" rel="nofollow">https://en.wikipedia.org/wiki/Google_Kythe</a><p>2: <a href="http://oracle.github.io/opengrok/" rel="nofollow">http://oracle.github.io/opengrok/</a><p>3: <a href="https://ninja-build.org/" rel="nofollow">https://ninja-build.org/</a><p>4: <a href="https://langserver.org/" rel="nofollow">https://langserver.org/</a><p>5: <a href="https://about.sourcegraph.com/docs/code-intelligence/" rel="nofollow">https://about.sourcegraph.com/docs/code-intelligence/</a><p>6: <a href="https://kythe.io/docs/schema/writing-an-indexer.html" rel="nofollow">https://kythe.io/docs/schema/writing-an-indexer.html</a><p><edit: line breaks>
Is this the thing that caused furore a while ago because it was installed on some editors and it sent all your code to a third party server, or am I thinking of something completely different?
> Together, these companies succeeded in bringing computing to billions of people. But these billions of people are still using software applications built by just 0.2% of the world's population (those who can code).<p>> The next step is to make it so billions of people, not just 0.2% of the world population, can build software (not just use it).<p>I must admit, this <i>sounds</i> indubitably noble.<p>But if you think that your software-engineering career is safe from (partial) automation, then these Sourcegraph folks have an iridium-plated bridge to sell you.<p>In not-so-tongue-and-cheek terms: if Sourcegraph succeeds, then tomorrow's software engineers will be - at most - as valuable as today's factory-robot operators.<p>* * *<p>(Of course, anyone worth their salt in this industry ought to be able to find the LSP's inherent limitations, and structure their codebases accordingly.)<p>EDIT: counterarguments are more persuasive than downvotes.