Changelog¶
To install the unreleased libvcs version, see developmental releases.
pip:
$ pip install --user --upgrade --pre libvcs
libvcs 0.35.x (unreleased)¶
Notes on upcoming releases will be added here
libvcs 0.34.0 (2024-11-22)¶
Maintenance only, no bug fixes, or new features
Development¶
Project and package management: poetry to uv (#479)¶
uv is the new package and project manager for the project, replacing Poetry.
Build system: poetry to hatchling (#479)¶
Build system moved from poetry to hatchling.
libvcs 0.33.0 (2024-10-13)¶
New features¶
Python 3.13 support (#477)¶
Added Python 3.13 to package trove classifiers and CI tests.
libvcs 0.32.3 (2024-10-13)¶
Bug fixes¶
Pytest fixtures
hg_remote_repo_single_commit_post_init()
andgit_remote_repo_single_commit_post_init()
now support passingenv
for VCS configuration.Both functions accept
hgconfig
andgitconfig
fixtures, now applied in thehg_repo
andgit_repo
fixtures.
libvcs 0.32.2 (2024-10-13)¶
Bug fixes¶
Pytest fixtures:
git_repo
andhg_repo
: Set configuration for both fixtures.
libvcs 0.32.1 (2024-10-12)¶
Revert accidental commit¶
Update to commands for Git
from #465 were pushed to trunk before being prepared (even for experimental use).
libvcs 0.32.0 (2024-10-12)¶
Breaking changes¶
pytest fixtures: Session-scoped hgconfig
and gitconfig
(#475)¶
These are now set by set_hgconfig
and set_gitconfig
, which set HGRCPATH
and GIT_CONFIG
, instead of overriding HOME
.
Documentation¶
Updates for pytest plugin documentation.
libvcs 0.31.0 (2024-10-12)¶
Breaking changes¶
pytest plugin: Improve performacne via session-based scoping (#472)¶
Improved test execution speed by over 54% by eliminated repetitive repository reinitialization between test runs. Git, Subversion, and Mercurial repositories are now cached from an initial starter repository
pytest fixtures: git_local_clone
renamed to example_git_repo
(#468)¶
Renamed git_local_clone
to example_git_repo
for better understandability in
documentation / doctests.
cmd: Listing method renamed (#466)¶
libvcs.cmd.git.GitCmd._list()
->libvcs.cmd.git.Git.ls()
libvcs.cmd.svn.Svn._list()
->libvcs.cmd.svn.Svn.ls()
libvcs 0.30.1 (2024-06-18)¶
Bug Fixes¶
Tests¶
Documentation¶
README: Overhaul and fixes
libvcs 0.30.0 (2024-06-18)¶
New features¶
urls: AWS CodeCommit support (#443)¶
Support for AWS CodeCommit URL patterns. Examples:
HTTPS:
https://git-codecommit.us-east-1.amazonaws.com/v1/repos/test
SSH:
ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/test
HTTPS (GRC):
codecommit::us-east-1://test
codecommit://test
Breaking changes¶
urls: Variable changes (#463)¶
RE_PIP_REV
moved fromlibvcs.url.git
tolibvcs.url.constants
.Regex pattern for user (e.g.,
git@
) decoupled toRE_USER
.RE_PATH
andSCP_REGEX
(nowRE_SCP
) no longer include user regex patternExisting patterns now use
RE_USER
explicitly.
REGEX_SCP
renamed toRE_SCP
for consistency.
Documentation¶
Automatically linkify links that were previously only text.
Fix docstrings in
query_list
forMultipleObjectsReturned
andObjectDoesNotExist
.
Development¶
poetry: 1.8.1 -> 1.8.2
See also: https://github.com/python-poetry/poetry/blob/1.8.2/CHANGELOG.md
Code quality: Use f-strings in more places (#460)
via ruff 0.4.2.
libvcs 0.29.0 (2024-03-24)¶
Maintenance only, no bug fixes, or new features
Development¶
Aggressive automated lint fixes via
ruff
(#458)via ruff v0.3.4, all automated lint fixes, including unsafe and previews were applied:
ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; ruff format .
Branches were treated with:
git rebase \ --strategy-option=theirs \ --exec 'poetry run ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; poetry run ruff format .; git add src tests; git commit --amend --no-edit' \ origin/master
poetry: 1.7.1 -> 1.8.1
See also: https://github.com/python-poetry/poetry/blob/1.8.1/CHANGELOG.md
-
Related formattings. Update CI to use
ruff check .
instead ofruff .
.See also: https://github.com/astral-sh/ruff/blob/v0.3.0/CHANGELOG.md
libvcs 0.28.2 (2024-02-17)¶
Fixes¶
Testing¶
libvcs 0.28.1 (2024-02-08)¶
Packaging¶
libvcs 0.28.0 (2024-02-07)¶
Improvement¶
libvcs 0.27.0 (2024-02-06)¶
Development¶
-
Add flake8-commas (COM)
Add flake8-builtins (A)
Add flake8-errmsg (EM)
CI¶
Move CodeQL from advanced configuration file to GitHub’s default
libvcs 0.26.0 (2023-11-26)¶
Breaking changes¶
Bug fixes¶
Development¶
Documentation¶
libvcs 0.25.1 (2023-11-23)¶
Packaging¶
Move
gp-libs
totest
dependencies
libvcs 0.25.0 (2023-11-19)¶
Maintenance only, no bug fixes, or new features
Packaging¶
Poetry: 1.6.1 -> 1.7.0
See also: https://github.com/python-poetry/poetry/blob/1.7.0/CHANGELOG.md
Move formatting from
black
toruff format
(#448)This retains the same formatting style of
black
while eliminating a dev dependency by using our existing rust-basedruff
linter.Packaging (poetry): Fix development dependencies
Per Poetry’s docs on managing dependencies and
poetry check
, we had it wrong: Instead of using extras, we should create these:[tool.poetry.group.group-name.dependencies] dev-dependency = "1.0.0"
Which we now do.
Development¶
CI: Update action package to fix warnings
dorny/paths-filter: 2.7.0 -> 2.11.1
libvcs 0.24.0 (2023-10-22)¶
Bug fixes¶
Packaging¶
Development¶
libvcs 0.23.0 (2023-08-20)¶
Maintenance only, no bug fixes, or new features
Development¶
Post-release: v0.23.0post0 (2023-08-20)¶
Fixes code comments cleaned up by
ruff
, but missed in QA. In the future, even when using an automated tool, we will review more thoroughly.
libvcs 0.22.2 (2023-08-20)¶
Maintenance only, no bug fixes, or new features
Development¶
SubprocessCommand
: Typing fix fortext
param. Found via mypy(1).
libvcs 0.22.1 (2023-05-28)¶
Maintenance only, no bug fixes, or new features
Development¶
Add back
black
for formattingThis is still necessary to accompany
ruff
, until it replaces black.
libvcs 0.22.0 (2023-05-27)¶
Maintenance only, no bug fixes, or new features
Internal improvements¶
Move formatting, import sorting, and linting to [ruff].
This rust-based checker has dramatically improved performance. Linting and formatting can be done almost instantly.
This change replaces black, isort, flake8 and flake8 plugins.
poetry: 1.4.0 -> 1.5.0
See also: https://github.com/python-poetry/poetry/releases/tag/1.5.0
libvcs 0.21.2 (2023-04-07)¶
Development¶
Update mypy to 1.2.0
Fixes¶
SkipDefaultFieldsReprMixin: Fix typing for mypy 1.2.0
libvcs 0.21.1 (2023-03-15)¶
Fixes¶
libvcs 0.21.0 (2023-03-15)¶
New¶
Bug fixes¶
libvcs 0.20.0 (2022-10-31)¶
What’s new¶
Python 3.11 support (#433)¶
Official support for python 3.11
URLs: Mapping now class attributes (#433)¶
URL.rule_map
is now a class attribute rather than a dataclass attribute.
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 1211, in wrap
return _process_class(cls, init, repr, eq, order, unsafe_hash,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 959, in _process_class
cls_fields.append(_get_field(cls, name, type, kw_only))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 816, in _get_field
raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'libvcs.url.base.RuleMap'> for field rule_map is not allowed: use default_factory
libvcs 0.19.1 (2022-10-23)¶
Tests¶
Documentation¶
libvcs 0.19.0 (2022-10-23)¶
New features¶
Commands¶
Git
Support for progress bar
Add subcommands for:
stash:
Git.stash
->libvcs.cmd.git.GitStashCmd
remote:
Git.remote
->libvcs.cmd.git.GitRemoteCmd
submodule:
Git.submodule
->libvcs.cmd.git.GitSubmoduleCmd
Added commands for:
SVN
New and improved:
Mercurial
New and improved:
Syncing¶
Git, SVN, and Mercurial have moved to libvcs.cmd
libvcs 0.18.1 (2022-10-23)¶
Maintenance only release, no bug fixes, or new features
Documentation improvements
Development package updates
Add citation file (CITATION.cff)
libvcs 0.18.0 (2022-10-09)¶
New features¶
URLs¶
libvcs 0.17.0 (2022-09-25)¶
New features¶
Breaking changes¶
Matcher
->Rule
,MatcherRegistry
->Rules
matches
->rule_map
default_patterns
->patterns
MATCHERS
->RULES
Improvements¶
pytest plugin:
create_{git,svn,hg}_remote_repo()
now acceptsinit_cmd_args
(list[str]
, default:['--bare']
, #426)To not use bare, pass
init_cmd_args=None
Sync:
hg
: AddHgBaseURL
,HgPipURL
svn
: AddSvnBaseURL
,SvnPipURL
URLProtocol
: Fixis_valid
to useclassmethod
All: Fix
is_valid
to use default ofNone
to avoid implicitly filteringReduce duplicated code in methods by using
super()
Packaging¶
Remove
.tmuxp.before-script.sh
(was abefore_script
in.tmuxp.yaml
) that was unused.Move
conftest.py
to root levelCan be excluded from wheel, included in sdist
Required to satisfy pytest’s
pytest_plugins
only being in top-level confte conftest.py files since 4.0 (see notice)Makes it possible to run
pytest README.md
with doctest plugin
libvcs 0.16.5 (2022-09-21)¶
Bug fixes¶
libvcs 0.16.4 (2022-09-18)¶
Infrastructure¶
Bump poetry to 1.1.x to 1.2.x
libvcs 0.16.3 (2022-09-18)¶
Bug fixes¶
Tests¶
Documentation¶
Infrastructure¶
libvcs 0.16.2 (2022-09-11)¶
Bug fix¶
libvcs 0.16.1 (2022-09-11)¶
Bug fix¶
Temporarily add Faker
as a dependency (due to pytest), track longterm fix on (#411)
libvcs 0.16.0 (2022-09-11)¶
New features¶
Added a pytest plugin. Create fresh, temporarily repos on your machine locally for git, mercurial, and svn (#409)
libvcs 0.15.0 (2022-09-11)¶
Breaking changes¶
-
libvcs.parse
->libvcs.url
libvcs.projects
->libvcs.sync
-
BaseProject
->BaseSync
MercurialProject
->HgSync
SubversionProject
->SvnSync
GitProject
->GitSync
Deprecate custom functions in favor of standard library:
which()
in favor ofshutil.which()
, via #397mkdir_p()
in favor ofos.makedirs()
andpathlib.Path.mkdir()
w/parents=True
, via #399
Development¶
Remove
.pre-commit-config.yaml
: This can be done less obtrusively via flake8 and having the user run the tools themselves.
Documentation¶
Render changelog in
linkify_issues
(#396, #403)Fix Table of contents rendering with sphinx autodoc with
sphinx_toctree_autodoc_fix
(#403)Deprecate
sphinx-autoapi
, per above fixing the table of contents issue (#403)This also removes the need to workaround autoapi bugs.
libvcs 0.14.0 (2022-07-31)¶
What’s new¶
New and improved logo
Improved typings
Now
mypy --strict
compliant (#390)Parser: Experimental VCS URL parsing added (#376, #381, #384, #386):
VCS Parsers return
dataclasses.dataclass()
instances. The new tools support validation, parsing, mutating and exporting into URLs consumable by the VCS.Warning
APIs are unstable and subject to break until we get it right.
-
GitBaseURL
- Parse git URLs,git(1)
compatibleto_url()
- exportgit clone
-compatible URL
GitPipURL
- Pip URLs,is_valid()
,to_url()
GitURL
- Compatibility focused,is_valid()
to_url()
Detection can be extended through writing
Matcher
s and adding them to the classes’MatcherRegistry
You can write your own VCS parser by implementing
URLProtocol
, but it would be most efficient if you studied the source of thegit(1)
parser to see how it’s done.-
Breaking changes¶
#391 Removed
flat
keyword argument forlibvcs.sync.git.GitSync
. This was unused and the equivalent can be retrieved via.to_dict()
onGitRemote
#379 Support for
git+git
URLs removed. Pip removed these in 21.0 due to them being insecure [1]#372 Typings moved from
libvcs.types
->libvcs._internal.types
#377 Remove deprecated functions and exceptions
Removed
libvcs.shortcuts
Removed
libvcs.shortcuts.create_project_from_pip_url()
: This will be replaced in future versions by #376 / parsing utilitiesMoved
libvcs.shortcuts.create_project()
tolibvcs._internal.shortcuts.create_project()
Removed
libvcs.exc.InvalidPipURL
Fixes¶
Minor spelling fix in Git’s
convert_pip_url()
exceptionFix mercurial cloning in
libvcs.sync.hg.HgSync
Backport from 0.13.1
Typings¶
Rename
VcsLiteral
->VCSLiteral
Backport from 0.13.4
create_project()
: Add overloads that return the typed project (e.g.,GitSync
)Backport from 0.13.3
Cleanup¶
libvcs 0.13.6 (2022-06-18)¶
Development¶
Move
libvcs.shortcuts
tolibvcs._internal.shortcuts
libvcs 0.13.5 (2022-06-18)¶
Development¶
Note upcoming deprecation of
create_project_from_pip_url
in v0.14Note
create_project
becoming internal API in upcoming release v0.14Fix import in
libvcs.shortcuts
(in v0.14 this module will not exist)
libvcs 0.13.4 (2022-06-18)¶
Typing¶
Rename
VcsLiteral
->VCSLiteral
libvcs 0.13.3 (2022-06-18)¶
Typings¶
create_project()
: Add overloads that return the typed project (e.g.,GitSync
)
libvcs 0.13.2 (2022-06-12)¶
Typings¶
libvcs.sync.git.GitSync.remotes()
: Add overload
libvcs 0.13.1 (2022-06-01)¶
Fixes¶
Fix mercurial cloning in
libvcs.sync.hg.HgSync
libvcs 0.13.0, “Jane” (2022-05-30)¶
Breaking changes¶
#343:
libvcs.cmd.core
moved tolibvcs._internal.run
to make it more clear the API is closed.This includes
run()
Before in 0.13:
from libvcs.cmd.core import run
New module in >=0.13:
from libvcs._internal.run import run
#361:
run
’s params are now a pass-through tosubprocess.Popen
.run(cmd, ...)
is nowrun(args, ...)
to matchPopen
’s convention.
-
Removed
parent_dir
:Before:
project.parent_dir
After:
project.parent.path
.repo_name
switched from attribute to property
What’s new¶
Bug fixes¶
Internals¶
-
Basic mypy tests now pass
Type annotations added, including improved typings for:
make mypy
andmake watch_mypy
Automatic checking on CI
#345
libvcs.utils
->libvcs._internal
to make it more obvious the APIs are strictly closed.StrOrPath
->StrPath
#336:
SubprocessCommand
: Encapsulatedsubprocess
call in adataclasses.dataclass()
for introspecting, modifying, mocking and controlling execution.Dataclass helper:
SkipDefaultFieldsReprMixin
Skip default fields in object representations.
Credit: Pietro Oldrati, 2022-05-08, StackOverflow Post
Documentation¶
Packaging¶
Update description and keywords
libvcs 0.12.4 (2022-05-30)¶
libvcs 0.12.3 (2022-05-28)¶
Bug fixes¶
libvcs 0.12.2 (2022-05-10)¶
Packaging¶
Update trove classifiers
libvcs 0.12.1 (2022-05-10)¶
Packaging¶
Add keywords and update subscription
Add
py.typed
file tolibvcs/py.typed
libvcs 0.12.0, “Nimbus” (2022-04-24)¶
Breaking¶
GitRepo
,SVNRepo
,MercurialRepo
,BaseRepo
have been renamed toGitSync
,SVNProject
,HgSync
,BaseSync
(#327)GitSync
,SVNProject
,HgSync
,BaseSync
have been moved tolibvcs.sync.{module}.{Module}Project
repo_dir
param is renamed todir
:Before:
GitSync(url='...', repo_path='...')
After:
GitSync(url='...', path='...')
dir
topathlib
,BaseSync.path
->BaseSync.path
Logging functions moved to
libvcs.sync.base.BaseSync.log
(#322)Rename
ProjectLoggingAdapter
toCmdLoggingAdapter
CmdLoggingAdapter
: Renamerepo_name
param tokeyword
create_repo
->create_project
GitRemote
andGitStatus
: Move todataclasses.dataclass()
(#329)
What’s new¶
Commands: Experimental command wrappers added (#319):
libvcs.sync.git.GitSync
now accepts remotes in__init__
repo = GitSync( url="https://github.com/vcs-python/libvcs", repo_path=checkout, remotes={ 'gitlab': 'https://gitlab.com/vcs-python/libvcs', } )
repo = GitSync( url="https://github.com/vcs-python/libvcs", repo_path=checkout, remotes={ 'gitlab': { 'fetch_url': 'https://gitlab.com/vcs-python/libvcs', 'push_url': 'https://gitlab.com/vcs-python/libvcs', }, } )
libvcs.sync.git.GitSync.update_repo()
now acceptsset_remotes=True
Compatibility¶
Development¶
CI: Use poetry caching from @actions/setup v3.1, (#316)
New constants for
str
-> class mappingsRemove tox and tox-poetry-installer. It turns out installing poetry inside a poetry project doesn’t work well. (
poetry update
,poetry publish
, etc. commands would fail)Add doctest w/ pytest + doctest, (#321).
Publish to PyPI via CI when git tags are set.
Documentation¶
libvcs 0.11.1 (2022-03-12)¶
CVE-2022-21187: Command Injection with mercurial repositories¶
By setting a mercurial URL with an alias it is possible to execute arbitrary shell commands via
.obtain()
or in the case of uncloned destinations,.update_repo()
. (#306, credit: Alessio Della Libera)See also: cve.mitre.org, nvd.nist.gov, snyk.
Development¶
Documentation¶
Move to furo theme
Root:
make start_docs
,make design_docs
docs/:
make start
,make design
libvcs 0.11.0, “Phebe” (2022-01-08)¶
Compatibility¶
Development¶
libvcs 0.10.1 (2021-11-30)¶
libvcs 0.10 (2021-06-16)¶
#311: Convert to markdown
libvcs 0.9 (2021-06-14)¶
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.
#271:
Big version bump (0.5 -> 0.9)
Remove Python 2.7 support
Add annotations
Change
libvcs.git.GitRepo.status()
to returnGitStatus
named tupleBreaking change: Repo objects now require
repo_dir
to be passedUpdate black to 21.6b0
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 objectremove
__slot__
and renamename
attribute torepo_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 fromgit 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 tolibvcs.git.GitRepo.remotes()
GitRepo.remote_get
renamed tolibvcs.git.GitRepo.remote()
GitRepo.remote_set
renamed tolibvcs.git.GitRepo.set_remote()
~libvcs.git.GitRepo
theremotes
argument is deprecated and no longer used. Uselibvcs.git.GitRepo.set_remote
after repo is instantiated.libvcs.git.GitRepo.obtain
no longer set remotes based on adict
passed to~libvcs.git.GitRepo
. This was deemed to specialized / implicit.libvcs.git.GitRepo.set_remote()
(formerlyremote_set
)The new method accepts
name
andurl
(in that order).name
no longer has a default value (wasorigin
).libvcs.git.GitRepo.remote()
(formerlyremote_get
):remote
argument renamed toname
. It will be removed in 0.5.0The default value of
'origin'
has been removedNow 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()
(formerlyremotes_get
) are now methods instead of properties.Passing
flat=True
to return adict
oftuple
instead ofdict
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
Sort imports
Add isort package, isort configuration in setup.cfg, and
make isort
task to Makefile.Add
project_urls
to setup.py
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 libvcs.git-pull.com
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)¶
libvcs 0.1.7 (2016-06-21)¶
7
Addcheck_returncode
property to run, thanks @jcfr8
Remove all cases ofrun_buffered
/ buffering from the library.
libvcs 0.1.6 (2016-06-21)¶
5
Remove colorama dependency6
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 log.setLevel(level) log.addHandler(logging.StreamHandler()) # vcslib logging options vcslogger = logging.getLogger('libvcs') vcslogger.propagate = False # don't pass libvcs settings up scope vcslogger.addHandler(logging.StreamHandler()) vcslogger.setLevel(level)
You can also use
logging.Formatter
variablesrepo_name
andbin_name
with repos:repo_channel = logging.StreamHandler() repo_formatter = logging.Formatter( '[%(repo_name)s] (%(bin_name)s) %(levelname)1.1s: %(message)s' ) repo_channel.setFormatter(repo_formatter) vcslogger = logging.getLogger('libvcs') vcslogger.propagate = False # don't pass libvcs settings up scope vcslogger.addHandler(repo_channel) vcslogger.setLevel(level)
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 urlsAPI docs updated
libvcs 0.1.2 (2016-06-20)¶
change signature on
create_repo_from_pip_url
to acceptpip_url
instead ofurl
.Base
to acceptrepo_dir
instead ofname
andparent_dir
.
libvcs 0.1.1 (2016-06-20)¶
remove unneeded pyyaml, kaptan and click dependencies
libvcs 0.1.0 (2016-06-20)¶
libvcs split from vcspull