From 8c8608897171a977ac1450b1a14dda1098e82f61 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Fri, 14 Oct 2022 17:43:51 -0500 Subject: [PATCH 01/11] build(deps): Update setuptools --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 7a9475e6e..26468b2e7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -592,7 +592,7 @@ use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "setuptools" -version = "65.4.1" +version = "65.5.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false @@ -1263,8 +1263,8 @@ requests = [ {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, ] setuptools = [ - {file = "setuptools-65.4.1-py3-none-any.whl", hash = "sha256:1b6bdc6161661409c5f21508763dc63ab20a9ac2f8ba20029aaaa7fdb9118012"}, - {file = "setuptools-65.4.1.tar.gz", hash = "sha256:3050e338e5871e70c72983072fe34f6032ae1cdeeeb67338199c2f74e083a80e"}, + {file = "setuptools-65.5.0-py3-none-any.whl", hash = "sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356"}, + {file = "setuptools-65.5.0.tar.gz", hash = "sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17"}, ] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, From 3df6d32451f5e221e50eaa5a25342f781ab28022 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Fri, 14 Oct 2022 17:44:18 -0500 Subject: [PATCH 02/11] build: Add CITATION.cff See also: - https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files - https://citation-file-format.github.io/ --- CITATION.cff | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..5474ca5e7 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,13 @@ +cff-version: 1.2.0 +message: >- + If you use this software, please cite it as below. + NOTE: Change "x.y" by the version you use. If you are unsure about which version + you are using run: `pip show libvcs`." +authors: +- family-names: "Narlock" + given-names: "Tony" + orcid: "https://orcid.org/0000-0002-2568-415X" +title: "libvcs" +type: software +version: x.y +url: "https://libvcs.git-pull.com" From 1e21b19715f92ece3b086a025e07e7f66e981ccb Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 16 Oct 2022 05:56:19 -0500 Subject: [PATCH 03/11] build(deps): Update sphinx 5.2.3 -> 5.3.0 --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 26468b2e7..e39398990 100644 --- a/poetry.lock +++ b/poetry.lock @@ -629,7 +629,7 @@ python-versions = ">=3.6" [[package]] name = "Sphinx" -version = "5.2.3" +version = "5.3.0" description = "Python documentation generator" category = "dev" optional = false @@ -1279,8 +1279,8 @@ soupsieve = [ {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, ] Sphinx = [ - {file = "Sphinx-5.2.3.tar.gz", hash = "sha256:5b10cb1022dac8c035f75767799c39217a05fc0fe2d6fe5597560d38e44f0363"}, - {file = "sphinx-5.2.3-py3-none-any.whl", hash = "sha256:7abf6fabd7b58d0727b7317d5e2650ef68765bbe0ccb63c8795fa8683477eaa2"}, + {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, + {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, ] sphinx-autobuild = [ {file = "sphinx-autobuild-2021.3.14.tar.gz", hash = "sha256:de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05"}, From 31db0409581e5dfa0251f95a0c3901a222d10a1c Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 16 Oct 2022 05:59:06 -0500 Subject: [PATCH 04/11] build(deps): Update types-docutils --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index e39398990..1c580abf9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -846,7 +846,7 @@ python-versions = ">= 3.7" [[package]] name = "types-docutils" -version = "0.19.1" +version = "0.19.1.1" description = "Typing stubs for docutils" category = "dev" optional = false @@ -1352,8 +1352,8 @@ tornado = [ {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, ] types-docutils = [ - {file = "types-docutils-0.19.1.tar.gz", hash = "sha256:7df133b87105af410fc6a992030a70ee9f5a2c2636c5afe7e0de285eb9fdb015"}, - {file = "types_docutils-0.19.1-py3-none-any.whl", hash = "sha256:6b110b17ba4bfbde765b69acca6a6da373094d99a5a3bce1d5a8c9d29b293d89"}, + {file = "types-docutils-0.19.1.1.tar.gz", hash = "sha256:be0a51ba1c7dd215d9d2df66d6845e63c1009b4bbf4c5beb87a0d9745cdba962"}, + {file = "types_docutils-0.19.1.1-py3-none-any.whl", hash = "sha256:a024cada35f0c13cc45eb0b68a102719018a634013690b7fef723bcbfadbd1f1"}, ] typing-extensions = [ {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, From 970dfa664692cabbf9bbed200db4b2d2c345c212 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Mon, 17 Oct 2022 20:37:38 -0500 Subject: [PATCH 05/11] docs(url): Copy basic examples over from modules --- docs/url/index.md | 185 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 141 insertions(+), 44 deletions(-) diff --git a/docs/url/index.md b/docs/url/index.md index 67b412f15..632d12a01 100644 --- a/docs/url/index.md +++ b/docs/url/index.md @@ -2,65 +2,159 @@ # URL Parser - `libvcs.url` -VCS URL parser for python. +We all love {mod}`urllib.parse`, but what about VCS systems? -## Parsing capabilities +Also, things like completions and typings being in demand, what of all these factories? Good python +code, but how to we get editor support and the nice satisfaction of types snapping together? -:::{warning} +If there was a type-friendly structure - like writing our own abstract base class - or a +{mod}`dataclasses` - while also being extensible to patterns and groupings, maybe we could strike a +perfect balance. -The APIs and structures themselves are still unstable APIs. If you are missing a field or use case, -please file an issue. +If we could make it ready-to-go out of the box, but also have framework-like extensibility, it could +satisfy the niche. -::: +## Validate and detect VCS URLs -1. Detect VCS URLs +````{tab} git - - git: {meth}`libvcs.url.git.GitURL.is_valid()` - - hg: {meth}`libvcs.url.hg.HgURL.is_valid()` - - svn: {meth}`libvcs.url.svn.SvnURL.is_valid()` +{meth}`libvcs.url.git.GitURL.is_valid()` -- Parse results of URL to a structure +```python +from libvcs.url.git import GitURL - _Compare to {class}`urllib.parse.ParseResult`_ +>>> GitURL.is_valid(url='https://github.com/vcs-python/libvcs.git') +True +``` + +```python +from libvcs.url.git import GitURL + +>>> GitURL.is_valid(url='git@github.com:vcs-python/libvcs.git') +True +``` + +```` + +````{tab} hg +{meth}`libvcs.url.hg.HgURL.is_valid()` + +```python +>>> HgURL.is_valid(url='https://hg.mozilla.org/mozilla-central/mozilla-central') +True +``` + +```python +>>> HgURL.is_valid(url='hg@hg.mozilla.org:MyProject/project') +True +``` + +```` + +````{tab} svn + +{meth}`libvcs.url.svn.SvnURL.is_valid()` + + +```python +>>> SvnURL.is_valid( +... url='https://svn.project.org/project-central/project-central') +True +``` + +```python +>>> SvnURL.is_valid(url='svn@svn.project.org:MyProject/project') +True +``` + +```` + +## Parse VCS URLs - - {class}`libvcs.url.git.GitURL` - - {class}`libvcs.url.hg.HgURL` - - {class}`libvcs.url.svn.SvnURL` +_Compare to {class}`urllib.parse.ParseResult`_ -3. Convert input VCS to _usable_ URLs +````{tab} git - - git: {meth}`libvcs.url.git.GitURL.to_url()` - - hg: {meth}`libvcs.url.hg.HgURL.to_url()` - - svn: {meth}`libvcs.url.svn.SvnURL.to_url()` +{class}`libvcs.url.git.GitURL` - `pip` knows what a certain URL string means, but `git clone` won't. +```python +>>> GitBaseURL(url='git@github.com:vcs-python/libvcs.git') +GitBaseURL(url=git@github.com:vcs-python/libvcs.git, + user=git, + hostname=github.com, + path=vcs-python/libvcs, + suffix=.git, + rule=core-git-scp) +``` + +```` + +````{tab} hg + +{class}`libvcs.url.hg.HgURL` + +```python +>>> HgBaseURL( +... url="http://hugin.hg.sourceforge.net:8000/hgroot/hugin/hugin") +HgBaseURL(url=http://hugin.hg.sourceforge.net:8000/hgroot/hugin/hugin, + scheme=http, + hostname=hugin.hg.sourceforge.net, + port=8000, + path=hgroot/hugin/hugin, + rule=core-hg) +``` + +```` + +````{tab} svn + +{class}`libvcs.url.svn.SvnURL` + +```python +>>> SvnURL( +... url='svn+ssh://svn.debian.org/svn/aliothproj/path/in/project/repository') +SvnURL(url=svn+ssh://svn.debian.org/svn/aliothproj/path/in/project/repository, + scheme=svn+ssh, + hostname=svn.debian.org, + path=svn/aliothproj/path/in/project/repository, + rule=core-svn) +``` + +```` + +## Export usable URLs + +- git: {meth}`libvcs.url.git.GitURL.to_url()` +- hg: {meth}`libvcs.url.hg.HgURL.to_url()` +- svn: {meth}`libvcs.url.svn.SvnURL.to_url()` + +`pip` knows what a certain URL string means, but `git clone` won't. - e.g. `pip install git+https://github.com/django/django.git@3.2` works great with `pip`. +e.g. `pip install git+https://github.com/django/django.git@3.2` works great with `pip`. - ```console - $ pip install git+https://github.com/django/django.git@3.2 - ... - Successfully installed Django-3.2 +```console +$ pip install git+https://github.com/django/django.git@3.2 +... +Successfully installed Django-3.2 - ``` +``` - but `git clone` can't use that: +but `git clone` can't use that: - ```console - $ git clone git+https://github.com/django/django.git@3.2 # Fail - ... - Cloning into django.git@3.2''...' - git: 'remote-git+https' is not a git command. See 'git --help'. - ``` +```console +$ git clone git+https://github.com/django/django.git@3.2 # Fail +... +Cloning into django.git@3.2''...' +git: 'remote-git+https' is not a git command. See 'git --help'. +``` - It needs something like this: +It needs something like this: - ```console - $ git clone https://github.com/django/django.git --branch 3.2 - ``` +```console +$ git clone https://github.com/django/django.git --branch 3.2 +``` - But before we get there, we don't know if we want a URL yet. We return a structure, e.g. - `GitURL`. +But before we get there, we don't know if we want a URL yet. We return a structure, e.g. `GitURL`. - Common result primitives across VCS, e.g. `GitURL`. @@ -101,7 +195,7 @@ The ambition for this is to build extendable parsers for package-like URLs, e.g. https://docs.npmjs.com/about-packages-and-modules#npm-package-git-url-formats -### Extendability +## Extendability Patterns can be registered. [Similar behavior](https://stackoverflow.com/a/6264214/1396928) exists in {mod}`urlparse` (undocumented). @@ -140,11 +234,14 @@ From there, `GitURL` can be used downstream directly by other projects. In our case, `libvcs`s' own {ref}`cmd` and {ref}`projects`, as well as a {ref}`vcspull:index` configuration, will be able to detect and accept various URL patterns. -## Location objects +### Matchers: Defaults + +When a match occurs, its `defaults` will fill in non-matched groups. + +### Matchers: First wins -Compare to {class}`urllib.parse.ParseResult`. These are structures that break the VCS location into -parse so they can be filled, replaced [^api-unstable], and exported into a URL specifier compatible -with the VCS. +When registering new matchers, higher `weight`s are checked first. If it's a valid regex grouping, +it will be picked. [^api-unstable]: Provisional API only From 658026bc3a6961a092d220a9a4d1ed7e4f6c2bfe Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Tue, 18 Oct 2022 22:40:58 -0500 Subject: [PATCH 06/11] build(deps): Bump pytz and gp-libs (fix for inline tabs + doctest) --- poetry.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1c580abf9..d4c83eee4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -195,7 +195,7 @@ sphinx-basic-ng = "*" [[package]] name = "gp-libs" -version = "0.0.1a16" +version = "0.0.1a17" description = "Internal utilities for projects following git-pull python package spec" category = "dev" optional = false @@ -558,7 +558,7 @@ watchdog = ">=2.0.0" [[package]] name = "pytz" -version = "2022.4" +version = "2022.5" description = "World timezone definitions, modern and historical" category = "dev" optional = false @@ -1041,8 +1041,8 @@ furo = [ {file = "furo-2022.9.29.tar.gz", hash = "sha256:d4238145629c623609c2deb5384f8d036e2a1ee2a101d64b67b4348112470dbd"}, ] gp-libs = [ - {file = "gp-libs-0.0.1a16.tar.gz", hash = "sha256:37e4bb88e09b451bb5bb39dd450b0aa878eb70a8859b7426ea327db7306464b1"}, - {file = "gp_libs-0.0.1a16-py3-none-any.whl", hash = "sha256:07f532df6921b6ac5f512636f7927ffff9ba55011b2e4b301ae8d854cb0c8f91"}, + {file = "gp-libs-0.0.1a17.tar.gz", hash = "sha256:3eaa0bc8587c8d473fbd191fd03dbf08bbdc007db3ae1402102307ca58e50190"}, + {file = "gp_libs-0.0.1a17-py3-none-any.whl", hash = "sha256:5bf5957403a10027965377143f49392343637c2e374af0b3504b04d303aa5c8b"}, ] idna = [ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, @@ -1220,8 +1220,8 @@ pytest-watcher = [ {file = "pytest_watcher-0.2.3-py3-none-any.whl", hash = "sha256:af935963399509a5b0e855740ba7227852f1a7fccfbb1cbb79fa19a445af02d2"}, ] pytz = [ - {file = "pytz-2022.4-py2.py3-none-any.whl", hash = "sha256:2c0784747071402c6e99f0bafdb7da0fa22645f06554c7ae06bf6358897e9c91"}, - {file = "pytz-2022.4.tar.gz", hash = "sha256:48ce799d83b6f8aab2020e369b627446696619e79645419610b9facd909b3174"}, + {file = "pytz-2022.5-py2.py3-none-any.whl", hash = "sha256:335ab46900b1465e714b4fda4963d87363264eb662aab5e65da039c25f1f5b22"}, + {file = "pytz-2022.5.tar.gz", hash = "sha256:c4d88f472f54d615e9cd582a5004d1e5f624854a6a27a6211591c251f22a6914"}, ] PyYAML = [ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, From 7cb649f1c16d1698131ee449f830423fb56fe39a Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Tue, 18 Oct 2022 22:42:53 -0500 Subject: [PATCH 07/11] build(deps): gp-libs v0.0.1a17, support for sphinx-inline-tabs + doctest --- poetry.lock | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/poetry.lock b/poetry.lock index d4c83eee4..0f10a10a9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -906,7 +906,7 @@ test = [] [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "c764564df2760f3fb521b1f7496f8e7f488b8ffac770a7a0450358af7f8b7c4f" +content-hash = "25605ffb86a4cc797055ab15dd96fb037928656a1820a5a9224b94cc968300d2" [metadata.files] alabaster = [ diff --git a/pyproject.toml b/pyproject.toml index b6541048f..1962708d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,7 @@ sphinxext-rediraffe = "*" myst_parser = "*" ### Testing ### -gp-libs = "~0.0.1-alpha.12" +gp-libs = "~0.0.1-alpha.17" pytest = "*" pytest-rerunfailures = "*" pytest-mock = "*" From fb4c054f02e574ae244c2fcd3f2df2eeba9800df Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Tue, 18 Oct 2022 22:46:35 -0500 Subject: [PATCH 08/11] docs(url): doctest fixes --- docs/url/index.md | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/url/index.md b/docs/url/index.md index 632d12a01..e787e0ce0 100644 --- a/docs/url/index.md +++ b/docs/url/index.md @@ -21,14 +21,14 @@ satisfy the niche. {meth}`libvcs.url.git.GitURL.is_valid()` ```python -from libvcs.url.git import GitURL +>>> from libvcs.url.git import GitURL >>> GitURL.is_valid(url='https://github.com/vcs-python/libvcs.git') True ``` ```python -from libvcs.url.git import GitURL +>>> from libvcs.url.git import GitURL >>> GitURL.is_valid(url='git@github.com:vcs-python/libvcs.git') True @@ -40,11 +40,15 @@ True {meth}`libvcs.url.hg.HgURL.is_valid()` ```python +>>> from libvcs.url.hg import HgURL + >>> HgURL.is_valid(url='https://hg.mozilla.org/mozilla-central/mozilla-central') True ``` ```python +>>> from libvcs.url.hg import HgURL + >>> HgURL.is_valid(url='hg@hg.mozilla.org:MyProject/project') True ``` @@ -57,12 +61,16 @@ True ```python +>>> from libvcs.url.svn import SvnURL + >>> SvnURL.is_valid( ... url='https://svn.project.org/project-central/project-central') True ``` ```python +>>> from libvcs.url.svn import SvnURL + >>> SvnURL.is_valid(url='svn@svn.project.org:MyProject/project') True ``` @@ -78,8 +86,10 @@ _Compare to {class}`urllib.parse.ParseResult`_ {class}`libvcs.url.git.GitURL` ```python ->>> GitBaseURL(url='git@github.com:vcs-python/libvcs.git') -GitBaseURL(url=git@github.com:vcs-python/libvcs.git, +>>> from libvcs.url.git import GitURL + +>>> GitURL(url='git@github.com:vcs-python/libvcs.git') +GitURL(url=git@github.com:vcs-python/libvcs.git, user=git, hostname=github.com, path=vcs-python/libvcs, @@ -94,9 +104,11 @@ GitBaseURL(url=git@github.com:vcs-python/libvcs.git, {class}`libvcs.url.hg.HgURL` ```python ->>> HgBaseURL( +>>> from libvcs.url.hg import HgURL + +>>> HgURL( ... url="http://hugin.hg.sourceforge.net:8000/hgroot/hugin/hugin") -HgBaseURL(url=http://hugin.hg.sourceforge.net:8000/hgroot/hugin/hugin, +HgURL(url=http://hugin.hg.sourceforge.net:8000/hgroot/hugin/hugin, scheme=http, hostname=hugin.hg.sourceforge.net, port=8000, @@ -111,13 +123,15 @@ HgBaseURL(url=http://hugin.hg.sourceforge.net:8000/hgroot/hugin/hugin, {class}`libvcs.url.svn.SvnURL` ```python +>>> from libvcs.url.svn import SvnURL + >>> SvnURL( ... url='svn+ssh://svn.debian.org/svn/aliothproj/path/in/project/repository') SvnURL(url=svn+ssh://svn.debian.org/svn/aliothproj/path/in/project/repository, scheme=svn+ssh, hostname=svn.debian.org, path=svn/aliothproj/path/in/project/repository, - rule=core-svn) + rule=pip-url) ``` ```` From 465ad2db36dea5daf922df915da233913b123ea2 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Thu, 20 Oct 2022 16:58:42 -0500 Subject: [PATCH 09/11] docs(README): Note minimum python version more prominently --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4a06c9408..5542327ae 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ detection and parsing of URLs, commanding, and syncing with `git`, `hg`, and `sv ## Overview +_Supports Python 3.9 and above_ + Features for Git, Subversion, and Mercurial: - **Detect and parse** VCS URLs From 278d98bf9712343c8de21796bea21b3343285b11 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 23 Oct 2022 08:20:53 -0500 Subject: [PATCH 10/11] build(deps): Update pytest-watcher --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0f10a10a9..75ffcda12 100644 --- a/poetry.lock +++ b/poetry.lock @@ -547,7 +547,7 @@ setuptools = ">=40.0" [[package]] name = "pytest-watcher" -version = "0.2.3" +version = "0.2.4" description = "Continiously runs pytest on changes in *.py files" category = "dev" optional = false @@ -1216,8 +1216,8 @@ pytest-rerunfailures = [ {file = "pytest_rerunfailures-10.2-py3-none-any.whl", hash = "sha256:d31d8e828dfd39363ad99cd390187bf506c7a433a89f15c3126c7d16ab723fe2"}, ] pytest-watcher = [ - {file = "pytest-watcher-0.2.3.tar.gz", hash = "sha256:1937dd97e72caafd371d8cea7b3d70c88ff4fe35e6cdecb29c41bbdcbf1dcc2b"}, - {file = "pytest_watcher-0.2.3-py3-none-any.whl", hash = "sha256:af935963399509a5b0e855740ba7227852f1a7fccfbb1cbb79fa19a445af02d2"}, + {file = "pytest-watcher-0.2.4.tar.gz", hash = "sha256:f393ec46da9099083445203924d77f507b81e5222b09c949583488057bd13091"}, + {file = "pytest_watcher-0.2.4-py3-none-any.whl", hash = "sha256:fc600a34d7ed126f2b5a884b90cafeda7a443757a082ec17273a96cb10a68025"}, ] pytz = [ {file = "pytz-2022.5-py2.py3-none-any.whl", hash = "sha256:335ab46900b1465e714b4fda4963d87363264eb662aab5e65da039c25f1f5b22"}, From c2e97188997c212d53ad182cfa09470b6be60403 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 23 Oct 2022 08:22:15 -0500 Subject: [PATCH 11/11] Tag v0.18.1 (maintenance release) --- CHANGES | 8 ++++++++ pyproject.toml | 2 +- src/libvcs/__about__.py | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index c26e36ac8..34f2e89f3 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,14 @@ $ pip install --user --upgrade --pre libvcs +## libvcs 0.18.1 (2022-10-23) + +_Maintenance only release, no bug fixes or features_ + +- Documentation improvements +- Development package updates +- Add citation file (CITATION.cff) + ## libvcs 0.18.0 (2022-10-09) ### New features diff --git a/pyproject.toml b/pyproject.toml index 1962708d6..e3d388198 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "libvcs" -version = "0.18.0" +version = "0.18.1" description = "Lite, typed, python utilities for Git, SVN, Mercurial, etc." license = "MIT" authors = ["Tony Narlock "] diff --git a/src/libvcs/__about__.py b/src/libvcs/__about__.py index eb03f50c4..2c8fab72f 100644 --- a/src/libvcs/__about__.py +++ b/src/libvcs/__about__.py @@ -1,7 +1,7 @@ __title__ = "libvcs" __package_name__ = "libvcs" __description__ = "Lite, typed, python utilities for Git, SVN, Mercurial, etc." -__version__ = "0.18.0" +__version__ = "0.18.1" __author__ = "Tony Narlock" __github__ = "https://github.com/vcs-python/libvcs" __docs__ = "https://libvcs.git-pull.com"