sentry-devenv 1.17.0__tar.gz → 1.18.0__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.
Files changed (82) hide show
  1. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/PKG-INFO +1 -1
  2. sentry_devenv-1.18.0/devenv/checks/limaDns.py +85 -0
  3. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/colima.py +3 -0
  4. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/colima.py +11 -0
  5. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/pyproject.toml +1 -1
  6. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/sentry_devenv.egg-info/PKG-INFO +1 -1
  7. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/sentry_devenv.egg-info/SOURCES.txt +1 -0
  8. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/README.md +0 -0
  9. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/ci/integration/repo/devenv/sync.py +0 -0
  10. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/__init__.py +0 -0
  11. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/__main__.py +0 -0
  12. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/bootstrap.py +0 -0
  13. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/checks/__init__.py +0 -0
  14. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/checks/credsStore.py +0 -0
  15. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/checks/test.py +0 -0
  16. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/constants.py +0 -0
  17. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/doctor.py +0 -0
  18. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/fetch.py +0 -0
  19. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/__init__.py +0 -0
  20. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/archive.py +0 -0
  21. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/brew.py +0 -0
  22. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/config.py +0 -0
  23. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/context.py +0 -0
  24. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/direnv.py +0 -0
  25. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/docker.py +0 -0
  26. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/fs.py +0 -0
  27. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/gcloud.py +0 -0
  28. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/github.py +0 -0
  29. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/limactl.py +0 -0
  30. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/modules.py +0 -0
  31. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/node.py +0 -0
  32. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/proc.py +0 -0
  33. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/repository.py +0 -0
  34. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/rosetta.py +0 -0
  35. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/tenv.py +0 -0
  36. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib/venv.py +0 -0
  37. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib_check/__init__.py +0 -0
  38. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib_check/brew.py +0 -0
  39. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/lib_check/types.py +0 -0
  40. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/main.py +0 -0
  41. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/pin_gha.py +0 -0
  42. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/py.typed +0 -0
  43. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/pythons.py +0 -0
  44. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/sync.py +0 -0
  45. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/devenv/update.py +0 -0
  46. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/sentry_devenv.egg-info/dependency_links.txt +0 -0
  47. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/sentry_devenv.egg-info/entry_points.txt +0 -0
  48. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/sentry_devenv.egg-info/requires.txt +0 -0
  49. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/sentry_devenv.egg-info/top_level.txt +0 -0
  50. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/setup.cfg +0 -0
  51. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/__init__.py +0 -0
  52. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/checks/__init__.py +0 -0
  53. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/checks/test_credStore.py +0 -0
  54. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/conftest.py +0 -0
  55. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/__init__.py +0 -0
  56. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/bad_check.py +0 -0
  57. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/bad_fix.py +0 -0
  58. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/broken_check.py +0 -0
  59. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/broken_fix.py +0 -0
  60. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/failing_check.py +0 -0
  61. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/failing_check_with_msg.py +0 -0
  62. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/no_check.py +0 -0
  63. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/no_name.py +0 -0
  64. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/no_tags.py +0 -0
  65. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/devenv/checks/passing_check.py +0 -0
  66. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/test_attempt_fix.py +0 -0
  67. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/test_filter_failing_checks.py +0 -0
  68. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/test_load_checks.py +0 -0
  69. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/test_prompt_for_fix.py +0 -0
  70. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/doctor/test_run_checks.py +0 -0
  71. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_archive.py +0 -0
  72. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_brew.py +0 -0
  73. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_direnv.py +0 -0
  74. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_fs.py +0 -0
  75. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_github.py +0 -0
  76. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_proc.py +0 -0
  77. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_repository.py +0 -0
  78. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/lib/test_venv.py +0 -0
  79. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/test_main.py +0 -0
  80. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/test_pythons.py +0 -0
  81. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/test_sync.py +0 -0
  82. {sentry_devenv-1.17.0 → sentry_devenv-1.18.0}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry_devenv
3
- Version: 1.17.0
3
+ Version: 1.18.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
@@ -0,0 +1,85 @@
1
+ from __future__ import annotations
2
+
3
+ import sys
4
+
5
+ from devenv.lib import colima
6
+ from devenv.lib import proc
7
+ from devenv.lib_check.types import checker
8
+ from devenv.lib_check.types import fixer
9
+
10
+ tags: set[str] = {"builtin"}
11
+ name = "limaDns"
12
+
13
+
14
+ @checker
15
+ def check() -> tuple[bool, str]:
16
+ # dns resolution can... stop working if colima's running
17
+ # and wifi changes to some other network that gives macos some
18
+ # weird nameservers
19
+
20
+ status = colima.check()
21
+ if status != colima.ColimaStatus.UP:
22
+ return False, "colima isn't up"
23
+
24
+ try:
25
+ proc.run(
26
+ (
27
+ "colima",
28
+ "exec",
29
+ "--",
30
+ "python3",
31
+ "-Su",
32
+ "-c",
33
+ """
34
+ import socket
35
+
36
+ try:
37
+ socket.getaddrinfo("ghcr.io", None)
38
+ except socket.gaierror as e:
39
+ raise SystemExit(f"failed to resolve ghcr.io: {e}")
40
+ """,
41
+ ),
42
+ stdout=True,
43
+ )
44
+ except RuntimeError as e:
45
+ return False, f"{e}"
46
+
47
+ return True, ""
48
+
49
+
50
+ @fixer
51
+ def fix() -> tuple[bool, str]:
52
+ status = colima.start()
53
+ if status == colima.ColimaStatus.UNHEALTHY:
54
+ return False, "colima started, but it's unhealthy"
55
+
56
+ try:
57
+ proc.run(
58
+ (
59
+ "colima",
60
+ "exec",
61
+ "--",
62
+ "sudo",
63
+ "systemctl",
64
+ "restart",
65
+ "systemd-resolved.service",
66
+ ),
67
+ stdout=True,
68
+ )
69
+ except RuntimeError as e:
70
+ print(
71
+ f"""
72
+ failed to restart the vm's resolved:
73
+ {e}
74
+
75
+ we're going to try restarting colima
76
+ """
77
+ )
78
+ try:
79
+ proc.run(
80
+ (sys.executable, "-P", "-m", "devenv", "colima", "restart")
81
+ )
82
+ except RuntimeError as e:
83
+ return False, f"{e}"
84
+
85
+ return True, ""
@@ -18,6 +18,9 @@ def main(context: Context, argv: Sequence[str] | None = None) -> int:
18
18
 
19
19
  args = parser.parse_args(argv)
20
20
 
21
+ # TODO: in addition to returning 1 we should print colima logs
22
+ # (and/or send to sentry)
23
+
21
24
  if args.command == "start":
22
25
  status = colima.start()
23
26
  if status == colima.ColimaStatus.UNHEALTHY:
@@ -180,6 +180,17 @@ def start(restart: bool = False) -> ColimaStatus:
180
180
  "colima",
181
181
  "start",
182
182
  "--verbose",
183
+ # this effectively makes the vm's resolvectl status use:
184
+ # DNS Servers: 8.8.8.8 1.1.1.1 192.168.5.2
185
+ # https://lima-vm.io/docs/config/network/user/
186
+ # 192.168.5.2 is the host, accessible from the vm
187
+ # sometimes using only the host will result in dns breaking
188
+ # for any number of reasons (public wifi that gives you some weird dns server,
189
+ # tethering, vpn, what have you)
190
+ "--dns",
191
+ "8.8.8.8",
192
+ "--dns",
193
+ "1.1.1.1",
183
194
  # ideally we keep ~ ro, but currently the "default" vm
184
195
  # is shared across repositories, so for ease of use we'll let home rw
185
196
  f"--mount=/var/folders:w,/private/tmp/colima:w,{home}:w",
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sentry_devenv"
7
- version = "1.17.0"
7
+ version = "1.18.0"
8
8
  authors = [
9
9
  { name="Joshua Li", email="joshua.li@sentry.io" },
10
10
  { name="Ian Woodard", email="ian.woodard@sentry.io" },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry_devenv
3
- Version: 1.17.0
3
+ Version: 1.18.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
@@ -17,6 +17,7 @@ devenv/sync.py
17
17
  devenv/update.py
18
18
  devenv/checks/__init__.py
19
19
  devenv/checks/credsStore.py
20
+ devenv/checks/limaDns.py
20
21
  devenv/checks/test.py
21
22
  devenv/lib/__init__.py
22
23
  devenv/lib/archive.py
File without changes
File without changes