Here are the changes for libvcs.


Generally speaking, refactor / magic is in the process of being stripped out in the next few releases. The API is subject to change significantly in pre-1.0 builds.

libvcs 0.5 (2020-08-11)

  • [refactor] #267 overhaul docs
    • Move sphinx api format to Numpy-style
    • Move from reStructuredText to Markdown (via recommonmark). The master plan is to eliminate docutils and sphinx as a bottleneck completely in favor of something else (e.g. gatsby with a source that inspects our modules and can source intersphinx)
    • Move from RTD to GitHub Action, full support of poetry extras packages, deploys straight to S3 and CloudFront
  • #270 Build and publish packages via poetry
  • #270 Overhaul development docs

libvcs 0.4.4 (2020-08-05)

  • #268 libvcs.base.BaseRepo:
    • no longer sets **kwargs to dictionary on the object
    • remove __slot__ and rename name attribute to repo_name

libvcs 0.4.3 (2020-08-01)

  • [bug] libvcs.git.extract_status() Fix issue capturing branch names with special characters

libvcs 0.4.2 (2020-08-01)

  • [bug] libvcs.git.GitRepo.get_current_remote_name() Handle case where upstream is unpushed
  • [feature] libvcs.git.GitRepo.status() - Retrieve status of repo
  • [feature] libvcs.git.extract_status() - Return structured info from git status

libvcs 0.4.1 (2020-08-01)

  • Remove log statement

libvcs 0.4 (2020-08-01)

Breaking changes

Internal functionality relating to remotes have been reorganized to avoid implicit behavior.

  • ~libvcs.git.GitRepo methods have been renamed, they will be deprecated in 0.5:

    • GitRepo.remotes_get renamed to libvcs.git.GitRepo.remotes()
    • GitRepo.remote_get renamed to libvcs.git.GitRepo.remote()
    • GitRepo.remote_set renamed to libvcs.git.GitRepo.set_remote()
  • ~libvcs.git.GitRepo the remotes argument is deprecated and no longer used. Use libvcs.git.GitRepo.set_remote after repo is instantiated.

  • libvcs.git.GitRepo.obtain no longer set remotes based on a dict passed to ~libvcs.git.GitRepo. This was deemed to specialized / implicit.

  • libvcs.git.GitRepo.set_remote() (formerly remote_set)

    The new method accepts name and url (in that order). name no longer has a default value (was origin).

  • libvcs.git.GitRepo.remote() (formerly remote_get):

    • remote argument renamed to name. It will be removed in 0.5.0

      The default value of 'origin' has been removed

    • Now returns ~libvcs.git.GitRemote (a :pycollections.namedtuple object)

      The tuple is similar to the old output, except there is an additional value at the beginning, the name of the remote, e.g. ('origin', '<fetch_url>', '<push_url>')

  • libvcs.git.GitRepo.remotes() (formerly remotes_get) are now methods instead of properties.

    Passing flat=True to return a dict of tuple instead of dict

  • New method: libvcs.git.GitRepo.get_git_version()

  • New method: libvcs.git.GitRepo.get_current_remote_name()

libvcs 0.3.3 (2020-07-29)

  • Remove f-string from test
  • libvcs.git.GitRepo.obtain Overwrite remote if exists

libvcs 0.3.2 (2020-07-26)

  • 258 libvcs.git.GitRepo.remote_set
    • Fix updating of remote URLs
    • Add new param: overwrite, usage: repo.remote_set(url, 'origin', overwrite=True)

libvcs 0.3.1post1 (2020-07-26)

  • Fix version in pyroject.toml
  • Update developer docs

libvcs 0.3.1 (2020-07-25)

  • Fix issue with subprocess.Popen loud warning on Python 3.8
  • [#296] - Move from Pipfile to poetry
  • Sort imports
  • Add isort package, isort configuration in setup.cfg, and make isort task to Makefile.
  • Add project_urls to


libvcs 0.3.0 (2018-03-12)

  • Move vcspull to the vcs-python organization
  • Fix issue where VCS objects failed to set attribute in Ubuntu 18.04.

libvcs 0.2.3 (2016-12-22)

  • Update documentation to point to
  • Switch doc theme to alabaster
  • Pin and update libraries via pyup
    • update vulture 0.8.1 to 0.11
    • update flake8 from 2.5.4 to 3.2.1
    • update pytest-mock from 1.4.0 to 1.5.0
    • update pytest from 3.0.4 to 3.0.5
    • pin alabaster to 0.7.9
    • pin sphinx to 1.5.1

libvcs 0.2.2 (2016-11-23)

  • Fix bug with unused support module in vcspull. See vcspull#43

libvcs 0.2.1 (2016-09-13)

  • Update pytest to 3.0.2, remove unused pytest-raisesregexp dependency.
  • Fix bug in which when executable is not found. Allow specifying search paths manually.
  • Better support for missing VCS when testing on git and subversion.

libvcs 0.2.0 (2016-06-24)

  • #9 Support for progress_callback to use realtime output from commands in progress (such as git fetch).
  • #9 More tests, internal factoring and documentation, thanks @jcfr
  • #9 Official support for pypy, pypy3
  • #11 : Fix unbound local when updating git repos

libvcs 0.1.7 (2016-06-21)

  • 7 Add check_returncode property to run, thanks @jcfr
  • 8 Remove all cases of run_buffered / buffering from the library.

libvcs 0.1.6 (2016-06-21)

  • 5 Remove colorama dependency

  • 6 Remove log module. Logging defaults.

    The library user can still use formatters and set log levels, for an example, see the vcspull logging setup.

    An example:

      import logging
      # your app
      # vcslib logging options
      vcslogger = logging.getLogger('libvcs')
      vcslogger.propagate = False # don't pass libvcs settings up scope

    You can also use logging.Formatter variables repo_name and repo_vcs with repos:

      repo_channel = logging.StreamHandler()
      repo_formatter = logging.Formatter(
          '[%(repo_name)s] (%(repo_vcs)s) %(levelname)1.1s: %(message)s'
      vcslogger = logging.getLogger('libvcs')
      vcslogger.propagate = False # don't pass libvcs settings up scope

libvcs 0.1.5 (2016-06-21)

  • Fix issue where repo context wouldn’t pass to repo logging adapter

libvcs 0.1.4 (2016-06-20)

  • Fix print_stdout_on_progress_end signature in git update

libvcs 0.1.3 (2016-06-20)

  • create_repo function for regular vcs urls
  • API docs updated

libvcs 0.1.2 (2016-06-20)

  • change signature on create_repo_from_pip_url to accept pip_url insetad of url.
  • Base to accept repo_dir instead of name and parent_dir.

libvcs 0.1.1 (2016-06-20)

  • remove unneeded pyyaml, kaptan and click dependencies

libvcs 0.1.0 (2016-06-20)