sentry-devenv 1.26.0__py3-none-any.whl → 1.27.0__py3-none-any.whl
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.
- devenv/bootstrap.py +15 -5
- devenv/checks/colimaSsh.py +1 -1
- devenv/checks/diskfree.py +2 -2
- devenv/checks/dockerConfig.py +2 -2
- devenv/checks/dockerDesktop.py +3 -3
- devenv/checks/limaDns.py +1 -1
- devenv/constants.py +3 -0
- devenv/doctor.py +24 -5
- devenv/fetch.py +23 -42
- devenv/lib/colima.py +0 -2
- devenv/lib/docker.py +0 -4
- devenv/lib/limactl.py +1 -8
- devenv/update.py +9 -4
- {sentry_devenv-1.26.0.dist-info → sentry_devenv-1.27.0.dist-info}/METADATA +2 -2
- {sentry_devenv-1.26.0.dist-info → sentry_devenv-1.27.0.dist-info}/RECORD +19 -19
- tests/doctor/test_load_checks.py +33 -6
- {sentry_devenv-1.26.0.dist-info → sentry_devenv-1.27.0.dist-info}/WHEEL +0 -0
- {sentry_devenv-1.26.0.dist-info → sentry_devenv-1.27.0.dist-info}/entry_points.txt +0 -0
- {sentry_devenv-1.26.0.dist-info → sentry_devenv-1.27.0.dist-info}/top_level.txt +0 -0
devenv/bootstrap.py
CHANGED
|
@@ -54,9 +54,15 @@ def main(context: Context, argv: Sequence[str] | None = None) -> ExitCode:
|
|
|
54
54
|
except RuntimeError:
|
|
55
55
|
return "Failed to find git. Run xcode-select --install, then re-run bootstrap when done."
|
|
56
56
|
|
|
57
|
+
if constants.LINUX and not (
|
|
58
|
+
shutil.which("docker") and shutil.which("dockerd")
|
|
59
|
+
):
|
|
60
|
+
raise SystemExit("docker engine not installed; required on linux")
|
|
61
|
+
|
|
57
62
|
# even though this is called before colima starts,
|
|
58
63
|
# better to try and potentially (although unlikely) fail earlier rather than later
|
|
59
|
-
|
|
64
|
+
if constants.DARWIN:
|
|
65
|
+
rosetta.ensure()
|
|
60
66
|
|
|
61
67
|
github.add_to_known_hosts()
|
|
62
68
|
|
|
@@ -103,11 +109,15 @@ Updating global tools (at {constants.root}/bin).
|
|
|
103
109
|
"""
|
|
104
110
|
)
|
|
105
111
|
os.makedirs(f"{constants.root}/bin", exist_ok=True)
|
|
106
|
-
|
|
107
|
-
|
|
112
|
+
|
|
113
|
+
if constants.DARWIN:
|
|
114
|
+
# we only install brew and colima-related stuff on macos
|
|
115
|
+
brew.install()
|
|
116
|
+
docker.install_global()
|
|
117
|
+
colima.install_global()
|
|
118
|
+
limactl.install_global()
|
|
119
|
+
|
|
108
120
|
direnv.install()
|
|
109
|
-
colima.install_global()
|
|
110
|
-
limactl.install_global()
|
|
111
121
|
|
|
112
122
|
os.makedirs(context["code_root"], exist_ok=True)
|
|
113
123
|
|
devenv/checks/colimaSsh.py
CHANGED
devenv/checks/diskfree.py
CHANGED
|
@@ -14,11 +14,11 @@ def check() -> tuple[bool, str]:
|
|
|
14
14
|
disk_total, disk_used, disk_free = shutil.disk_usage("/")
|
|
15
15
|
disk_gib_free = disk_free / (1024**3)
|
|
16
16
|
|
|
17
|
-
if disk_gib_free <
|
|
17
|
+
if disk_gib_free < 10:
|
|
18
18
|
return (
|
|
19
19
|
False,
|
|
20
20
|
f"You have less than 10 GiB disk free ({disk_gib_free} GiB free). "
|
|
21
|
-
"You might start to encounter various problems when using
|
|
21
|
+
"You might start to encounter various problems when using docker.",
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
return True, ""
|
devenv/checks/dockerConfig.py
CHANGED
|
@@ -7,8 +7,8 @@ import shutil
|
|
|
7
7
|
from devenv.lib_check.types import checker
|
|
8
8
|
from devenv.lib_check.types import fixer
|
|
9
9
|
|
|
10
|
-
tags: set[str] = {"builtin"}
|
|
11
|
-
name = "correct docker configuration"
|
|
10
|
+
tags: set[str] = {"builtin", "colima"}
|
|
11
|
+
name = "correct docker configuration for colima"
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
@checker
|
devenv/checks/dockerDesktop.py
CHANGED
|
@@ -6,8 +6,8 @@ from devenv.lib import proc
|
|
|
6
6
|
from devenv.lib_check.types import checker
|
|
7
7
|
from devenv.lib_check.types import fixer
|
|
8
8
|
|
|
9
|
-
tags: set[str] = {"builtin"}
|
|
10
|
-
name = "docker desktop shouldn't be running"
|
|
9
|
+
tags: set[str] = {"builtin", "colima"}
|
|
10
|
+
name = "docker desktop shouldn't be running if you're trying to use colima"
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def docker_desktop_is_running() -> bool:
|
|
@@ -20,7 +20,7 @@ def check() -> tuple[bool, str]:
|
|
|
20
20
|
if docker_desktop_is_running():
|
|
21
21
|
return (
|
|
22
22
|
False,
|
|
23
|
-
"Docker Desktop is running.
|
|
23
|
+
"Docker Desktop is running. It cannot be running at the same time as colima.",
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
return True, ""
|
devenv/checks/limaDns.py
CHANGED
devenv/constants.py
CHANGED
|
@@ -4,6 +4,7 @@ import importlib.metadata
|
|
|
4
4
|
import os
|
|
5
5
|
import platform
|
|
6
6
|
import pwd
|
|
7
|
+
import shutil
|
|
7
8
|
import typing
|
|
8
9
|
|
|
9
10
|
troubleshooting_help = """\
|
|
@@ -27,6 +28,8 @@ CI = os.getenv("CI")
|
|
|
27
28
|
SYSTEM = platform.system().lower()
|
|
28
29
|
MACHINE = platform.machine()
|
|
29
30
|
DARWIN = SYSTEM == "darwin"
|
|
31
|
+
# we only support apt-based linuxes
|
|
32
|
+
LINUX = shutil.which("dpkg") is not None
|
|
30
33
|
INTEL_MAC = DARWIN and (MACHINE == "x86_64")
|
|
31
34
|
SHELL_UNSET = "(SHELL unset)"
|
|
32
35
|
DEBUG = os.getenv("SNTY_DEVENV_DEBUG", os.getenv("DEBUG", ""))
|
devenv/doctor.py
CHANGED
|
@@ -14,6 +14,7 @@ from typing import Dict
|
|
|
14
14
|
from typing import List
|
|
15
15
|
|
|
16
16
|
import devenv.checks
|
|
17
|
+
from devenv import constants
|
|
17
18
|
from devenv.lib.context import Context
|
|
18
19
|
from devenv.lib.modules import DevModuleInfo
|
|
19
20
|
from devenv.lib.repository import Repository
|
|
@@ -78,7 +79,9 @@ class Check:
|
|
|
78
79
|
super().__init__()
|
|
79
80
|
|
|
80
81
|
|
|
81
|
-
def load_checks(
|
|
82
|
+
def load_checks(
|
|
83
|
+
repo: Repository, match_tags: set[str], exclude_tags: set[str]
|
|
84
|
+
) -> List[Check]:
|
|
82
85
|
"""
|
|
83
86
|
Load all checks from the checks directory.
|
|
84
87
|
Optionally filter by tags.
|
|
@@ -104,11 +107,15 @@ def load_checks(repo: Repository, match_tags: set[str]) -> List[Check]:
|
|
|
104
107
|
continue
|
|
105
108
|
if match_tags and not check.tags.issuperset(match_tags):
|
|
106
109
|
continue
|
|
110
|
+
if check.tags & exclude_tags:
|
|
111
|
+
continue
|
|
107
112
|
checks.append(check)
|
|
108
113
|
return checks
|
|
109
114
|
|
|
110
115
|
|
|
111
|
-
def load_builtin_checks(
|
|
116
|
+
def load_builtin_checks(
|
|
117
|
+
match_tags: set[str], exclude_tags: set[str]
|
|
118
|
+
) -> List[Check]:
|
|
112
119
|
"""
|
|
113
120
|
Loads builtin checks.
|
|
114
121
|
Optionally filter by tags.
|
|
@@ -126,6 +133,8 @@ def load_builtin_checks(match_tags: set[str]) -> List[Check]:
|
|
|
126
133
|
continue
|
|
127
134
|
if match_tags and not check.tags.issuperset(match_tags):
|
|
128
135
|
continue
|
|
136
|
+
if check.tags & exclude_tags:
|
|
137
|
+
continue
|
|
129
138
|
checks.append(check)
|
|
130
139
|
return checks
|
|
131
140
|
|
|
@@ -193,23 +202,33 @@ def main(context: Context, argv: Sequence[str] | None = None) -> int:
|
|
|
193
202
|
action="append",
|
|
194
203
|
help="Used to match a subset of checks.",
|
|
195
204
|
)
|
|
205
|
+
parser.add_argument(
|
|
206
|
+
"--exclude-tag",
|
|
207
|
+
type=str,
|
|
208
|
+
action="append",
|
|
209
|
+
help="Used to unmatch checks.",
|
|
210
|
+
)
|
|
196
211
|
parser.add_argument(
|
|
197
212
|
"--check-only", action="store_true", help="Do not run fixers."
|
|
198
213
|
)
|
|
199
214
|
args = parser.parse_args(argv)
|
|
200
215
|
|
|
201
216
|
match_tags: set[str] = set(args.tag if args.tag else ())
|
|
217
|
+
exclude_tags: set[str] = set(args.exclude_tag if args.exclude_tag else ())
|
|
218
|
+
|
|
219
|
+
if not constants.DARWIN:
|
|
220
|
+
exclude_tags.add("colima")
|
|
202
221
|
|
|
203
222
|
# First, we load builtin checks. These are not repo specific.
|
|
204
|
-
checks = load_builtin_checks(match_tags)
|
|
223
|
+
checks = load_builtin_checks(match_tags, exclude_tags)
|
|
205
224
|
|
|
206
225
|
# Then we load any repo specific checks if any.
|
|
207
226
|
repo = context.get("repo")
|
|
208
227
|
if repo is not None:
|
|
209
|
-
checks.extend(load_checks(repo, match_tags))
|
|
228
|
+
checks.extend(load_checks(repo, match_tags, exclude_tags))
|
|
210
229
|
|
|
211
230
|
if not checks:
|
|
212
|
-
print(
|
|
231
|
+
print("No checks found.")
|
|
213
232
|
return 1
|
|
214
233
|
|
|
215
234
|
# We run every check on a separate thread, aggregate the results,
|
devenv/fetch.py
CHANGED
|
@@ -6,10 +6,7 @@ import os
|
|
|
6
6
|
import sys
|
|
7
7
|
from collections.abc import Sequence
|
|
8
8
|
|
|
9
|
-
from devenv
|
|
10
|
-
from devenv.constants import DARWIN
|
|
11
|
-
from devenv.constants import EXTERNAL_CONTRIBUTOR
|
|
12
|
-
from devenv.constants import homebrew_bin
|
|
9
|
+
from devenv import constants
|
|
13
10
|
from devenv.lib import proc
|
|
14
11
|
from devenv.lib.context import Context
|
|
15
12
|
from devenv.lib.modules import DevModuleInfo
|
|
@@ -35,33 +32,16 @@ def main(context: Context, argv: Sequence[str] | None = None) -> ExitCode:
|
|
|
35
32
|
"getsentry/sentry",
|
|
36
33
|
"getsentry/getsentry",
|
|
37
34
|
]:
|
|
38
|
-
fetch(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
print("Installing sentry's brew dependencies...")
|
|
42
|
-
if CI:
|
|
43
|
-
# Installing everything from brew takes too much time,
|
|
44
|
-
# and chromedriver cask flakes occasionally. Really all we need to
|
|
45
|
-
# set up the devenv is colima and docker-cli.
|
|
46
|
-
# This is also required for arm64 macOS GHA runners.
|
|
47
|
-
# We manage colima, so just need to install docker + qemu here.
|
|
48
|
-
proc.run(("brew", "install", "docker", "qemu"))
|
|
49
|
-
else:
|
|
50
|
-
proc.run(
|
|
51
|
-
(f"{homebrew_bin}/brew", "bundle"),
|
|
52
|
-
cwd=f"{code_root}/sentry",
|
|
53
|
-
)
|
|
54
|
-
else:
|
|
55
|
-
print(
|
|
56
|
-
"Not on MacOS; assuming you have a docker cli and runtime installed."
|
|
57
|
-
)
|
|
35
|
+
fetch(
|
|
36
|
+
code_root, "getsentry/sentry", auth=constants.CI is None, sync=False
|
|
37
|
+
)
|
|
58
38
|
|
|
59
39
|
proc.run(
|
|
60
40
|
(sys.executable, "-P", "-m", "devenv", "sync"),
|
|
61
41
|
cwd=f"{code_root}/sentry",
|
|
62
42
|
)
|
|
63
43
|
|
|
64
|
-
if not CI and not EXTERNAL_CONTRIBUTOR:
|
|
44
|
+
if not constants.CI and not constants.EXTERNAL_CONTRIBUTOR:
|
|
65
45
|
fetch(code_root, "getsentry/getsentry")
|
|
66
46
|
|
|
67
47
|
print(
|
|
@@ -88,25 +68,24 @@ def fetch(
|
|
|
88
68
|
|
|
89
69
|
if os.path.exists(reporoot):
|
|
90
70
|
print(f"{reporoot} already exists")
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
71
|
+
else:
|
|
72
|
+
print(f"fetching {repo} into {reporoot}")
|
|
73
|
+
|
|
74
|
+
additional_args = (
|
|
75
|
+
# git@ clones forces the use of cloning through SSH which is what we want,
|
|
76
|
+
# though CI must clone open source repos via https (no git authentication)
|
|
77
|
+
(f"git@github.com:{repo}",)
|
|
78
|
+
if auth
|
|
79
|
+
else (
|
|
80
|
+
"--depth",
|
|
81
|
+
"1",
|
|
82
|
+
"--single-branch",
|
|
83
|
+
f"--branch={os.environ['DEVENV_FETCH_BRANCH']}",
|
|
84
|
+
f"https://github.com/{repo}",
|
|
85
|
+
)
|
|
106
86
|
)
|
|
107
|
-
)
|
|
108
87
|
|
|
109
|
-
|
|
88
|
+
proc.run(("git", "-C", coderoot, "clone", *additional_args), exit=True)
|
|
110
89
|
|
|
111
90
|
context_post_fetch = {
|
|
112
91
|
"reporoot": reporoot,
|
|
@@ -117,6 +96,7 @@ def fetch(
|
|
|
117
96
|
# optional post-fetch, meant for recommended but not required defaults
|
|
118
97
|
fp = f"{reporoot}/devenv/post_fetch.py"
|
|
119
98
|
if os.path.exists(fp):
|
|
99
|
+
print(f"running {fp}")
|
|
120
100
|
spec = importlib.util.spec_from_file_location("post_fetch", fp)
|
|
121
101
|
|
|
122
102
|
module = importlib.util.module_from_spec(spec) # type: ignore
|
|
@@ -127,6 +107,7 @@ def fetch(
|
|
|
127
107
|
print(f"warning! failed running {fp} (code {rc})")
|
|
128
108
|
|
|
129
109
|
if sync:
|
|
110
|
+
print("running devenv sync")
|
|
130
111
|
proc.run((sys.executable, "-P", "-m", "devenv", "sync"), cwd=reporoot)
|
|
131
112
|
|
|
132
113
|
|
devenv/lib/colima.py
CHANGED
|
@@ -63,8 +63,6 @@ def install_global() -> None:
|
|
|
63
63
|
"darwin_x86_64_sha256": "791330c62c60389f70e5e1c33a56c35502a9e36e544a418daea0273e539acbf4",
|
|
64
64
|
"darwin_arm64": f"https://github.com/abiosoft/colima/releases/download/{version}/colima-Darwin-arm64",
|
|
65
65
|
"darwin_arm64_sha256": "c266fcb272b39221ef6152d2093bb02a1ebadc26042233ad359e1ae52d5d5922",
|
|
66
|
-
"linux_x86_64": f"https://github.com/abiosoft/colima/releases/download/{version}/colima-Linux-x86_64",
|
|
67
|
-
"linux_x86_64_sha256": "f2d6664a79ff3aa35f0718aac2ba9f6b531772e1464f3b096c1ac2aab404943e",
|
|
68
66
|
}
|
|
69
67
|
|
|
70
68
|
binroot = f"{root}/bin"
|
devenv/lib/docker.py
CHANGED
|
@@ -113,8 +113,6 @@ def install_global() -> None:
|
|
|
113
113
|
"darwin_x86_64_sha256": "1b621d4c9a57ff361811cf29754aafb0c28bc113c70011927af8d73c2c162186",
|
|
114
114
|
"darwin_arm64": f"https://download.docker.com/mac/static/stable/aarch64/docker-{version}.tgz",
|
|
115
115
|
"darwin_arm64_sha256": "9dae125282116146b06eb777c2125ddda6c0468c0b9ad6c72a82edbc6783a77b",
|
|
116
|
-
"linux_x86_64": f"https://download.docker.com/linux/static/stable/x86_64/docker-{version}.tgz",
|
|
117
|
-
"linux_x86_64_sha256": "9b4f6fe406e50f9085ee474c451e2bb5adb119a03591f467922d3b4e2ddf31d3",
|
|
118
116
|
}
|
|
119
117
|
|
|
120
118
|
version_buildx = "v0.22.0"
|
|
@@ -123,8 +121,6 @@ def install_global() -> None:
|
|
|
123
121
|
"darwin_x86_64_sha256": "5221ad6b8acd2283f8fbbeebc79ae4b657e83519ca1c1e4cfbb9405230b3d933",
|
|
124
122
|
"darwin_arm64": f"https://github.com/docker/buildx/releases/download/{version_buildx}/buildx-{version_buildx}.darwin-arm64",
|
|
125
123
|
"darwin_arm64_sha256": "5898c338abb1f673107bc087997dc3cb63b4ea66d304ce4223472f57bd8d616e",
|
|
126
|
-
"linux_x86_64": f"https://github.com/docker/buildx/releases/download/{version_buildx}/buildx-{version_buildx}.linux-amd64",
|
|
127
|
-
"linux_x86_64_sha256": "805195386fba0cea5a1487cf0d47da82a145ea0a792bd3fb477583e2dbcdcc2f",
|
|
128
124
|
}
|
|
129
125
|
|
|
130
126
|
binroot = f"{root}/bin"
|
devenv/lib/limactl.py
CHANGED
|
@@ -37,10 +37,7 @@ def _install(url: str, sha256: str, into: str) -> None:
|
|
|
37
37
|
archive_file = archive.download(url, sha256, dest=f"{tmpd}/download")
|
|
38
38
|
|
|
39
39
|
# the archive from homebrew has a lima/version prefix
|
|
40
|
-
|
|
41
|
-
archive.unpack_strip_n(archive_file, tmpd, n=2)
|
|
42
|
-
else:
|
|
43
|
-
archive.unpack(archive_file, tmpd)
|
|
40
|
+
archive.unpack_strip_n(archive_file, tmpd, n=2)
|
|
44
41
|
|
|
45
42
|
# the archive was atomically placed into tmpd so
|
|
46
43
|
# these are on the same fs and can be atomically moved too
|
|
@@ -75,10 +72,6 @@ def install_global() -> None:
|
|
|
75
72
|
# arm64_sonoma
|
|
76
73
|
"darwin_arm64": "https://ghcr.io/v2/homebrew/core/lima/blobs/sha256:8aeb0a3b7295f0c3e0c2a7a92a798a44397936e5bb732db825aee6da5e762d7a",
|
|
77
74
|
"darwin_arm64_sha256": "8aeb0a3b7295f0c3e0c2a7a92a798a44397936e5bb732db825aee6da5e762d7a",
|
|
78
|
-
# on linux we use github releases since most people are probably not using
|
|
79
|
-
# linuxbrew and the go binary in homebrew links to linuxbrew's ld.so
|
|
80
|
-
"linux_x86_64": f"https://github.com/lima-vm/lima/releases/download/v{version}/lima-{version}-Linux-x86_64.tar.gz",
|
|
81
|
-
"linux_x86_64_sha256": "b109cac29569a4aacab01c588f922ea6c7e2ef06ce9260bbc4c382e475bc3b98",
|
|
82
75
|
}
|
|
83
76
|
|
|
84
77
|
binroot = f"{root}/bin"
|
devenv/update.py
CHANGED
|
@@ -36,11 +36,16 @@ Updating global tools (at {constants.root}/bin).
|
|
|
36
36
|
"""
|
|
37
37
|
)
|
|
38
38
|
os.makedirs(f"{constants.root}/bin", exist_ok=True)
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
|
|
40
|
+
if constants.DARWIN:
|
|
41
|
+
# we only install brew and colima-related stuff on macos
|
|
42
|
+
brew.install()
|
|
43
|
+
docker.install_global()
|
|
44
|
+
colima.install_global()
|
|
45
|
+
limactl.install_global()
|
|
46
|
+
|
|
41
47
|
direnv.install()
|
|
42
|
-
|
|
43
|
-
limactl.install_global()
|
|
48
|
+
|
|
44
49
|
return 0
|
|
45
50
|
|
|
46
51
|
is_global_devenv = sys.executable.startswith(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sentry_devenv
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.27.0
|
|
4
4
|
Summary: Utilities for setting up a Sentry development environment
|
|
5
5
|
Author-email: Joshua Li <joshua.li@sentry.io>, Ian Woodard <ian.woodard@sentry.io>, Buck Evan <buck.evan@sentry.io>
|
|
6
6
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -98,7 +98,7 @@ Everything devenv needs is in `~/.local/share/sentry-devenv`.
|
|
|
98
98
|
- `direnv`
|
|
99
99
|
- we currently rely on direnv and a minimal [`[reporoot]/.envrc`](#direnv) to add `[reporoot]/.devenv/bin` to PATH
|
|
100
100
|
- see [examples](#examples) for .envrc suggestions
|
|
101
|
-
- global tools: `docker` (cli), `colima`
|
|
101
|
+
- global tools (macos only; you are otherwise expected to install docker yourself): `docker` (cli), `colima`
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
### runtime
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
ci/integration/repo/devenv/sync.py,sha256=mZhOcSeA10BQ5DkDBoSbpjc2rHeRVYEZAZ6zse1bo-Y,873
|
|
2
2
|
devenv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
devenv/__main__.py,sha256=O8ROZOx3emX7hhzMD608Ud_Pny_PCy5RsWXwBLhf8Q8,122
|
|
4
|
-
devenv/bootstrap.py,sha256=
|
|
4
|
+
devenv/bootstrap.py,sha256=pFDNhMFrD3keYYsELNVH_VSFF169NtzUDsyle7PHFJw,4359
|
|
5
5
|
devenv/colima.py,sha256=Dk9t6eu2DEoqqkY8xLmgiB96r-6zi3aXcvON3P8h1JQ,1537
|
|
6
|
-
devenv/constants.py,sha256=
|
|
7
|
-
devenv/doctor.py,sha256=
|
|
8
|
-
devenv/fetch.py,sha256
|
|
6
|
+
devenv/constants.py,sha256=T9M0TulSc4BWBAtBunFNL9c3vsMPKscc7Naw6V3ERNQ,1589
|
|
7
|
+
devenv/doctor.py,sha256=oZtTGSHDUhuibf0FUUlqMnCInowHBF5jn5uKWpcxZE4,9225
|
|
8
|
+
devenv/fetch.py,sha256=-jFqlsM3I3h2krqacapYMjYdcioCvAjuo34X73OPtNY,3293
|
|
9
9
|
devenv/main.py,sha256=grOHjy0kUJjeGW8STg-WMneVYlkTRVMoFjNdIgt7sjg,3267
|
|
10
10
|
devenv/pin_gha.py,sha256=t7A5CV1bnYRa4SAikuoJeodHuwV6moIePvhQ1Zdc1eE,2187
|
|
11
11
|
devenv/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
12
|
devenv/pythons.py,sha256=ZcjBrkfmQEkiMP217VyTG48cyteJdYG_hoQ6oFKx_CU,1252
|
|
13
13
|
devenv/sync.py,sha256=B9bvAuI7K-4SqcfHD4_zwKpozAnHWCNOL-IhVOcc3Zg,1254
|
|
14
|
-
devenv/update.py,sha256=
|
|
14
|
+
devenv/update.py,sha256=gPNiHo8YNJbTaoWX-3qNj0-c1nRQXIQEB9WneSCF4Bw,2827
|
|
15
15
|
devenv/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
devenv/checks/colimaSsh.py,sha256=
|
|
17
|
-
devenv/checks/diskfree.py,sha256=
|
|
18
|
-
devenv/checks/dockerConfig.py,sha256=
|
|
19
|
-
devenv/checks/dockerDesktop.py,sha256=
|
|
20
|
-
devenv/checks/limaDns.py,sha256=
|
|
16
|
+
devenv/checks/colimaSsh.py,sha256=NJQ38F32lyAwt7miqP6ZhAKDjmpHjr5s9JYYibeNxmI,1373
|
|
17
|
+
devenv/checks/diskfree.py,sha256=JYQW3WbFqVyQe4AMt53k0w6_2Pj6rk8uu8lFO07CG_E,858
|
|
18
|
+
devenv/checks/dockerConfig.py,sha256=4Lgamx7gZz4LFkdv1gOjTyH6DK6wguG5mitX6-_AyPU,1950
|
|
19
|
+
devenv/checks/dockerDesktop.py,sha256=UVPQ4uC5W4Cm_nCIcjILwpx1NAzu_a0bneIgeMSILt8,1382
|
|
20
|
+
devenv/checks/limaDns.py,sha256=me7yq_qNfpOQIBZaLKar6VnWzUrL7MA94kBhe9hgIK0,1895
|
|
21
21
|
devenv/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
devenv/lib/archive.py,sha256=75MjlDuwHVaazbNUr8vJmqTyl4Jz6KRd_fUcpwvPwec,4710
|
|
23
23
|
devenv/lib/brew.py,sha256=_7recvYh-LnUJC0eKnYK7F8AzGRL5bi_Khv0f_mgrlM,1795
|
|
24
|
-
devenv/lib/colima.py,sha256=
|
|
24
|
+
devenv/lib/colima.py,sha256=G_vVlWg-8nonLtv8S9ymxkV1MUftwlTkGMIRShGX8cA,7649
|
|
25
25
|
devenv/lib/config.py,sha256=5eXYwM44AJ3w2VfVbCDqchYOL1zAjazNcirtM6kxxGw,3344
|
|
26
26
|
devenv/lib/context.py,sha256=4EDImK9pvTp3FqeNigevC9lbJsgdDO9D1t2_Y4NyPlc,207
|
|
27
27
|
devenv/lib/direnv.py,sha256=HDRUaIR0PMAQYiiTaw3gEQuh6Tdb7BUJmV7dBZdPztM,1325
|
|
28
|
-
devenv/lib/docker.py,sha256=
|
|
28
|
+
devenv/lib/docker.py,sha256=z9ifo-ZEp58XbsnQxaMe320gZl56drMe9s0hlYsD8HY,5254
|
|
29
29
|
devenv/lib/fs.py,sha256=IBahQ9fB-o9cK9HipK_L0gso2OVinIDTxFWoeMte9ww,2764
|
|
30
30
|
devenv/lib/gcloud.py,sha256=pJ28_L0gUS1lZna-gIHeJPo9bEfSHVXh63CoRQGyAw8,3552
|
|
31
31
|
devenv/lib/github.py,sha256=AMtcz6gTVKy7qvCP1zTUdHQlnSM32TVaji0aOXJ_F9A,3463
|
|
32
|
-
devenv/lib/limactl.py,sha256=
|
|
32
|
+
devenv/lib/limactl.py,sha256=LWwJEEW0XLGcN7DJMrXX5gDEzoZbcEci-pqZW5F_mV8,3750
|
|
33
33
|
devenv/lib/modules.py,sha256=shoqgja0b-xzXr601Ryz0JOy3Vxbw53I3cRYezVt77g,859
|
|
34
34
|
devenv/lib/node.py,sha256=Rz5A5tep3YEfTfyVnrcAZEZCD6-rmdG4MdgpwRC033E,4119
|
|
35
35
|
devenv/lib/proc.py,sha256=eU7DHIk_66wgkHRmdtKbBKZTa6q4tl9QJbrlnQOQCls,2743
|
|
@@ -52,7 +52,7 @@ tests/checks/test_dockerConfig.py,sha256=R9ed7DfYcCn37__98y3itCVG37BCDbJa0gLA9fQ
|
|
|
52
52
|
tests/doctor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
53
|
tests/doctor/test_attempt_fix.py,sha256=cGUv7-xRKWCizC9cNNqiCp7aa95k3nHUXvRFFuLfJ34,1075
|
|
54
54
|
tests/doctor/test_filter_failing_checks.py,sha256=5L5XdBSyeySwZtJeAR71lbktt3NxkJdUfncKBJPYdAc,1270
|
|
55
|
-
tests/doctor/test_load_checks.py,sha256=
|
|
55
|
+
tests/doctor/test_load_checks.py,sha256=xgBTfQP4D7fif5TI7C7DRPgbXhVCWvJUz7eRtKqz_cw,3691
|
|
56
56
|
tests/doctor/test_prompt_for_fix.py,sha256=dfFcdZnbkboB2-4vk1iyAHj7sCcsvM4AkBarnU8xBs8,1035
|
|
57
57
|
tests/doctor/test_run_checks.py,sha256=t03x6ICUPuceTcHUQKBMRTrr0VzRORv9_hZwcnm2v08,2320
|
|
58
58
|
tests/doctor/devenv/checks/bad_check.py,sha256=uohSVSUMnZmj0eFXEwCOHBzCJN6cdjv2hm6_u9ZMEFw,336
|
|
@@ -74,8 +74,8 @@ tests/lib/test_node.py,sha256=0cmWS-YqTXtQ5p6dk2Hc5qTl8XQGt3CGGfVy1rrsE9k,1082
|
|
|
74
74
|
tests/lib/test_proc.py,sha256=XH6OnxKPSSm3HvDjYHApputMKwgOE8lYqDuK2vK0Z0U,2626
|
|
75
75
|
tests/lib/test_repository.py,sha256=gUi1lkY7bha5WwZ5xcnENOlFYboVV8TFW1lCESvS0VA,787
|
|
76
76
|
tests/lib/test_venv.py,sha256=3XGpINFBkn6Yq4OycsF-Ki4xMWAINt2g69uOHtkDU6k,3266
|
|
77
|
-
sentry_devenv-1.
|
|
78
|
-
sentry_devenv-1.
|
|
79
|
-
sentry_devenv-1.
|
|
80
|
-
sentry_devenv-1.
|
|
81
|
-
sentry_devenv-1.
|
|
77
|
+
sentry_devenv-1.27.0.dist-info/METADATA,sha256=EQ2bo9kzVfE5K9QYiKD42gaR46QVFW3vhpAbaQmEdLg,12387
|
|
78
|
+
sentry_devenv-1.27.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
79
|
+
sentry_devenv-1.27.0.dist-info/entry_points.txt,sha256=StsIuNugcoEU8jsPy6H9ECjzoDzOVKXl1vUaYTIGbzM,44
|
|
80
|
+
sentry_devenv-1.27.0.dist-info/top_level.txt,sha256=dOQExvIA0fj_EQjCrMTS7CCHNH7WZFHxEU0M7LlNcKQ,16
|
|
81
|
+
sentry_devenv-1.27.0.dist-info/RECORD,,
|
tests/doctor/test_load_checks.py
CHANGED
|
@@ -9,12 +9,15 @@ from devenv.lib.repository import Repository
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def test_load_checks_no_checks() -> None:
|
|
12
|
-
assert
|
|
12
|
+
assert (
|
|
13
|
+
doctor.load_checks(Repository("not a real repository"), set(), set())
|
|
14
|
+
== []
|
|
15
|
+
)
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
def test_load_checks_test_checks(capsys: pytest.CaptureFixture[str]) -> None:
|
|
16
19
|
loaded_checks = doctor.load_checks(
|
|
17
|
-
Repository(os.path.join(os.path.dirname(__file__))), set()
|
|
20
|
+
Repository(os.path.join(os.path.dirname(__file__))), set(), set()
|
|
18
21
|
)
|
|
19
22
|
loaded_check_names = [check.name for check in loaded_checks]
|
|
20
23
|
assert len(loaded_check_names) == 5
|
|
@@ -37,7 +40,7 @@ def test_load_checks_test_checks(capsys: pytest.CaptureFixture[str]) -> None:
|
|
|
37
40
|
|
|
38
41
|
def test_load_checks_only_passing_tag() -> None:
|
|
39
42
|
loaded_checks = doctor.load_checks(
|
|
40
|
-
Repository(os.path.join(os.path.dirname(__file__))), {"pass"}
|
|
43
|
+
Repository(os.path.join(os.path.dirname(__file__))), {"pass"}, set()
|
|
41
44
|
)
|
|
42
45
|
loaded_check_names = [check.name for check in loaded_checks]
|
|
43
46
|
assert len(loaded_check_names) == 1
|
|
@@ -46,7 +49,7 @@ def test_load_checks_only_passing_tag() -> None:
|
|
|
46
49
|
|
|
47
50
|
def test_load_checks_only_failing_tag() -> None:
|
|
48
51
|
loaded_checks = doctor.load_checks(
|
|
49
|
-
Repository(os.path.join(os.path.dirname(__file__))), {"fail"}
|
|
52
|
+
Repository(os.path.join(os.path.dirname(__file__))), {"fail"}, set()
|
|
50
53
|
)
|
|
51
54
|
loaded_check_names = [check.name for check in loaded_checks]
|
|
52
55
|
assert len(loaded_check_names) == 2
|
|
@@ -56,7 +59,9 @@ def test_load_checks_only_failing_tag() -> None:
|
|
|
56
59
|
|
|
57
60
|
def test_load_checks_passing_and_failing_tag() -> None:
|
|
58
61
|
loaded_checks = doctor.load_checks(
|
|
59
|
-
Repository(os.path.join(os.path.dirname(__file__))),
|
|
62
|
+
Repository(os.path.join(os.path.dirname(__file__))),
|
|
63
|
+
{"pass", "fail"},
|
|
64
|
+
set(),
|
|
60
65
|
)
|
|
61
66
|
loaded_check_names = [check.name for check in loaded_checks]
|
|
62
67
|
assert len(loaded_check_names) == 0
|
|
@@ -64,7 +69,7 @@ def test_load_checks_passing_and_failing_tag() -> None:
|
|
|
64
69
|
|
|
65
70
|
def test_load_checks_test_tag() -> None:
|
|
66
71
|
loaded_checks = doctor.load_checks(
|
|
67
|
-
Repository(os.path.join(os.path.dirname(__file__))), {"test"}
|
|
72
|
+
Repository(os.path.join(os.path.dirname(__file__))), {"test"}, set()
|
|
68
73
|
)
|
|
69
74
|
loaded_check_names = [check.name for check in loaded_checks]
|
|
70
75
|
assert len(loaded_check_names) == 5
|
|
@@ -73,3 +78,25 @@ def test_load_checks_test_tag() -> None:
|
|
|
73
78
|
assert "failing check with msg" in loaded_check_names
|
|
74
79
|
assert "broken check" in loaded_check_names
|
|
75
80
|
assert "broken fix" in loaded_check_names
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def test_load_checks_exclude_passing_tag() -> None:
|
|
84
|
+
loaded_checks = doctor.load_checks(
|
|
85
|
+
Repository(os.path.join(os.path.dirname(__file__))), {"test"}, {"pass"}
|
|
86
|
+
)
|
|
87
|
+
loaded_check_names = [check.name for check in loaded_checks]
|
|
88
|
+
assert len(loaded_check_names) == 4
|
|
89
|
+
assert "passing check" not in loaded_check_names
|
|
90
|
+
assert "failing check" in loaded_check_names
|
|
91
|
+
assert "failing check with msg" in loaded_check_names
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def test_load_checks_exclude_failing_tag() -> None:
|
|
95
|
+
loaded_checks = doctor.load_checks(
|
|
96
|
+
Repository(os.path.join(os.path.dirname(__file__))), {"test"}, {"fail"}
|
|
97
|
+
)
|
|
98
|
+
loaded_check_names = [check.name for check in loaded_checks]
|
|
99
|
+
assert len(loaded_check_names) == 3
|
|
100
|
+
assert "passing check" in loaded_check_names
|
|
101
|
+
assert "failing check" not in loaded_check_names
|
|
102
|
+
assert "failing check with msg" not in loaded_check_names
|
|
File without changes
|
|
File without changes
|
|
File without changes
|