Skip to content

Commit

Permalink
Merge pull request #368 from src-d/roadmap
Browse files Browse the repository at this point in the history
Add the roadmap section
  • Loading branch information
vmarkovtsev authored Oct 31, 2020
2 parents 13a2081 + 4e46b6d commit f066cf0
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,14 @@ Table of Contents
* [Custom plotting backend](#custom-plotting-backend)
* [Caveats](#caveats)
* [Burndown Out-Of-Memory](#burndown-out-of-memory)
* [Roadmap](#roadmap)

## Overview

Hercules is an amazingly fast and highly customizable Git repository analysis engine written in Go. Batteries are included.
Powered by [go-git](https://github.com/src-d/go-git) and [Babelfish](https://doc.bblf.sh).
Powered by [go-git](https://github.com/go-git/go-git).

*Notice (November 2020): the main author is back from the limbo and is gradually resuming the development. See the [roadmap](#roadmap).*

There are two command-line tools: `hercules` and `labours`. The first is a program
written in Go which takes a Git repository and executes a Directed Acyclic Graph (DAG) of [analysis tasks](doc/PIPELINE_ITEMS.md) over the full commit history.
Expand Down Expand Up @@ -127,7 +130,7 @@ Some examples:

```
# Use "memory" go-git backend and display the burndown plot. "memory" is the fastest but the repository's git data must fit into RAM.
hercules --burndown https://github.com/src-d/go-git | labours -m burndown-project --resample month
hercules --burndown https://github.com/go-git/go-git | labours -m burndown-project --resample month
# Use "file system" go-git backend and print some basic information about the repository.
hercules /path/to/cloned/go-git
# Use "file system" go-git backend, cache the cloned repository to /tmp/repo-cache, use Protocol Buffers and display the burndown plot without resampling.
Expand Down Expand Up @@ -415,7 +418,7 @@ Hercules has a plugin system and allows to run custom analyses. See [PLUGINS.md]
`hercules combine` is the command which joins several analysis results in Protocol Buffers format together.

```
hercules --burndown --pb https://github.com/src-d/go-git > go-git.pb
hercules --burndown --pb https://github.com/go-git/go-git > go-git.pb
hercules --burndown --pb https://github.com/src-d/hercules > hercules.pb
hercules combine go-git.pb hercules.pb | labours -f pb -m burndown-project --resample M
```
Expand Down Expand Up @@ -495,3 +498,12 @@ fail with an OOM. You should try the following:
3. Use the [hibernation](doc/HIBERNATION.md) feature: `--hibernation-distance 10 --burndown-hibernation-threshold=1000`. Play with those two numbers to start hibernating right before the OOM.
4. Hibernate on disk: `--burndown-hibernation-disk --burndown-hibernation-dir /path`.
5. `--first-parent`, you win.

## Roadmap

* [ ] Switch from `src-d/go-git` to `go-git/go-git`. Upgrade the codebase to be compatible with the latest Go version.
* [ ] Update the docs regarding the copyrights and such.
* [ ] Fix the reported bugs.
* [ ] Remove the dependency on Babelfish for parsing the code. It is abandoned and a better alternative should be found.
* [ ] Remove the ad-hoc analyses added while source{d} was agonizing.

0 comments on commit f066cf0

Please sign in to comment.