hive
is a distributed issue tracker in the spirit of Bugs
Everywhere. Issues in hive
are included as
"merge-tolerant" plain-text files that can be version-controlled alongside
source code. The package includes both a command-line interface and a web
interface for interacting with issues, and, if you want, issues can also be
edited via a plain-text editor.
Yes.
Of course! hive
is free/libre software, available under the terms of the GNU General
Public License version 3+ .
You can install hive
via pip
:
$ sudo pip3 install hive_bt
or by cloning the repository and installing manually:
$ hg clone https://hz.mit.edu/hg/hive_bt $ cd hive_bt $ sudo pip3 install .
The Documentation page has more information about using
hive
.
That's a more complicated question. For one thing, hive
is very much in a
"pre-alpha" stage. In short, this means that, until a stable version is
released, some things will only be partially implemented, some things will be
broken, and some things may change dramatically without much notice. If
you're OK with that, read on!
Beyond the fact that hive
is very new, there are pros and cons associated
with distributed version control in general, and there are pros and cons
associated with this particular implementation. For example:
Pros:
With hive
, bugs and code are tracked together. Among other things,
this means that merge requests can include not only changes to the code,
but also changes to the relevant issues. It also means that it is possible
for each branch to contain its own information about bugs that are relevant
to that branch, which may be helpful when maintaining different branches
for, for example, development and production versions of a piece of
software. Merging branches can also merge changes to the issues.
Since the issues are stored as part of the repository, browsing and modifying issues does not require an Internet connection.
Issues are stored in a format that makes it impossible for merge conflicts to occur for most operations on issues.
hive
is decentralized and platform-agnostic. It currently supports both
Git and Mercurial.
It can be used on local repositories with no public access, and for
public-facing repositories, it does not require using any particular
platform to host your repository.
Cons:
hive
stores data in the repository, and its particular format can use a
large number of files. This can mean that the repository contains many
more files than it otherwise would, and that the history may contain
commits related only to modifying the state of issues.
hive
can be slow. I'm not sure you'll notice this until you reach
thousands of issues, but the particular choice of internal representation
means that certain operations can be slow. Internal caching mechanisms
help with this a little bit.
If you want a distributed bug tracker but are worried about this particular implementation, you might want to consider:
If you want to get in touch, report a bug, send a patch, etc, feel free to send
me an e-mail at hz@mit.edu
.
hive
is written in Python and relies on a few great
pieces of software:
click
, and it also makes use of the
termcolor
package for generating
certain kinds of colored output. the progress bar that shows when running
building the cache uses the tqdm
package.flask
web framework and uses
Python-Markdown
for interpreting
Markdown in the bodies of issues and comments.