gitman 3.7__tar.gz → 3.8.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gitman-3.7 → gitman-3.8.1}/PKG-INFO +8 -7
- {gitman-3.7 → gitman-3.8.1}/README.md +2 -2
- {gitman-3.7 → gitman-3.8.1}/gitman/git.py +17 -1
- {gitman-3.7 → gitman-3.8.1}/gitman/models/source.py +7 -3
- {gitman-3.7 → gitman-3.8.1}/pyproject.toml +13 -12
- {gitman-3.7 → gitman-3.8.1}/LICENSE.md +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/__init__.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/__main__.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/cli.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/commands.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/common.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/decorators.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/exceptions.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/hook-gitman.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/models/__init__.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/models/config.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/models/group.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/plugin.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/settings.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/shell.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/__init__.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/conftest.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/files/gdm-custom.yml +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/files/gdm-default.yml +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/files/gitman.yml +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/files/subdir/gitman.yml +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/files/subdir/subsubdir/gitman.yml +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/files/subdir/subsubdir/skip/subsubsubsubdir/gitman.yml +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_cli.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_commands.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_common.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_git.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_models_config.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_models_group.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_models_source.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_plugin.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/test_shell.py +0 -0
- {gitman-3.7 → gitman-3.8.1}/gitman/tests/utils.py +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: gitman
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.8.1
|
|
4
4
|
Summary: A language-agnostic dependency manager using Git.
|
|
5
5
|
License: MIT
|
|
6
|
+
License-File: LICENSE.md
|
|
6
7
|
Keywords: git,version control,build systems,dependency management,submodules
|
|
7
8
|
Author: Jace Browning
|
|
8
9
|
Author-email: jacebrowning@gmail.com
|
|
9
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.10,<3.15
|
|
10
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
12
|
Classifier: Environment :: Console
|
|
12
13
|
Classifier: Intended Audience :: Developers
|
|
@@ -15,18 +16,18 @@ Classifier: Natural Language :: English
|
|
|
15
16
|
Classifier: Operating System :: OS Independent
|
|
16
17
|
Classifier: Programming Language :: Python
|
|
17
18
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
24
|
Classifier: Topic :: Software Development
|
|
24
25
|
Classifier: Topic :: Software Development :: Build Tools
|
|
25
26
|
Classifier: Topic :: Software Development :: Version Control
|
|
26
27
|
Classifier: Topic :: System :: Software Distribution
|
|
27
28
|
Requires-Dist: datafiles (>=2.3.1,<3.0.0)
|
|
28
29
|
Requires-Dist: minilog (>=2.3.1,<3.0.0)
|
|
29
|
-
Requires-Dist: universal-startfile (>=0.2,<0.
|
|
30
|
+
Requires-Dist: universal-startfile (>=0.2,<0.5)
|
|
30
31
|
Project-URL: Documentation, https://gitman.readthedocs.io
|
|
31
32
|
Project-URL: Homepage, https://pypi.org/project/gitman
|
|
32
33
|
Project-URL: Repository, https://github.com/jacebrowning/gitman
|
|
@@ -36,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
36
37
|
|
|
37
38
|
Gitman is a language-agnostic dependency manager using Git. It aims to serve as a submodules replacement and provides advanced options for managing versions of nested Git repositories.
|
|
38
39
|
|
|
39
|
-
[](https://asciinema.org/a/
|
|
40
|
+
[](https://asciinema.org/a/IyeLCRjDXZbsFETz)
|
|
40
41
|
|
|
41
42
|
[](https://github.com/jacebrowning/gitman/actions)
|
|
42
43
|
[](https://ci.appveyor.com/project/jacebrowning/gitman)
|
|
@@ -51,7 +52,7 @@ Gitman is a language-agnostic dependency manager using Git. It aims to serve as
|
|
|
51
52
|
|
|
52
53
|
### Requirements
|
|
53
54
|
|
|
54
|
-
- Python 3.
|
|
55
|
+
- Python 3.10+
|
|
55
56
|
- Git 2.8+ (with [stored credentials](http://gitman.readthedocs.io/en/latest/setup/git/))
|
|
56
57
|
|
|
57
58
|
### Installation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Gitman is a language-agnostic dependency manager using Git. It aims to serve as a submodules replacement and provides advanced options for managing versions of nested Git repositories.
|
|
4
4
|
|
|
5
|
-
[](https://asciinema.org/a/
|
|
5
|
+
[](https://asciinema.org/a/IyeLCRjDXZbsFETz)
|
|
6
6
|
|
|
7
7
|
[](https://github.com/jacebrowning/gitman/actions)
|
|
8
8
|
[](https://ci.appveyor.com/project/jacebrowning/gitman)
|
|
@@ -17,7 +17,7 @@ Gitman is a language-agnostic dependency manager using Git. It aims to serve as
|
|
|
17
17
|
|
|
18
18
|
### Requirements
|
|
19
19
|
|
|
20
|
-
- Python 3.
|
|
20
|
+
- Python 3.10+
|
|
21
21
|
- Git 2.8+ (with [stored credentials](http://gitman.readthedocs.io/en/latest/setup/git/))
|
|
22
22
|
|
|
23
23
|
### Installation
|
|
@@ -12,6 +12,11 @@ from .exceptions import ShellError
|
|
|
12
12
|
from .shell import call, pwd
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
def sanitize_sparse_paths(sparse_paths):
|
|
16
|
+
"""Strip trailing glob patterns for cone mode (e.g. 'src/*' -> 'src')."""
|
|
17
|
+
return [p.rstrip("/*") if p.endswith("/*") else p for p in sparse_paths]
|
|
18
|
+
|
|
19
|
+
|
|
15
20
|
def git(*args, **kwargs):
|
|
16
21
|
return call("git", *args, **kwargs)
|
|
17
22
|
|
|
@@ -69,7 +74,13 @@ def clone(
|
|
|
69
74
|
fd.write("%s/objects" % sparse_paths_repo)
|
|
70
75
|
|
|
71
76
|
git("-C", normpath, "sparse-checkout", "init", "--cone")
|
|
72
|
-
git(
|
|
77
|
+
git(
|
|
78
|
+
"-C",
|
|
79
|
+
normpath,
|
|
80
|
+
"sparse-checkout",
|
|
81
|
+
"set",
|
|
82
|
+
*sanitize_sparse_paths(sparse_paths)
|
|
83
|
+
)
|
|
73
84
|
git("-C", normpath, "fetch", "origin")
|
|
74
85
|
git("-C", normpath, "checkout", rev)
|
|
75
86
|
elif settings.CACHE_DISABLE:
|
|
@@ -245,6 +256,11 @@ def am(patch, _skip=False):
|
|
|
245
256
|
raise ShellError from e
|
|
246
257
|
|
|
247
258
|
|
|
259
|
+
def apply_sparse_checkout(sparse_paths):
|
|
260
|
+
"""Re-apply sparse-checkout paths to an existing working tree."""
|
|
261
|
+
git("sparse-checkout", "set", *sanitize_sparse_paths(sparse_paths))
|
|
262
|
+
|
|
263
|
+
|
|
248
264
|
def update(
|
|
249
265
|
type, repo, path, *, clean=True, fetch=False, rev=None
|
|
250
266
|
): # pylint: disable=redefined-outer-name,unused-argument
|
|
@@ -32,6 +32,8 @@ class Source:
|
|
|
32
32
|
| `scripts` | Shell commands to run after checkout | No | `[]` |
|
|
33
33
|
| `patches` | patches to be applied after checkout | No | `[]` |
|
|
34
34
|
|
|
35
|
+
<br>
|
|
36
|
+
|
|
35
37
|
### Params
|
|
36
38
|
|
|
37
39
|
Params are passed directly to the `clone` command to modify behavior such as:
|
|
@@ -202,6 +204,10 @@ class Source:
|
|
|
202
204
|
if fetch or git.is_fetch_required(self.type, self.rev):
|
|
203
205
|
git.fetch(self.type, self.repo, self.name, rev=self.rev)
|
|
204
206
|
|
|
207
|
+
# Re-apply sparse-checkout paths in case they changed since initial clone
|
|
208
|
+
if self.sparse_paths and self.sparse_paths[0]:
|
|
209
|
+
git.apply_sparse_checkout(self.sparse_paths)
|
|
210
|
+
|
|
205
211
|
# Update the working tree to the desired revision
|
|
206
212
|
git.update(
|
|
207
213
|
self.type, self.repo, self.name, fetch=fetch, clean=clean, rev=self.rev
|
|
@@ -384,9 +390,7 @@ class Source:
|
|
|
384
390
|
|
|
385
391
|
Not a valid repository: {}
|
|
386
392
|
During install you can rebuild a repo with a missing .git directory using the --force option
|
|
387
|
-
""".format(
|
|
388
|
-
path
|
|
389
|
-
)
|
|
393
|
+
""".format(path)
|
|
390
394
|
return exceptions.InvalidRepository(msg)
|
|
391
395
|
|
|
392
396
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
|
|
3
3
|
name = "gitman"
|
|
4
|
-
version = "3.
|
|
4
|
+
version = "3.8.1"
|
|
5
5
|
description = "A language-agnostic dependency manager using Git."
|
|
6
6
|
|
|
7
7
|
license = "MIT"
|
|
@@ -30,11 +30,11 @@ classifiers = [
|
|
|
30
30
|
"Operating System :: OS Independent",
|
|
31
31
|
"Programming Language :: Python",
|
|
32
32
|
"Programming Language :: Python :: 3",
|
|
33
|
-
"Programming Language :: Python :: 3.9",
|
|
34
33
|
"Programming Language :: Python :: 3.10",
|
|
35
34
|
"Programming Language :: Python :: 3.11",
|
|
36
35
|
"Programming Language :: Python :: 3.12",
|
|
37
36
|
"Programming Language :: Python :: 3.13",
|
|
37
|
+
"Programming Language :: Python :: 3.14",
|
|
38
38
|
"Topic :: Software Development",
|
|
39
39
|
"Topic :: Software Development :: Build Tools",
|
|
40
40
|
"Topic :: Software Development :: Version Control",
|
|
@@ -43,46 +43,47 @@ classifiers = [
|
|
|
43
43
|
|
|
44
44
|
[tool.poetry.dependencies]
|
|
45
45
|
|
|
46
|
-
python = "^3.
|
|
46
|
+
python = "^3.10,<3.15"
|
|
47
47
|
|
|
48
48
|
datafiles = "^2.3.1"
|
|
49
49
|
minilog = "^2.3.1"
|
|
50
|
-
universal-startfile = ">=0.2,<0.
|
|
50
|
+
universal-startfile = ">=0.2,<0.5"
|
|
51
51
|
|
|
52
52
|
[tool.poetry.group.dev.dependencies]
|
|
53
53
|
|
|
54
54
|
# Formatters
|
|
55
|
-
black = ">=24.8,<
|
|
56
|
-
isort = ">=5.13,<
|
|
55
|
+
black = ">=24.8,<27.0"
|
|
56
|
+
isort = ">=5.13,<9.0"
|
|
57
57
|
|
|
58
58
|
# Linters
|
|
59
59
|
mypy = "^1.3"
|
|
60
60
|
pydocstyle = "*"
|
|
61
|
-
pylint = "
|
|
61
|
+
pylint = ">=3.3,<4.1"
|
|
62
62
|
types-freezegun = "*"
|
|
63
63
|
types-setuptools = "*"
|
|
64
64
|
|
|
65
65
|
# Testing
|
|
66
|
-
pytest = "
|
|
66
|
+
pytest = ">=8.3,<10.0"
|
|
67
67
|
pytest-cov = ">=5,<8"
|
|
68
|
-
pytest-describe = "
|
|
68
|
+
pytest-describe = ">=2.2,<4.0"
|
|
69
69
|
pytest-expecter = "^3.0"
|
|
70
70
|
pytest-random = "*"
|
|
71
71
|
freezegun = "*"
|
|
72
72
|
|
|
73
73
|
# Reports
|
|
74
|
-
coveragespace = "^6.
|
|
74
|
+
coveragespace = "^6.2"
|
|
75
75
|
|
|
76
76
|
# Documentation
|
|
77
77
|
mkdocs = "^1.2.3"
|
|
78
|
-
mkdocstrings = ">=0.18.1,<
|
|
78
|
+
mkdocstrings = ">=0.18.1,<1.1.0"
|
|
79
|
+
mkdocstrings-python = "*"
|
|
79
80
|
pygments = "^2.15.0"
|
|
80
81
|
jinja2 = "~3.1.6"
|
|
81
82
|
|
|
82
83
|
# Tooling
|
|
83
84
|
pyinstaller = "^6.15"
|
|
84
85
|
sniffer = "*"
|
|
85
|
-
macfsevents = { version = "*", platform = "darwin" }
|
|
86
|
+
macfsevents = { version = "*", platform = "darwin", python = "<3.13" }
|
|
86
87
|
pync = { version = "*", platform = "darwin" }
|
|
87
88
|
rope = ">=0.14,<1.15"
|
|
88
89
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitman-3.7 → gitman-3.8.1}/gitman/tests/files/subdir/subsubdir/skip/subsubsubsubdir/gitman.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|