Bif Project Management Tool
    Bif is a project management tool with a command-line interface. It
    tracks tasks and issues using a local database, exchanging updates with
    remote databases on demand.

    The bif data model supports a couple of features which may be of
    interest to distributed project teams:

    Offline Operation
        Many bif actions work offline; you can create and update tasks and
        issues while disconnected from the network.

    Inter-project Cooperation
        Bif issues (and tasks) can be linked with (or copied to) multiple
        projects, mirroring the inter-project relationships that exist in
        the real world.

    This flexibility comes with minimal additional complexity; bif commands
    are designed for consistency and ease of use. See bif-doc-intro for a
    very quick hands-on introduction.

    Bif runs on any system that supports Perl and SQLite.

Software Status
    Bif is still at a very early stage of development. Much of the
    functionality is missing, documentation is incomplete (or in some cases
    ahead of the implementation) and test coverage is lacking and/or
    failing. DO NOT USE BIF FOR REAL DATA!

    We are actively seeking contributors. See below for how you can help.

Community Organisation
    Website:
        <http://bifax.org/bif/>

    Code Repository:
        git://bifax.org/bif.git/

    Issue Tracker:
        Doesn't exit yet.

    Mailing List:
        Subscribe via <http://www.freelists.org/list/bif-devel> and then
        send mail to <bif-devel@freelists.org>.

Documentation
    The main entry point for reference documentation is the bif manual.
    After installation you should be able to access it by running "bif doc",
    or "perldoc bif", or "man bif". You can also browse the documentation
    online at <http://bifax.org/bif/doc/>.

Installing
    As a Perl wrapper around an SQLite database, bif depends on several
    packages from the Comprehensive Perl Archive Network (CPAN
    <http://cpan.org>). Some of the packages require a C compiler to build.

    Installing bif and its dependencies is easiest with the "cpanm" client
    which can be installed using "curl" and "perl" as shown below.

        #!sh
        curl -L http://cpanmin.us | perl - --sudo App::cpanminus

    To build and install bif system-wide simply point "cpanm" at the
    appropriate release.

        #!sh
        cpanm --sudo App::bif

Contributing
    You do not have to be a developer to contribute to bif! It is arguable
    that many key aspects of successful open source projects have more to do
    with the community and non-development contributions than technical
    skills.

    What long-term project members lose relatively quickly are those fresh
    eyes and first impressions that easily identify missing, broken and
    unexplained things. Therefore feedback from first-time users, both
    positive and negative, is extremely valuable. Please get in touch!

    For the currently planned activities see the bif-doc-roadmap. Otherwise
    help would be appreciated for practically anything:

    *   Editing the reference documentation

    *   User-interface consistency checks

    *   Website design

    *   Blogging & advocacy

    *   Translation - no framework in place yet though

    *   Operating system distribution integrators

    *   Perl / SQLite test writers (many tests needed!)

    *   Software architect? The overall design could use a big dose of
        third-party analysis.

    *   Security Analyst? Feel like starting a bif-doc-security document or
        otherwise letting us know which vectors are most vunerable? I find
        it important to put some effort in here before bif becomes (if ever)
        widely used.

    *   Big-picture thinker? How could the bif model of information
        distribution be applied to addressbooks, slow-changing datasets
        (e.g. country lists, currencies), business transactions, etc.

    *   Financial sponsorship would also be more than welcome.

Development
    For those comfortable with git, development takes place on the "devel"
    branch of the git repository, with communication via the development
    mailing list.

        #!sh
        git clone git://bifax.org/bif.git --branch devel
        cd bif

    For development we recommend the use of direnv
    <https://github.com/zimbatm/direnv> to keep installed files away from
    the rest of your system. Something like the following in a local .envrc
    file will do the trick:

        source_up
        layout perl
        PATH_add $PWD/t

    Make sure that you have a recent "cpanm" that has the "--with-develop"
    option. The cpanminus packages in the current stable versions of Ubuntu
    and Debian do not. Development dependencies can then be installed like
    so:

        #!sh
        cpanm --installdeps --with-develop $PWD

    All Perl and POD content is expected to be "tidy" according to the
    .perltidyrc and .podtidy-opts files in the source tree. The easiest way
    to ensure this happens on commit is to run "githook-perltidy" (installed
    as one of the "--with-develop" dependencies):

        #!sh
        githook-perltidy install

    A test bif script is created in the t/ directory when you run
    Makefile.PL.

        #!sh
        perl Makefile.PL
        export PATH=$PWD/t:$PATH    # if you don't use direnv
        which bif                   # t/bif

    We encourage personal development branches in the git repository. Send a
    request to the mailing list with your public ssh key (something like
    $HOME/.ssh/id_rsa.pub) and your desired *username*. Once the permissions
    are configured on the server then you can do something like the
    following:

        #!sh
        # Tell git to use ssh authentication
        git config remote.origin.url ssh://git@bifax.org:bif.git

        # Create your own feature branch
        git checkout -b u/USERNAME/feature devel

        # $EDIT files
        git commit

        # Rebase your tree against most recent devel
        git fetch
        git rebase origin/devel

        # Upload and tell the mailing list what you have done
        git push origin u/USERNAME/feature

    This allows anyone who clones the repository to see, modify and merge
    your work from the command line, without having to visit a website to
    find where all the forks are.

License
    Bif is free software: you can redistribute it and/or modify it under the
    terms of the GNU General Public License as published by the Free
    Software Foundation, either version 3 of the License, or (at your
    option) any later version.

    This program, and all material accompanying it, is distributed in the
    hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
    implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    See the GNU General Public License for more details.

Credits
    Bif was started by Mark Lawrence <nomad@null.net>. Other contributions
    are listed in bif-doc-changelog.

