Changelog¶
To install the unreleased vcspull version, see developmental releases.
pip:
$ pip install --user --upgrade --pre vcspull
pipx:
$ pipx install --suffix=@next 'vcspull' --pip-args '\--pre' --force
// Usage: vcspull@next sync [config]
vcspull v1.34.x (unreleased)¶
Notes on upcoming releases will be added here
vcspull v1.33.0 (2024-11-23)¶
Maintenance only, no bug fixes, or new features
Breaking changes¶
Project and package management: poetry to uv (#457)¶
uv is the new package and project manager for the project, replacing Poetry.
Build system: poetry to hatchling (#457)¶
Build system moved from poetry to hatchling.
libvcs 0.33.0 -> 0.34.0 (#456)¶
First libvcs release built with uv
package and project manager. No changes to libvcs API itself.
vcspull v1.32.0 (2024-10-13)¶
Maintenance only, no bug fixes or new features
New features¶
Python 3.13 support¶
Added Python 3.13 to package trove classifiers and CI tests.
libvcs 0.30.1 -> 0.33.0 (#453)¶
Faster, cached pytest fixtures. Upstream tests are 50% faster.
Faster tests fixtures (#453)¶
libvcs’s included test fixtures beyond v0.31.0+ are 33%+ faster.
vcspull v1.31.0 (2024-06-18)¶
Breaking changes¶
libvcs: 0.29.0 -> 0.30.1 (#449, #450)
AWS CodeCommit support. Example:
~/study/aws-codecommit: test: repo: "codecommit::us-east-1://test"
Documentation¶
Automatically linkify links that were previously only text.
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 (#445)
via ruff 0.4.2.
vcspull v1.30.0 (2024-03-24)¶
Maintenance only, no bug fixes or new features
Development¶
Aggressive automated lint fixes via
ruff
(#442)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
vcspull v1.29.0 (2024-03-24)¶
Maintenance only, no bug fixes or new features
Breaking changes¶
Development¶
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
vcspull v1.28.1 (2024-02-17)¶
Fixes¶
Testing¶
vcspull v1.28.0 (2024-02-07)¶
Maintenance only, no bug fixes or new features
Breaking changes¶
vcspull v1.27.0 (2024-02-07)¶
Maintenance only, no bug fixes, or new features
Breaking changes¶
Development¶
-
Add flake8-commas (COM)
Add flake8-builtins (A)
Add flake8-errmsg (EM)
Documentation¶
vcspull v1.26.0 (2023-12-16)¶
Maintenance only, no bug fixes, or new features
CI¶
Documentation¶
vcspull v1.25.0 (2023-11-26)¶
Packaging¶
libvcs 0.25.1 -> 0.26.0: Minor bug fixes, docstring updates
CI¶
Move CodeQL from advanced configuration file to GitHub’s default
vcspull v1.24.1 (2023-11-24)¶
Packaging¶
libvcs 0.25.0 -> 0.25.1 (maintenance release)
vcspull v1.24.0 (2023-11-19)¶
Maintenance only, no bug fixes, or new features
Packaging¶
libvcs 0.24.0 -> 0.25.0 (maintenance release)
Add Python 3.12 to trove classifiers
Poetry: 1.6.x -> 1.7.0
See also: https://github.com/python-poetry/poetry/blob/1.7.0/CHANGELOG.md
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¶
Move formatting from
black
toruff format
(#427)This retains the same formatting style of
black
while eliminating a dev dependency by using our existing rust-basedruff
linter.CI: Update action packages to fix warnings
dorny/paths-filter: 2.7.0 -> 2.11.1
vcspull v1.23.0 (2023-10-22)¶
Breaking changes¶
Bug fixes¶
Development¶
vcspull v1.22.0 (2023-09-02)¶
Maintenance only, no bug fixes, or new features
Development¶
vcspull v1.21.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.
vcspull v1.21.0 (2023-05-27)¶
Maintenance only, no bug fixes or 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.
libvcs: 0.21.1 -> 0.21.2 (addition of ruff)
poetry: 1.4.0 -> 1.5.0
See also: https://github.com/python-poetry/poetry/releases/tag/1.5.0
vcspull v1.20.3 (2023-05-14)¶
Bug fix¶
vcspull v1.20.2 (2023-04-07)¶
Maintenance only, no bug fixes or features
Development¶
Update mypy to 1.2.0
libvcs: 0.21.1 -> 0.21.2
Typing update only
vcspull v1.20.1 (2023-03-15)¶
libvcs: 0.21.0 -> 0.21.1
This removes even more
typing-extensions
runtime dependencies from production builds.
vcspull v1.20.0 (2023-03-15)¶
Bug fix¶
libvcs: 0.20.0 -> 0.21.0
This removes the
typing-extensions
requirement from production builds.
vcspull v1.19.0 (2022-12-31)¶
Internal¶
vcspull v1.18.0 (2022-10-31)¶
Python 3.11 support (#409)¶
Bump libvcs 0.19.1 -> 0.20.0
Adds python 3.11 support
vcspull v1.17.1 (2022-10-23)¶
Maintenance release, no features or fixes
Internal¶
Bump libvcs 0.19.0 -> 0.19.1
Doc fixes and test improvements
vcspull v1.17.0 (2022-10-23)¶
Maintenance release, no features or fixes
Internal¶
vcspull v1.16.0 (2022-10-23)¶
Maintenance release, no features or fixes
Internal¶
vcspull v1.15.8 (2022-10-16)¶
CLI¶
Doc fix for sphinx-argparse CLI generation
vcspull v1.15.7 (2022-10-16)¶
CLI¶
vcspull v1.15.6 (2022-10-16)¶
CLI¶
vcspull
: Add usage examples to CLI output
vcspull v1.15.5 (2022-10-16)¶
CLI¶
vcspull v1.15.4 (2022-10-16)¶
CLI¶
File completions for
-c
/--config
files (#403)After updating, you can re-run shtab’s setup (see completions page) completion of:
$ vcspull sync -c [tab]
$ vcspull sync --config [tab]
Documentation¶
Fix readme example for syncing repositories
vcspull v1.15.3 (2022-10-09)¶
Documentation¶
Updates for migrations page
Add back page on completions
CLI¶
Capitalization fixes and help text updates
vcspull v1.15.2 (2022-10-08)¶
Packaging¶
vcspull v1.15.1 (2022-10-02)¶
Bug fix¶
Fix help text for
vcspull sync
arguments and flags
vcspull v1.15.0 (2022-10-02)¶
Maintenance release, no features or fixes
Internal¶
Packaging¶
vcspull v1.14.0 (2022-10-01)¶
Maintenance release, no features or fixes
Internal¶
Packaging¶
vcspull v1.13.0 (2022-09-25)¶
What’s new¶
Refreshed logo
vcspull sync
:Empty command will now show help output
$ vcspull sync Usage: vcspull sync [OPTIONS] [REPO_TERMS]... Options: -c, --config PATH Specify config -x, --exit-on-error Exit immediately when encountering an error syncing multiple repos -h, --help Show this message and exit.
To achieve the equivalent behavior of syncing all repos, pass
'*'
:$ vcspull sync '*'
Depending on how shell escaping works in your shell setup with wild card / asterisk, you may not need to quote
*
.Terms with no match in config will show a notice (#394)
No repo found in config(s) for “non_existent_repo”
Syncing will now skip to the next repos if an error is encountered
Learned
--exit-on-error
/-x
Usage:
$ vcspull sync --exit-on-error grako django
Print traceback for errored repos:
$ vcspull --log-level DEBUG sync --exit-on-error grako django
Syncing in git repositories with untracked files has been improved (via libvcs 0.17)
Development¶
mypy:
mypy --strict
compliant (#386)
Remove
.pre-commit-config.yaml
: Let’s not automate what the contributor could / should do themselves.
Testing¶
Documentation¶
Bug fixes¶
Fix cloning of mercurial repositories
Infrastructure¶
Packaging¶
vcspull 1.12.3 (2022-06-01)¶
Bug fixes¶
Fix cloning of mercurial repositories (backported fix from libvcs 0.13.x)
vcspull 1.12.2 (2022-05-15)¶
Packaging¶
Update tags and description
Documentation¶
Update README
vcspull 1.12.1 (2022-05-02)¶
Bug fixes¶
Pin click at 8+
vcspull 1.12.0 (2022-04-24)¶
Patch branch: v1.12.x
Breaking changes¶
Compatibility¶
vcspull learned
-h
for help (thanks HN 2022-04-11)Python 3.7 and 3.8 dropped (#356)
Branch
v1.11.x
opened for security / bug fixes.--version
learned to show libvcs version--version
learned to accept the-V
flagvcspull sync
accepts config file params via--config
. Before it was only-c
. Assume myrepos.yaml in your path:$ vcspull sync --config myrepos.yaml
Development¶
Publish to PyPI via CI when git tags are pushed
Documentation¶
Sidebar reorganized into sections
Added documentation on fetching developmental releases of libvcs
vcspull 1.11.5 (2022-04-20)¶
Compatibility¶
vcspull sync
accepts config file params via--config
. Before it was only-c
. Assume myrepos.yaml in your path:$ vcspull sync --config myrepos.yaml
(backport from vcspull v1.12.0b22)
vcspull 1.11.4 (2022-04-17)¶
Compatibility¶
vcspull 1.11.3 (2022-04-11)¶
Compatibility¶
vcspull learned
-h
for help (thanks HN 2022-04-11)vcspull learned
-V
for versionvcspull shows libvcs version with
-V
/--version
vcspull 1.11.2 (2022-03-21)¶
Fix¶
Tab-completion for repository names and configurations (retracted in v1.15)
vcspull 1.11.1 (2022-03-12)¶
Security¶
Update libvcs 0.11.0 -> 0.11.1 to patch CVE-2022-21187: mercurial URL injection vulnerability with URLs arguments (libvcs#306)
Development¶
Documentation¶
Move to furo theme
Root:
make start_docs
,make design_docs
docs/:
make start
,make design
vcspull 1.11.0 (2022-02-28)¶
Development¶
CLI moved from
cli.py
->cli/__init__.py
,cli/sync.py
CLI: Default groups removed
Documentation¶
Updates for
vcspull sync
changed in 1.10.0
vcspull 1.10.0 (2022-02-28)¶
Breaking¶
Sync through
vcspull sync
Syncing is no longer ran by default when
vcspull
is typed
Improvements¶
Experimental completion (retracted in v1.15):
Completion for sync:
vcspull sync <tab>
vcspull sync -c <tab> <tab>
Documentation¶
Added completion:
vcspull 1.9.0 (2022-02-26)¶
Compatibility¶
Documentation¶
✨ Renewed
GitLab config importer example script, credit @aschleifer (#336, #337, #341)
These are hosted on the new config generation page.
Rename
examples
page toconfiguration
Theme has been moved to furo
Broken URLs have ben fixed
Added copy paste button next to code snippets
Inline tab examples for configuration and config generators
Development¶
vcspull 1.8.1 (2021-12-05)¶
Update libvcs 0.10.0 to 0.10.1
#313: Update poetry to 1.1
CI: Use poetry 1.1.7 and
install-poetry.py
installerRelock poetry.lock at 1.1 (w/ 1.1.7’s fix)
vcspull 1.8.0 (2021-06-16)¶
#277: Convert to markdown
Update libvcs to 0.10.0
vcspull 1.7.0post0 (2021-06-14)¶
Fix image in README
vcspull 1.7.0 (2021-06-14)¶
#308: Update to libvcs 0.9.0 (python 3.6+ only)
vcspull 1.6.1 (2021-06-14)¶
Remove some python 2.7 compat imports
vcspull 1.6.0 (2021-06-14)¶
#307: Drop python 2.7
vcspull 1.5.0 (2020-08-11)¶
vcspull 1.4.3 (2020-08-05)¶
Bump libvcs to 0.4.4
vcspull 1.4.2 (2020-08-01)¶
Bump libvcs to 0.4.3, fix issue with updating branches that have special characters (e.g. hyphens)
vcspull 1.4.1 (2020-08-01)¶
Bump libvcs to 0.4.2, fixes issues with checking out branches where branch doesn’t exist upstream
vcspull 1.4.0 (2020-08-01)¶
:issue:
300
Update libvcs to 0.4.0, also fixes :issue:298
issue on initial checkout:issue:
301
Move from Travis to GitHub Actions
vcspull 1.3.1 (2020-07-26)¶
:issue:
231
Add updating / merging of remote URLs (via PR :issue:297
)Fix colorama constraint
poetry lockfile: Fix (accidentally pushed lockfile via prerelease version of poetry)
vcspull 1.3.0post2 (2020-07-26)¶
Fix pyproject.toml libvcs pin
vcspull 1.3.0post1 (2020-07-26)¶
Fix pyproject.toml release version
Fixes to contribution docs
vcspull 1.3.0 (2020-07-25)¶
:issue:
257
- Move from Pipfile to poetryRemoved dependency on releases for CHANGES, use plain reStructuredText for now
Loosen constraints for colorama
Update click to 7/8
Add
project_urls
to setup.py
vcspull 1.2.0 (2018-07-08)¶
Sort imports
Add isort package, isort configuration in setup.cfg, and
make isort
task to Makefile.Add
make sync_pipfile
for updating Pipfile dependencies against requirements/*.txt files.Update Pipfile
Package updates
Base / Core dependencies:
kaptan: 0.5.9 to >=0.5.9,<1 (adds Python 3.7 compatibility)
pyyaml: >=3.12,<4 (adds Python 3.7 compatibility)
Docs:
sphinx: 1.7.1 to 1.7.5
alagitpull: 0.0.19 to 0.0.21
releases: 1.4.0 to 1.7.1
Testing:
pytest: 3.4.2 to 3.6.3
vcspull 1.1.0 (2018-03-11)¶
Move to new organization, vcs-python
Fix a bug in libvcs that prevented syncing on Ubuntu 18.04 LTS beta.
Update libvcs to 0.3.0
Various package updates for support infrastructure, including pytest and sphinx
vcspull 1.0.3 (2016-12-19)¶
Update more documentation domain at vcspull.git-pull.com
vcspull 1.0.2 (2016-12-19)¶
Update to new documentation domain at vcspull.git-pull.com
Fix travis tests via
pip install -u mock
in.travis.yaml
.
vcspull 1.0.1 (2016-11-24)¶
:issue:
43
- fix missing test dependency on anaconda by updating libvcsREADME tweaks
vcspull 1.0.0 (2016-09-13)¶
:issue:
41
Transition useslibvcs
_ backend:issue:
41
Transition tests from unittest to pytest:issue:
40
Major API refactorings and removal of unused code, see the api reference for more.:issue:
38
Improve SVN and git support, thanks@jcfr
!:issue:
35
Don’t run mercurial tests ifhg(1)
missing, by@jcfr
:issue:
36
, :issue:37
Documentation updates from@jcfr
:issue:
34
Fix missing mock library, thanks@jfcr
vcspull 0.9.0 (2016-05-26)¶
[cli] [internal]: command line arg parsing now uses click library.
[cli] vcspull will use the beginning part of the argument to determine if its searching by vcs URL, repository name or system path.
[config]
repo
(the longform for the vcs url) is nowurl
.[config] [internal] repos are now passed around in a list of :py:mod:
dict
. :class:vcspull.config.expand_config
has been simplified.[internal] flake8 and sort imports
[internal] [dev] Add
Makefile
forwatch_test
(re-running tests on file change),watch_flake
(re-running flake8 check on changes)[internal] [dev] Move
.tmuxp.yaml
commands to use Makefile[internal] [dev] split up requirements into
requirements/
folder.Drop Python 2.6 support
[internal]
find_config
renamed tofind_config_files
.Rename
get_repos
tofilter_repos
, simplify argument signature.[cli] Experimental support for concurrently synchroniznig repos via :py:mod:
multiprocessing
.[api][internal]: Refactor :class:
vcspull.repo.Repo
factory class into :func:vcspull.repo.create_repo
.[internal]: major internal cleanup of dead code, pep8 style updates.
[git] [tests]: fix git+https remotes #14, add regression tests.
vcspull 0.2.2 (2015-07-10)¶
[internal]: devendorize colorama
vcspull 0.2.1 (2015-06-12)¶
[internal] [tests]: handle
ERROR
in git cloning, add tests. Fixes cases likeERROR: Repository not found
.
vcspull 0.2.0 (2015-05-19)¶
[api] Change the API of :class:
vcspull.repo.base.BaseRepo
and :class:vcspull.repo.Repo
to accept arguments askwargs
[api]: Rename
parent_path
tocwd
.[docs]: Pydoc documentation for
Repo
usage.[docs]: Python API example
vcspull 0.1.1 (2015-05-09)¶
[testing] Fix sniffer on Python 3
[cli] remove redundant message when adding remotes
[docs] add animated screencast preview for ReadTheDocs and README.rst
vcspull 0.1.0 (2015-04-30)¶
[cli]: support for specifying for config file path with
-c
.[cli]: clarify error output when no repositories found
vcspull 0.0.10 (2015-04-08)¶
[cli]: fix message when adding remotes
[internals]: split config-related functions into
config
module.[tests]: consolidate tests from
testsuite.cli
intotestsuite.config
.[tests]: remove stub TestSuites insite of
cli
tests.[tests]: Refactor helpers. Tests should now run much faster.
[cli]: vcspull now checks for configs in
~/.vcspull
(yaml and json files) as well as the standard~/.vcspull.{yaml,json}
files.
vcspull 0.0.9-1 (2015-03-27)¶
[internals]: move to
__about__.py
convention for pulling package data.[internals]: remove extraneous url from stdout in git repositories.
vcspull 0.0.9 (2015-03-25)¶
[dev]: support for tmuxp
before_script
to set up local virtualenv + dependencies.[dev]: Clean up
__init__.py
imports[internals]: move :meth:
update
to :meth:update_dict
inutils
.[cli]:
-d
/--dirmatch
for matching directories, accepts fnmatch’s.[cli]:
-r
/--repomatch
for matching directories, accepts fnmatch’s.[cli]:
-c
/--config
YAML / JSON file of repositories[config/vcs]: Exception for private / ssh GitHub repository URLs and message to change to correct format.
[docs]: Update docs to reflect updates on new commands and how to clone private / privileged GitHub repos.
vcspull 0.0.8-4 (2014-02-06)¶
[cli] Update documentation when no config found to show
yaml
andjson
. Remove mentioning ofconf
.
vcspull 0.0.8-3 (2014-02-06)¶
[logging] #6 - fix issue where log templates would not concatenate correctly.
vcspull 0.0.8-2 (2014-02-05)¶
[packaging] Fix issue where
package_metadata.py
missing fromMANIFEST.in
.
vcspull 0.0.8-1 (2014-02-05)¶
[setup.py] remove history from readme
vcspull 0.0.8 (2014-02-05)¶
Use werkzeug/flask style unit test suites.
[docs] Fix section headings.
[internals] use conventions from tony/cookiecutter-pypackage.
vcspull 0.0.7 (2014-01-07)
New logging system from pypa/pip with support showing current stderr (checkout, pull, cloning) progress.
unicode_literals
,__future__
for python 3 support.
vcspull 0.0.6 (2013-12-03)¶
Renamed to
vcspull
.
vcspull 0.0.5 (2013-11-28)¶
[tests] tests for loading multiple configs, config conflict cases
[internal] fix recursive imports, using explicit importing
[git] handle cli case where git is on a different branch, just fetch repo.
[py3] python 3 support
vcspull 0.0.4 (2013-11-25)¶
[svn] [git] [hg] added functionality for pip’s netloc and vcs functionality.
[docs] update license docs for methods from salt (apache) and pip (mit).
[cli] autocomplete
[config] [tests] Support for expanding environment variables in syntax with
${envvar}
and~
.[cli] Exit with
Ctrl-C
gracefully.
vcspull 0.0.3 (2013-11-23)¶
[docs] [examples] more docs and examples
[internal] remove developer logger message that would show when updating.
[cli] - fixed bug where logger would output message twice
[
pep257
] [pep8
] [logger] updatevcspull.log
module to latest code (fromtmuxp
_ project).
vcspull 0.0.2 (2013-11-23)¶
[tests] Move tests for making directory paths to
test_repo
TestSuite.[tests] [git] more work on remotes with :class:
vcspull.repo.git.GitRepo
.
vcspull 0.0.2 (2013-11-16)¶
[tests] refactor tests modules
[git] add some functions with saltstack to :py:class:
vcspull.repo.git.GitRepo
.[version] reset to 0.1.0 w/o dev tag to begin releases.
vcspull 0.0.1 (2013-11-15)¶
[cli] [tests] #1 for making directories recursively.
[tests] :py:mod:
tempfile
.[cli] [config] remove .ini support
vcspull 0.0.1 (2013-11-09)¶
pep257 to all modules.
Add argcomplete
Move in code patterns from tmuxp. New logger, setup.py, testsuite structure, etc.
vcspull 0.0.1 (2013-10-23)¶
add example
vcspull 0.0.1 (2013-10-17)¶
fix packaging issue, add MANIFEST.in
bump to 0.1.1
vcspull 0.0.1 (2013-10-08)¶
move to semver
vcspull 0.0.1 (2013-10-06)¶
https://github.com/vcs-python/vcspull/compare/a96e723269…a5be723de5
remove virtualenv dep [Done]
remove pip dep [Done]
logging for repo obtain/update/makedir/rev [Done]
logging.notify with alternative format [Done]
removed salt-specific code used for Popen (https://github.com/vcs-python/vcspull/commit/67dbb793e7)