Beastie

A bare-bones command-line bug tracking system for personal or small projects which require little formality.

Installation

Add this line to your application’s Gemfile:


  gem 'beastie'

And then execute:


  $ bundle

Or install it yourself as:


  $ gem install beastie

Usage

Beastie is a bug tracking system at its bare essentials.

Main commands:

beastie new
asks information about an issue and generate a YAML file in the current directory.
beastie list
reads all YAML files in the current directory and generate a list of all the issues.
beastie show N
shows issue N, where N is the identifier shown by the beastie list command.
beastie edit N
edits issue N. The commands invokes the editor set in the shell EDITOR variable or use emacsclient if EDITOR is unset.
beastie help
unleashes the real power of beastie.

Limitations and Warnings

Beastie uses the current directory for all operations. While this gives a lot of flexibility and freedom in choosing one’s standards, it also requires discipline: so, make sure you select one directory where issues are stored and always invoke beastie from that directory.

Beastie tries to generate human-readable filenames, following the convention Jekyll has for blog posts. Selecting issues using filenames, however, is a bit clumsy and to simplify operations beastie assigns a number to each issue, which can be used to reference them. The number can be seen with the list command and depends upon the order in which issues are parsed. Thus the same issue might be assigned a different id over time, if the order in which files are read changes (e.g., if a new back-dated issue is added by hand).

Beastie does not have a specific workflow for bug statutes.

Beastie does not perform syntax checks when reading data. This can be changed by specifying appropriate input functions in the ISSUE_FIELDS variable (lib/beastie/issue.rb).

Beastie asks various information about a bug. Change the ISSUE_FIELDS variable, if you are not happy with the default fieldset.

Similar solutions

There are different command-line bug tracking systems. The ones I came across with before re-inventing the wheel include: ditz, bugs everywhere, ticgit-Ng, bugzyrb, git-issues, later.

Why did I re-invent the wheel?

  1. for fun
  2. human-readable filenames, so that I can manage issues without using beastie, if I want
  3. a “programmable” fieldset (see lib/beastie/issue.rb)
  4. keeping the solution simple

Author

Adolfo Villafiorita

License

MIT

Contributing

1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am ‘Add some feature’`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request