src-d / blog

source{d} blog
https://blog.sourced.tech/
GNU General Public License v3.0
27 stars 41 forks source link

[PROPOSAL] Hercules v4 #235

Closed vmarkovtsev closed 6 years ago

vmarkovtsev commented 6 years ago

Table of contents

Modern Hercules is able to:

  1. Process the whole commit history DAG, not just the main sequence. It was very hard to implement, there were very funny and unique problems to solve, many insights into how Git works, very hardcore.
  2. Load plugins. A few words about how Go plugins work.
  3. Merge the results from several repositories together.
  4. Use UASTs for deeper analysis, e.g. structural hotness.
  5. Work with siva.

There will be cool pictures with the analysis results. Also some notes on common code snippets which were not idiomatic Go and are fixed now. + some notes on the project structure evolution, how I went from flat to tree and defined the public interface using type aliases.

Management

This section will be filled by @campoy.

Social Media

NOTE Please write in short lines so the review is easier to do.

campoy commented 6 years ago

Totally down for this (and thanks for using the template!)

Is v4 already released? Maybe we could sync both the release and this blog post.

vmarkovtsev commented 6 years ago

It is silently released - I want to announce it properly.

campoy commented 6 years ago

Sounds good, this can easily become a great talk too.

The new hercules v4 works on top of gitbase?

vmarkovtsev commented 6 years ago

Nope, it is pure go-git. Works with git.Repository wherever it comes from.

eiso commented 6 years ago

We discussed about exposing Hercules analysis through UDFs in gitbase