@@ -13,6 +13,43 @@ $ pip install --user --upgrade --pre libvcs
1313
1414- _ Add your latest changes from PRs here_
1515
16+ ### What's new
17+
18+ - ** Parser** : Experimental VCS URL parsing added ({issue}` 376 ` ):
19+
20+ VCS Parsers return {func}` dataclasses.dataclass ` instances. The new tools support validation,
21+ parsing, mutating and exporting into URLs consumable by the VCS.
22+
23+ ::: {warning}
24+
25+ APIs are unstable and subject to break until we get it right.
26+
27+ :::
28+
29+ - {mod}` libvcs.parse.git ` - Parse git URLs
30+
31+ - {class}` ~libvcs.parse.git.GitURL ` - Parse git URLs
32+ - {meth}` ~libvcs.parse.git.GitURL.is_valid `
33+ - {meth}` ~libvcs.parse.git.GitURL.to_url ` - export ` git clone ` -compatible URL
34+
35+ - {mod}` libvcs.parse.hg `
36+
37+ - {class}` ~libvcs.parse.hg.HgURL ` - Parse Mercurial URLs
38+ - {meth}` ~libvcs.parse.hg.HgURL.is_valid `
39+ - {meth}` ~libvcs.parse.hg.HgURL.to_url ` - export ` hg clone ` -compatible URL
40+
41+ - {mod}` libvcs.parse.svn `
42+
43+ - {class}` ~libvcs.parse.svn.SvnURL ` - Parse Subversion URLs
44+ - {meth}` ~libvcs.parse.svn.SvnURL.is_valid `
45+ - {meth}` ~libvcs.parse.svn.SvnURL.to_url ` - export ` svn checkout ` -compatible URL
46+
47+ Detection can be extended through writing {class}` ~libvcs.parse.base.Matcher ` s and adding them to
48+ the classes' {class}` ~libvcs.parse.base.MatcherRegistry `
49+
50+ You can write your own VCS parser by implementing {class}` ~libvcs.parse.base.URLProtocol ` , but it
51+ would be most efficient if you studied the source of the ` git(1) ` parser to see how it's done.
52+
1653### Breaking changes
1754
1855- {issue}` 379 ` Support for ` git+git ` URLs removed. Pip removed these in 21.0 due to them being
0 commit comments