sentry-devenv 1.18.0__py3-none-any.whl → 1.19.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.
@@ -8,7 +8,7 @@ from devenv.lib_check.types import checker
8
8
  from devenv.lib_check.types import fixer
9
9
 
10
10
  tags: set[str] = {"builtin"}
11
- name = "credsStore"
11
+ name = "credsStore fix"
12
12
 
13
13
 
14
14
  @checker
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+
3
+ import time
4
+
5
+ from devenv.lib import proc
6
+ from devenv.lib_check.types import checker
7
+ from devenv.lib_check.types import fixer
8
+
9
+ tags: set[str] = {"builtin"}
10
+ name = "docker desktop shouldn't be running"
11
+
12
+
13
+ def docker_desktop_is_running() -> bool:
14
+ procs = proc.run(("/bin/ps", "-Ac", "-o", "comm"), stdout=True)
15
+ return "Docker Desktop" in procs.split("\n")
16
+
17
+
18
+ @checker
19
+ def check() -> tuple[bool, str]:
20
+ if docker_desktop_is_running():
21
+ return (
22
+ False,
23
+ "Docker Desktop is running. We don't support it, and it conflicts with colima.",
24
+ )
25
+
26
+ return True, ""
27
+
28
+
29
+ @fixer
30
+ def fix() -> tuple[bool, str]:
31
+ # regular pkill won't stop the Docker Desktop UI,
32
+ # it'll just spin. the proper way to terminate it
33
+ # without SIGKILL is to use osascript.
34
+ print("Attempting to stop Docker Desktop.")
35
+ try:
36
+ proc.run(("osascript", "-e", 'quit app "Docker Desktop"'))
37
+ except RuntimeError as e:
38
+ return False, f"failed to quit Docker Desktop:\n{e}\n"
39
+
40
+ # osascript doesn't wait to make sure it finishes quitting
41
+ # so let's block for up to 5 secs
42
+ for _ in range(10):
43
+ time.sleep(0.5)
44
+ if not docker_desktop_is_running():
45
+ return True, ""
46
+
47
+ return False, "Docker Desktop is taking too long to quit... try again?"
devenv/checks/limaDns.py CHANGED
@@ -8,7 +8,7 @@ from devenv.lib_check.types import checker
8
8
  from devenv.lib_check.types import fixer
9
9
 
10
10
  tags: set[str] = {"builtin"}
11
- name = "limaDns"
11
+ name = "colima's DNS isn't working"
12
12
 
13
13
 
14
14
  @checker
@@ -19,7 +19,7 @@ def check() -> tuple[bool, str]:
19
19
 
20
20
  status = colima.check()
21
21
  if status != colima.ColimaStatus.UP:
22
- return False, "colima isn't up"
22
+ return False, "Colima isn't running."
23
23
 
24
24
  try:
25
25
  proc.run(
devenv/doctor.py CHANGED
@@ -143,7 +143,7 @@ def run_checks(
143
143
  results: dict[Check, tuple[bool, str]] = {}
144
144
  for check in checks:
145
145
  if check in skip:
146
- print(f"\t⏭️ Skipped {check.name}".expandtabs(4))
146
+ print(f" ⏭️ Skipped {check.name}")
147
147
  continue
148
148
  futures[check] = executor.submit(check.check)
149
149
  for check, future in futures.items():
@@ -162,9 +162,9 @@ def filter_failing_checks(
162
162
  for check, result in results.items():
163
163
  ok, msg = result
164
164
  if ok:
165
- print(f"\t✅ check: {check.name}".expandtabs(4))
165
+ print(f" ✅ check: {check.name}")
166
166
  continue
167
- print(f"\t❌ check: {check.name}{msg}".expandtabs(4))
167
+ print(f" ❌ check: {check.name}\n {msg}")
168
168
  failing_checks.append(check)
169
169
  return failing_checks
170
170
 
@@ -172,7 +172,7 @@ def filter_failing_checks(
172
172
  def prompt_for_fix(check: Check) -> bool:
173
173
  """Prompt the user to attempt a fix."""
174
174
  return input(
175
- f"\t\tDo you want to attempt to fix {check.name}? (Y/n): ".expandtabs(4)
175
+ f" Do you want to attempt to fix {check.name}? (Y/n): "
176
176
  ).lower() in {"y", "yes", ""}
177
177
 
178
178
 
@@ -229,19 +229,19 @@ def main(context: Context, argv: Sequence[str] | None = None) -> int:
229
229
  if args.check_only:
230
230
  return 1
231
231
 
232
- print("\nThe following problems have been identified:")
233
232
  skip: list[Check] = []
233
+ print("\nLet's go through the failures one by one.")
234
234
  for check in failing_checks:
235
- print(f"\t❌ {check.name}".expandtabs(4))
235
+ print(f"❌ {check.name}")
236
236
  # Prompt for fixes one by one, so the user can decide to skip a fix.
237
237
  if prompt_for_fix(check):
238
238
  ok, msg = attempt_fix(check, executor)
239
239
  if ok:
240
- print(f"\t\t✅ fix: {check.name}".expandtabs(4))
240
+ print(f"✅ fix: {check.name}")
241
241
  else:
242
- print(f"\t\t❌ fix: {check.name}{msg}".expandtabs(4))
242
+ print(f"❌ fix: {check.name}{msg}")
243
243
  else:
244
- print(f"\t\t⏭️ Skipping {check.name}".expandtabs(4))
244
+ print(f" ⏭️ Skipping {check.name}")
245
245
  skip.append(check)
246
246
 
247
247
  print("\nChecking that fixes worked as expected...")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry_devenv
3
- Version: 1.18.0
3
+ Version: 1.19.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
@@ -4,7 +4,7 @@ devenv/__main__.py,sha256=O8ROZOx3emX7hhzMD608Ud_Pny_PCy5RsWXwBLhf8Q8,122
4
4
  devenv/bootstrap.py,sha256=VSlS1giUv8fE0K5pZgIO-QBKg5PsaWxirF6G9OPUUhE,4047
5
5
  devenv/colima.py,sha256=Dk9t6eu2DEoqqkY8xLmgiB96r-6zi3aXcvON3P8h1JQ,1537
6
6
  devenv/constants.py,sha256=wl0sRfkNeJL-sML6MG5nS0zU-dwRo1mDPrhUSHHY1YQ,1498
7
- devenv/doctor.py,sha256=VZlcX1GgIEUGTT4PX0phyWSx1UfI3uQbXsANpKVDTj0,8782
7
+ devenv/doctor.py,sha256=tcwXrE2Y7Ued2gAXCXtfFkyXbG9DOi6jVobbq6DnuZs,8663
8
8
  devenv/fetch.py,sha256=MbztGFOzBR4KDPG0TVWcQsA4pGXk61zrQXvh-C9xHuk,3904
9
9
  devenv/main.py,sha256=JYV1GflML2DOrIhbZq_Vn89dFd0hqOKXxDVSd2GQRgY,3264
10
10
  devenv/pin_gha.py,sha256=t7A5CV1bnYRa4SAikuoJeodHuwV6moIePvhQ1Zdc1eE,2187
@@ -13,8 +13,9 @@ devenv/pythons.py,sha256=ZcjBrkfmQEkiMP217VyTG48cyteJdYG_hoQ6oFKx_CU,1252
13
13
  devenv/sync.py,sha256=B9bvAuI7K-4SqcfHD4_zwKpozAnHWCNOL-IhVOcc3Zg,1254
14
14
  devenv/update.py,sha256=CkshQUvmVVblXdjARgWQKXSe7pwMjSMrPR3gDEesX5c,2402
15
15
  devenv/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- devenv/checks/credsStore.py,sha256=eUwtoQ8btFsM8Ir-Vla98MEQFQ5o-OyFu--CSnZr3uY,1149
17
- devenv/checks/limaDns.py,sha256=yX0s63BR9OcX4TWtlywNlaS4NkrlFYj9W_vxX6NAFQg,1860
16
+ devenv/checks/credsStore.py,sha256=G0mqzH62w4_3Tc4VG6tssGHFOUiVgp4RSPlYj86zsUc,1153
17
+ devenv/checks/dockerDesktop.py,sha256=ynt8nNQ2DDT2rJDGZ-g7xxc4HErHJV_iqBqYHQtvA7Q,1343
18
+ devenv/checks/limaDns.py,sha256=cHef2czdYYLvQqiM4bxiYtzYw4UVTIXJPwrGW2Kjpxo,1885
18
19
  devenv/checks/test.py,sha256=AvxoA2W5qTO2ZpoXmjScLiJxXD3Y_limYp5yTjGSZ9U,701
19
20
  devenv/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
21
  devenv/lib/archive.py,sha256=LlVETRsf3J53yY_8sjL4P8plLNEMKoS9G48kfoVoseA,4503
@@ -51,7 +52,7 @@ tests/doctor/test_attempt_fix.py,sha256=cGUv7-xRKWCizC9cNNqiCp7aa95k3nHUXvRFFuLf
51
52
  tests/doctor/test_filter_failing_checks.py,sha256=5L5XdBSyeySwZtJeAR71lbktt3NxkJdUfncKBJPYdAc,1270
52
53
  tests/doctor/test_load_checks.py,sha256=C0uIdjftQZokZNYf003pNFfWuT9Gk1C7ALZzN_JnsWQ,2714
53
54
  tests/doctor/test_prompt_for_fix.py,sha256=dfFcdZnbkboB2-4vk1iyAHj7sCcsvM4AkBarnU8xBs8,1035
54
- tests/doctor/test_run_checks.py,sha256=2sJEvV3FsSa1HCwgVId-Tg8sn1GSR1tn5hcvO72n01U,2321
55
+ tests/doctor/test_run_checks.py,sha256=t03x6ICUPuceTcHUQKBMRTrr0VzRORv9_hZwcnm2v08,2320
55
56
  tests/doctor/devenv/checks/bad_check.py,sha256=uohSVSUMnZmj0eFXEwCOHBzCJN6cdjv2hm6_u9ZMEFw,336
56
57
  tests/doctor/devenv/checks/bad_fix.py,sha256=dQqUumOOw-YhnbweMXYKeYQFVh1CXZzGMDsO73Uv16Y,335
57
58
  tests/doctor/devenv/checks/broken_check.py,sha256=dutNCmaB6COeu8VPMcR_r5hw9Zud0lOXfQG1a5sg8-o,383
@@ -70,8 +71,8 @@ tests/lib/test_github.py,sha256=IMEG2cmRaK_PMJprFE_ZMqPnZ0StwWqgznhhT_zVk3U,4526
70
71
  tests/lib/test_proc.py,sha256=XH6OnxKPSSm3HvDjYHApputMKwgOE8lYqDuK2vK0Z0U,2626
71
72
  tests/lib/test_repository.py,sha256=gUi1lkY7bha5WwZ5xcnENOlFYboVV8TFW1lCESvS0VA,787
72
73
  tests/lib/test_venv.py,sha256=wscU7Enp8fK6o_2HgIT4WwDnvHbKwaKvJhNyJUrDNqk,3262
73
- sentry_devenv-1.18.0.dist-info/METADATA,sha256=2yYNwF0Iz9QTxXw0dnucRef4B0hIpcil88QzTqs6uf4,13622
74
- sentry_devenv-1.18.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
75
- sentry_devenv-1.18.0.dist-info/entry_points.txt,sha256=StsIuNugcoEU8jsPy6H9ECjzoDzOVKXl1vUaYTIGbzM,44
76
- sentry_devenv-1.18.0.dist-info/top_level.txt,sha256=dOQExvIA0fj_EQjCrMTS7CCHNH7WZFHxEU0M7LlNcKQ,16
77
- sentry_devenv-1.18.0.dist-info/RECORD,,
74
+ sentry_devenv-1.19.0.dist-info/METADATA,sha256=I9mqOnTg4iM8ffcjIKb-grNlcw2KrQCQph6WUzMK5fI,13622
75
+ sentry_devenv-1.19.0.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
76
+ sentry_devenv-1.19.0.dist-info/entry_points.txt,sha256=StsIuNugcoEU8jsPy6H9ECjzoDzOVKXl1vUaYTIGbzM,44
77
+ sentry_devenv-1.19.0.dist-info/top_level.txt,sha256=dOQExvIA0fj_EQjCrMTS7CCHNH7WZFHxEU0M7LlNcKQ,16
78
+ sentry_devenv-1.19.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -51,7 +51,7 @@ def test_run_checks_skip(capsys: pytest.CaptureFixture[str]) -> None:
51
51
  [first_check, second_check], ThreadPoolExecutor(), skip=[second_check]
52
52
  ) == {first_check: (True, "")}
53
53
  captured = capsys.readouterr()
54
- assert captured.out == " ⏭️ Skipped failing check\n"
54
+ assert captured.out == " ⏭️ Skipped failing check\n"
55
55
 
56
56
 
57
57
  def test_run_checks_multiple_failing_checks() -> None: