To install the unreleased vcspull version, see developmental releases.
pip:
$ pip install --user --upgrade --pre vcspullpipx:
$ pipx install --suffix=@next 'vcspull' --pip-args '\--pre' --force
// Usage: vcspull@next sync [config]- Notes on upcoming releases will be added here
- Python 3.7 Dropped (#421)
- libvcs: Bumped from 0.22.2 -> 0.24.0 (#419)
- Git Remote URLs: Fix bug that would cause git remotes with
@to be chopped off after the protocol (#419, fixes #425)
-
Refactor of two testsuites to used
NamedTupleparametrization (#423):- test_config_variations
- test_updating_remote
Maintenance only, no bug fixes, or new features
-
Code quality improved via ruff rules (#417)
This includes fixes made by hand, and with ruff's automated fixes. With the expanded set of linting rules (which include import sorting) - ruff runs are still instant when checking the whole codebase.
Maintenance only, no bug fixes, or new features
-
Add back
blackfor formattingThis is still necessary to accompany
ruff, until it replaces black.
Maintenance only, no bug fixes or features
-
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
- Refactor
.typesimports to not requiretyping-extensionson production builds (fixes #412 via #414, thank you for the report @Jasha10)
Maintenance only, no bug fixes or features
-
Update mypy to 1.2.0
-
libvcs: 0.21.1 -> 0.21.2
Typing update only
-
libvcs: 0.21.0 -> 0.21.1
This removes even more
typing-extensionsruntime dependencies from production builds.
-
libvcs: 0.20.0 -> 0.21.0
This removes the
typing-extensionsrequirement from production builds.
- mypy: Add
--stricttypings (#386)
-
Bump libvcs 0.19.1 -> 0.20.0
Adds python 3.11 support
Maintenance release, no features or fixes
-
Bump libvcs 0.19.0 -> 0.19.1
Doc fixes and test improvements
Maintenance release, no features or fixes
-
Bump libvcs 0.18.1 -> 0.19.0 (#408)
Refactor of sync and commands. Syncing now uses commands instead of invoking directly through
run().
Maintenance release, no features or fixes
-
sync(): Renamerepo_termstorepo_patterns(#406) -
Bump libvcs 0.17.0 to 0.18.1
- 0.18.0 includes support for URL Matcher weights
- Doc fix for sphinx-argparse CLI generation
vcspullandvcspull syncCopy updates and metavar updates (#404)
vcspull: Add usage examples to CLI output
vcspull sync: Fix showing of help when no arguments passed (#405)
-
File completions for
-c/--configfiles (#403)After updating, you can re-run shtab's setup (see completions page) completion of:
$ vcspull sync -c [tab]$ vcspull sync --config [tab]
- Fix readme example for syncing repositories
- Updates for migrations page
- Add back page on completions
- Capitalization fixes and help text updates
- Add missing pyyaml dependency (needed after #397's transition to
ConfigReader)
- Fix help text for
vcspull syncarguments and flags
Maintenance release, no features or fixes
- Move from click to {mod}
argparse(#400)
- Drop click dependency (#400)
Maintenance release, no features or fixes
-
Move test fixtures over to libvcs's pytest plugin (#398)
-
Move conftest.py to root directory (#399)
-
Add
ConfigReader: Our clean, typed parser for raw strings and files (#397)This is our shiny, new, 200-line, doctested and typed parser that replaces
kaptan.
- Drop kaptan dependency (#397)
-
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/-xUsage:
$ vcspull sync --exit-on-error grako djangoPrint 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)
See also vcs-python/libvcs#425
-
-
Move to
src/directory structure (#382) -
libvcs: Update to 0.17.x (#373)
-
mypy:
- Basic mypy annotations (#373)
mypy --strictcompliant (#386)
-
Remove
.pre-commit-config.yaml: Let's not automate what the contributor could / should do themselves. -
Add flake8-bugbear (#379)
-
Add flake8-comprehensions (#380)
- Add CLI tests (#387)
- Render changelog in sphinx-autoissues (#378)
- Fix cloning of mercurial repositories
-
CI speedups (#383)
- Split out release to separate job so the PyPI Upload docker image isn't pulled on normal runs
- Clean up CodeQL
-
Upgraded poetry 1.1.x to 1.2.x
-
Remove
MANIFEST.inRedundant since poetry has pyproject.toml with
include -
Remove unused
.tmuxp-before-script.sh, which was used as abefore_scriptin.tmuxp.yaml -
Move
.coveragercintopyproject.toml(#384)
- Fix cloning of mercurial repositories (backported fix from libvcs 0.13.x)
- Update tags and description
- Update README
- Pin click at 8+
Patch branch: v1.12.x
-
Config location uses
XDG_CONFIG_HOMEfrom XDG Base Directory, (#367).Old path:
~/.vcspullNew path:
XDG_CONFIG_HOME, usually~/.config/vcspull -
Override config directory via
VCSPULL_CONFIGDIR(#367) -
Switch from
strtopathlib.Path(#364) -
Requires click 8+
-
Allow click 8.1.x (#372)
-
vcspull learned
-hfor help (thanks HN 2022-04-11) -
Python 3.7 and 3.8 dropped (#356)
Branch
v1.11.xopened for security / bug fixes. -
--versionlearned to show libvcs version -
--versionlearned to accept the-Vflag -
vcspull syncaccepts config file params via--config. Before it was only-c. Assume myrepos.yaml in your path:$ vcspull sync --config myrepos.yaml
- Publish to PyPI via CI when git tags are pushed
- Sidebar reorganized into sections
- Added documentation on fetching developmental releases of libvcs
-
vcspull syncaccepts 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)
- Allow click 8.1.x (backport of #372)
- vcspull learned
-hfor help (thanks HN 2022-04-11) - vcspull learned
-Vfor version - vcspull shows libvcs version with
-V/--version
- Tab-completion for repository names and configurations (retracted in v1.15)
- Update libvcs 0.11.0 -> 0.11.1 to patch CVE-2022-21187: mercurial URL injection vulnerability with URLs arguments (libvcs#306)
- Run pyupgrade formatting (#353)
- Tests: Move from pytest
tmp_dir(py.path.local) totmp_path(pathlib.Path)
- Move to furo theme
- Root:
make start_docs,make design_docs - docs/:
make start,make design
- CLI moved from
cli.py->cli/__init__.py,cli/sync.py - CLI: Default groups removed
- Updates for
vcspull syncchanged in 1.10.0
-
Sync through
vcspull syncSyncing is no longer ran by default when
vcspullis typed
-
Experimental completion (retracted in v1.15):
-
Completion for sync:
vcspull sync <tab>vcspull sync -c <tab> <tab>
-
- Added completion:
- Drop Python 3.6 (#329)
- Add Python 3.10 (#329)
✨ Renewed
-
GitLab config importer example script, credit @aschleifer (#336, #337, #341)
These are hosted on the new config generation page.
-
Rename
examplespage 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
- CI: Use poetry 1.1.12 and new
install-poetry.pyinstall location (#329)
- Update libvcs 0.10.0 to 0.10.1
- #313: Update poetry to 1.1
- CI: Use poetry 1.1.7 and
install-poetry.pyinstaller - Relock poetry.lock at 1.1 (w/ 1.1.7's fix)
- CI: Use poetry 1.1.7 and
- #277: Convert to markdown
- Update libvcs to 0.10.0
- Fix image in README
- #308: Update to libvcs 0.9.0 (python 3.6+ only)
- Remove some python 2.7 compat imports
- #307: Drop python 2.7
- #304, #299 (tests) - Fix adding of remotes
- #303 - Overhaul docs and packaging
- #303 - Add docs for CLI via sphinx-click
- Bump libvcs to 0.4.4
- Bump libvcs to 0.4.3, fix issue with updating branches that have special characters (e.g. hyphens)
- Bump libvcs to 0.4.2, fixes issues with checking out branches where branch doesn't exist upstream
- :issue:
300Update libvcs to 0.4.0, also fixes :issue:298issue on initial checkout - :issue:
301Move from Travis to GitHub Actions
- :issue:
231Add updating / merging of remote URLs (via PR :issue:297) - Fix colorama constraint
- poetry lockfile: Fix (accidentally pushed lockfile via prerelease version of poetry)
- Fix pyproject.toml libvcs pin
- Fix pyproject.toml release version
- Fixes to contribution docs
- :issue:
257- Move from Pipfile to poetry - Removed dependency on releases for CHANGES, use plain reStructuredText for now
- Loosen constraints for colorama
- Update click to 7/8
- Add
project_urlsto setup.py
-
Sort imports
-
Add isort package, isort configuration in setup.cfg, and
make isorttask to Makefile. -
Add
make sync_pipfilefor 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
- 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
- Update more documentation domain at vcspull.git-pull.com
- Update to new documentation domain at vcspull.git-pull.com
- Fix travis tests via
pip install -u mockin.travis.yaml.
- :issue:
43- fix missing test dependency on anaconda by updating libvcs - README tweaks
- :issue:
41Transition useslibvcs_ backend - :issue:
41Transition tests from unittest to pytest - :issue:
40Major API refactorings and removal of unused code, see the api reference for more. - :issue:
38Improve SVN and git support, thanks@jcfr! - :issue:
35Don't run mercurial tests ifhg(1)missing, by@jcfr - :issue:
36, :issue:37Documentation updates from@jcfr - :issue:
34Fix missing mock library, thanks@jfcr
- [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_confighas been simplified. - [internal] flake8 and sort imports
- [internal] [dev] Add
Makefileforwatch_test(re-running tests on file change),watch_flake(re-running flake8 check on changes) - [internal] [dev] Move
.tmuxp.yamlcommands to use Makefile - [internal] [dev] split up requirements into
requirements/folder. - Drop Python 2.6 support
- [internal]
find_configrenamed tofind_config_files. - Rename
get_repostofilter_repos, simplify argument signature. - [cli] Experimental support for concurrently synchroniznig repos via
:py:mod:
multiprocessing. - [api][internal]: Refactor :class:
vcspull.repo.Repofactory 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.
- [internal]: devendorize colorama
- [internal] [tests]: handle
ERRORin git cloning, add tests. Fixes cases likeERROR: Repository not found.
- [api] Change the API of :class:
vcspull.repo.base.BaseRepoand :class:vcspull.repo.Repoto accept arguments askwargs - [api]: Rename
parent_pathtocwd. - [docs]: Pydoc documentation for
Repousage. - [docs]: Python API example
- [testing] Fix sniffer on Python 3
- [cli] remove redundant message when adding remotes
- [docs] add animated screencast preview for ReadTheDocs and README.rst
- [cli]: support for specifying for config file path with
-c. - [cli]: clarify error output when no repositories found
- [cli]: fix message when adding remotes
- [internals]: split config-related functions into
configmodule. - [tests]: consolidate tests from
testsuite.cliintotestsuite.config. - [tests]: remove stub TestSuites insite of
clitests. - [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.
- [internals]: move to
__about__.pyconvention for pulling package data. - [internals]: remove extraneous url from stdout in git repositories.
- [dev]: support for tmuxp
before_scriptto set up local virtualenv + dependencies. - [dev]: Clean up
__init__.pyimports - [internals]: move :meth:
updateto :meth:update_dictinutils. - [cli]:
-d/--dirmatchfor matching directories, accepts fnmatch's. - [cli]:
-r/--repomatchfor matching directories, accepts fnmatch's. - [cli]:
-c/--configYAML / 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.
- [cli] Update documentation when no config found to show
yamlandjson. Remove mentioning ofconf.
- [logging] #6 - fix issue where log templates would not concatenate correctly.
- [packaging] Fix issue where
package_metadata.pymissing fromMANIFEST.in.
- [setup.py] remove history from readme
- 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.
- Renamed to
vcspull.
- [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
- [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-Cgracefully.
- [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.logmodule to latest code (fromtmuxp_ project).
- [tests] Move tests for making directory paths to
test_repoTestSuite. - [tests] [git] more work on remotes with :class:
vcspull.repo.git.GitRepo.
- [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.
- [cli] [tests] #1 for making directories recursively.
- [tests] :py:mod:
tempfile. - [cli] [config] remove .ini support
- pep257 to all modules.
- Add argcomplete
- Move in code patterns from tmuxp. New logger, setup.py, testsuite structure, etc.
- add example
- fix packaging issue, add MANIFEST.in
- bump to 0.1.1
- move to semver
- 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)