MKANAT / VCI-0.7.1 / Changes

0.7.1 Oct 31, 2010
    New Features:
      - Commits have a "uuid" accessor, that allows you to uniquely identify
        a particular Commit universally across all repositories.
      - To help implement the "uuid" accessor, VCI objects themselves now
        have two new boolean methods: revisions_are_universal, and
        revisions_are_global (documented in the POD for VCI.pm).

0.6.3 Oct 15, 2010
    - Make the CVS driver compatible with the date output format of CVS 1.12.

0.6.2 Aug 28, 2010
    - Fix the META.yml in the VCI package to have the correct version
      numbers.

0.6.1 Aug 24, 2010
   - VCI now explicitly requires Perl 5.8. (We probably always did actually
     require 5.8, because some of our dependencies did.)
   - The POD has all been reviewed and improved, for every module.
   - VCI is no longer alpha-quality software, and so all such statements
     to that effect have been removed from the POD.
   - The VCI package now uses Module::Install instead of Module::Build
   
   New Features:
      - There is a new "revno" accessor for Commit objects. "revision"
        now always represents the global revision id, if the VCS has one.
      - Commit objects have an "author" accessor in addition to the
        "committer" accessor, for VCSes that understand those things
        as separate concepts.
      - Added a new method to VCI.pm, "missing_requirements", to assist
        downstream consumers in figuring out what needs to be installed
        in order for certain VCI::VCS modules to work.
      - Svn: More debug output available.

   API Changes:
      - A Commit's "moved" accessor now has Committable objects (File or
        Directory objects) for its values instead of strings.
      - Bzr: A Commit's "revision" accessor now returns a revid instead of
        a revision number. This also means that every method that takes
        "revision" as an argument works on revids intead of revision numbers.

   Optimizations:
      - VCI now does nearly all of its internal class loading on-demand
        instead of during compile time. This eliminates dependency loops
        and probably helps some with startup time.

   Bug Fixes:
      - The Cvs driver was unable to parse certain valid commit histories,
        meaning that sometimes commits would be missing. The parser has
        been re-written to be faster and more reliable.

0.5.4 Aug 13, 2010
   - Most modules that used to be optional are now required, to improve
     the amount of testing that we get, and to simplify configuration for
     downstream consumers.
  - A few minor POD and test improvements.

0.5.3 Feb 14, 2009
    Bug Fixes:
        - Cvs and Bzr: Drivers now work when IPC::Cmd > 0.41 is installed.
        - Bzr: Now works reliably with bzr > 1.15.
        - Git: $commit->message now once again returns the literal
          message, exactly as it was typed in, with modern versions of Git.
        - Hg: History and Commit info was broken with recent versions of
          hgweb, and now works.

0.5.2 Jan 7, 2009
    - Fix a test failure that only happens when using the XS in recent
      Class::MOP releases.

0.5.1 Jan 2, 2008
    - No API changes, just major performance enhancements.

    Bug Fixes:
        - Systems with cvsps 2.2 will now work, when using the Cvs driver.
          (Older versions of cvsps are still fine, also.)
        - The Svn driver was broken with newer versions of Subversion.

0.4.1 Jan 10, 2008
    - VCI is now taint-safe in all drivers except for Git.
    
    Bug Fixes:
        - SECURITY: Versions prior to this one fall victim to CPAN RT ID
          31738, meaning that drivers that interact with the command line
          were vulnerable to command injection.
        - VCI no longer throws warnings if you give it "undef" for the
          "debug" argument to VCI->connect. (This mostly affected the Bzr
          driver.)
        - Svn: root_project->root_directory now works.
        - Svn: Tests should now pass on Svn versions < 1.4.
    
    API Changes:
        - We use Moose's support for "generics" (like ArrayRef[Int]) instead
          of having our own Array types, now.
        - We use Moose's lazy_build, meaning that all build functions
          changed to "_build_blah" instead of "build_blah"
        - All of our internal subtypes now start with "VCI::Type::", since
          I found out that Moose's type names are global.

0.3.1 Dec 3, 2007
    New Features:
        - Repository has a root_project to represent the idea that in some
          VCSes, the entire repository can be looked at as one Project.
        - FileContainer has contents_history_recursive, which gives a History
          for the contents of that directory and the contents of all its
          directories, etc.

    Optimizations:
        - Calling Bzr::Project::history should now be much faster,
          particularly on large projects.
        - Calling Svn::Project::get_commit and Svn::Committable::history
          should be faster, in most situations.

    Bug Fixes:
        - Make the bzr tests work with modern versions of bzr. (Fix the
          parsing of the --version output.)
        - History::union was sorting by revision number instead of by time.
        - Getting the contents of an Svn directory would sometimes fail.
          Thanks to Sam Vilain for help with the fix!
        - Cvs always said the timezone of commits was the local timezone.
          Now it's always UTC, to be consistent on all machines.

0.2.1 Fri, Sep 17, 2007
    - We now explicitly require Perl 5.6.0, which is what
      Perl::MinimumVersion says we require. No promises that all our
      dependencies work with 5.6.0, though.
    
    New Features:
        - Added File::content, which allows you to get the actual raw content
          of a file at its particular revision.
        - Added File::content_size, which allows you to get the size of the
          file in bytes at its particular revision.
        - Added Project::head_revision, which returns the revision ID
          that represents "head" in the Project.
        - You can now specify "revision" to get_file to get a particular
          revision of that file.
    
    API Changes:
        - Project::get_commit now takes named parameters instead of a single
          positional parameter.
        - Project::get_history_by_time no longer has an "at" argument. (Use
          get_commit(time => 'blah') instead.)
        - Svn's FileOrDirectory is now *both* a VCI::Abstract::File and a
          VCI::Abstract::Directory, instead of being neither.
    
    Optimizations:
        - Hg's File::history should now be much faster, as gets the
          information directly from Hg instead of building it from the
          Project's History.
    
    Bug Fixes:
        - Sometimes Cvs's File::content was including extra garbage at the
          end of the actual file content.
        - Specifying a value greater than 1 for "debug" in VCI->connect
          was throwing an error.
        - Cvs wasn't dying correctly when a command failed.
        - File::is_executable wasn't correctly specified as being Bool.
        - Svn should now correctly delete temp files created by
          Commit::as_diff after build_as_diff returns.

0.1.2 Tue, Sep 11, 2007
    - Added tests for Committable ::history, ::first_revision,
      and ::last_revision.
    - Committable was always returning a Bzr::History instead of the
      correct History object.
    
    Hg:
        - History was in reverse order.
        - Commit::contents would fail if there were no changes to any files
          in the commit.
        - Files in Commit ::added, ::modified, ::removed, and ::contents
          didn't have their "revision" and "time" set.
    
    Svn:
        -Commit ::last_revision and ::first_revision were broken.

0.1.1 Mon, Sep 10, 2007
    New Features:
        - Commit objects now have an as_diff accessor, which allows you to
          get that particular commit as a "diff" from the VCS. This adds
          a requirement of Text::Diff::Parser 0.07.
    
    API Changes:
        - get_path, get_file, and get_directory now take a single named
          argument, "path", instead of a single un-named argument.
    
    Bugs Fixed:
        - Added tests for all the drivers, which fixed a lot of bugs. In short,
          don't use any version of VCI before this one.
    
    For VCI Developers:
        - If you set the VCI_TEST_DEBUG environment variable, it will be
          passed as the "debug" argument to VCI->connect, allowing you to
          see more information from the driver about what's going on in the
          test.
        - You can set VCI_REMOTE_TESTS = 1 in your environment to run
          tests that involve accessing machines over the Internet.

0.0.3 Fri, Aug 31, 2007
    - Svn history was broken when the repo history contained copied items.

0.0.2 Fri, Aug 31, 2007
    - Bzr's history and contents were broken.
    - Svn's history was broken.
    - Git driver had some debug code left in that was breaking history.

0.0.1 Tue, Aug 28, 2007
    - Support for CVS
    - Test::Warn was missing from build_requires
    - Cleaned up documentation
    - Committables now can never be created with just time and no revision.



Hosting generously
sponsored by Bytemark