sentry-devenv 1.22.0__tar.gz → 1.22.2__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 (84) hide show
  1. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/PKG-INFO +5 -2
  2. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/README.md +4 -1
  3. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/checks/dockerConfig.py +9 -0
  4. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/update.py +1 -1
  5. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/pyproject.toml +1 -1
  6. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/sentry_devenv.egg-info/PKG-INFO +5 -2
  7. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/checks/test_dockerConfig.py +41 -4
  8. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/ci/integration/repo/devenv/sync.py +0 -0
  9. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/__init__.py +0 -0
  10. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/__main__.py +0 -0
  11. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/bootstrap.py +0 -0
  12. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/checks/__init__.py +0 -0
  13. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/checks/dockerDesktop.py +0 -0
  14. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/checks/limaDns.py +0 -0
  15. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/checks/test.py +0 -0
  16. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/colima.py +0 -0
  17. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/constants.py +0 -0
  18. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/doctor.py +0 -0
  19. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/fetch.py +0 -0
  20. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/__init__.py +0 -0
  21. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/archive.py +0 -0
  22. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/brew.py +0 -0
  23. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/colima.py +0 -0
  24. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/config.py +0 -0
  25. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/context.py +0 -0
  26. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/direnv.py +0 -0
  27. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/docker.py +0 -0
  28. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/fs.py +0 -0
  29. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/gcloud.py +0 -0
  30. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/github.py +0 -0
  31. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/limactl.py +0 -0
  32. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/modules.py +0 -0
  33. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/node.py +0 -0
  34. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/proc.py +0 -0
  35. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/repository.py +0 -0
  36. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/rosetta.py +0 -0
  37. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/tenv.py +0 -0
  38. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/uv.py +0 -0
  39. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib/venv.py +0 -0
  40. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib_check/__init__.py +0 -0
  41. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib_check/brew.py +0 -0
  42. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/lib_check/types.py +0 -0
  43. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/main.py +0 -0
  44. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/pin_gha.py +0 -0
  45. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/py.typed +0 -0
  46. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/pythons.py +0 -0
  47. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/devenv/sync.py +0 -0
  48. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/sentry_devenv.egg-info/SOURCES.txt +0 -0
  49. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/sentry_devenv.egg-info/dependency_links.txt +0 -0
  50. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/sentry_devenv.egg-info/entry_points.txt +0 -0
  51. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/sentry_devenv.egg-info/requires.txt +0 -0
  52. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/sentry_devenv.egg-info/top_level.txt +0 -0
  53. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/setup.cfg +0 -0
  54. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/__init__.py +0 -0
  55. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/checks/__init__.py +0 -0
  56. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/conftest.py +0 -0
  57. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/__init__.py +0 -0
  58. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/bad_check.py +0 -0
  59. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/bad_fix.py +0 -0
  60. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/broken_check.py +0 -0
  61. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/broken_fix.py +0 -0
  62. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/failing_check.py +0 -0
  63. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/failing_check_with_msg.py +0 -0
  64. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/no_check.py +0 -0
  65. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/no_name.py +0 -0
  66. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/no_tags.py +0 -0
  67. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/devenv/checks/passing_check.py +0 -0
  68. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/test_attempt_fix.py +0 -0
  69. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/test_filter_failing_checks.py +0 -0
  70. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/test_load_checks.py +0 -0
  71. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/test_prompt_for_fix.py +0 -0
  72. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/doctor/test_run_checks.py +0 -0
  73. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_archive.py +0 -0
  74. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_brew.py +0 -0
  75. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_direnv.py +0 -0
  76. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_fs.py +0 -0
  77. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_github.py +0 -0
  78. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_proc.py +0 -0
  79. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_repository.py +0 -0
  80. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/lib/test_venv.py +0 -0
  81. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/test_main.py +0 -0
  82. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/test_pythons.py +0 -0
  83. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/test_sync.py +0 -0
  84. {sentry_devenv-1.22.0 → sentry_devenv-1.22.2}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry_devenv
3
- Version: 1.22.0
3
+ Version: 1.22.2
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
@@ -170,7 +170,7 @@ if using uv:
170
170
 
171
171
  `[reporoot]/devenv/sync.py`
172
172
  ```py
173
- from devenv.lib import uv
173
+ from devenv.lib import config, uv
174
174
 
175
175
  def main(context: dict[str, str]) -> int:
176
176
  reporoot = context["reporoot"]
@@ -192,6 +192,9 @@ def main(context: dict[str, str]) -> int:
192
192
 
193
193
  `[reporoot]/devenv/config.ini`
194
194
  ```ini
195
+ [devenv]
196
+ minimum_version = 1.22.1
197
+
195
198
  [uv]
196
199
  darwin_arm64 = https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-apple-darwin.tar.gz
197
200
  darwin_arm64_sha256 = c73af7a4e0bcea9b5b593a0c7e5c025ee78d8be3f7cd60bfeadc8614a16c92ef
@@ -157,7 +157,7 @@ if using uv:
157
157
 
158
158
  `[reporoot]/devenv/sync.py`
159
159
  ```py
160
- from devenv.lib import uv
160
+ from devenv.lib import config, uv
161
161
 
162
162
  def main(context: dict[str, str]) -> int:
163
163
  reporoot = context["reporoot"]
@@ -179,6 +179,9 @@ def main(context: dict[str, str]) -> int:
179
179
 
180
180
  `[reporoot]/devenv/config.ini`
181
181
  ```ini
182
+ [devenv]
183
+ minimum_version = 1.22.1
184
+
182
185
  [uv]
183
186
  darwin_arm64 = https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-apple-darwin.tar.gz
184
187
  darwin_arm64_sha256 = c73af7a4e0bcea9b5b593a0c7e5c025ee78d8be3f7cd60bfeadc8614a16c92ef
@@ -32,6 +32,14 @@ def check() -> tuple[bool, str]:
32
32
  "cliPluginsExtraDirs exists, which overshadows the default plugin path",
33
33
  )
34
34
 
35
+ # Ensure the current context is set to colima
36
+ current_context = config.get("currentContext", "")
37
+ if current_context != "colima":
38
+ return (
39
+ False,
40
+ f"currentContext is '{current_context}', should be 'colima'",
41
+ )
42
+
35
43
  return True, ""
36
44
 
37
45
 
@@ -43,6 +51,7 @@ def fix() -> tuple[bool, str]:
43
51
 
44
52
  config.pop("credsStore", None)
45
53
  config.pop("cliPluginsExtraDirs", None)
54
+ config["currentContext"] = "colima"
46
55
 
47
56
  with open(os.path.expanduser("~/.docker/config.json"), "w") as f:
48
57
  json.dump(config, f)
@@ -55,7 +55,7 @@ Updating global tools (at {constants.root}/bin).
55
55
  if args.version is None:
56
56
  version = "sentry-devenv"
57
57
  else:
58
- version = "sentry-devenv=={args.version}"
58
+ version = f"sentry-devenv=={args.version}"
59
59
 
60
60
  proc.run(
61
61
  (f"{constants.root}/venv/bin/pip", "install", "-U", version),
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sentry_devenv"
7
- version = "1.22.0"
7
+ version = "1.22.2"
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.22.0
3
+ Version: 1.22.2
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
@@ -170,7 +170,7 @@ if using uv:
170
170
 
171
171
  `[reporoot]/devenv/sync.py`
172
172
  ```py
173
- from devenv.lib import uv
173
+ from devenv.lib import config, uv
174
174
 
175
175
  def main(context: dict[str, str]) -> int:
176
176
  reporoot = context["reporoot"]
@@ -192,6 +192,9 @@ def main(context: dict[str, str]) -> int:
192
192
 
193
193
  `[reporoot]/devenv/config.ini`
194
194
  ```ini
195
+ [devenv]
196
+ minimum_version = 1.22.1
197
+
195
198
  [uv]
196
199
  darwin_arm64 = https://github.com/astral-sh/uv/releases/download/0.7.21/uv-aarch64-apple-darwin.tar.gz
197
200
  darwin_arm64_sha256 = c73af7a4e0bcea9b5b593a0c7e5c025ee78d8be3f7cd60bfeadc8614a16c92ef
@@ -24,12 +24,14 @@ def fake_config(tmp_path: pathlib.Path) -> Generator[pathlib.Path]:
24
24
 
25
25
 
26
26
  def test_no_credsStore_ok(fake_config: pathlib.Path) -> None:
27
- fake_config.write_text("{}")
27
+ fake_config.write_text('{"currentContext": "colima"}')
28
28
  assert dockerConfig.check() == (True, "")
29
29
 
30
30
 
31
31
  def test_binary_ok(fake_config: pathlib.Path) -> None:
32
- fake_config.write_text('{"credsStore": "example"}')
32
+ fake_config.write_text(
33
+ '{"credsStore": "example", "currentContext": "colima"}'
34
+ )
33
35
  with mock.patch.object(shutil, "which", return_value="/fake/exe"):
34
36
  assert dockerConfig.check() == (True, "")
35
37
 
@@ -47,10 +49,45 @@ def test_binary_missing(fake_config: pathlib.Path, name: str) -> None:
47
49
  def test_fix_credsStore(fake_config: pathlib.Path) -> None:
48
50
  fake_config.write_text('{"credsStore": "bad"}')
49
51
  assert dockerConfig.fix() == (True, "")
50
- assert fake_config.read_text() == "{}"
52
+ assert fake_config.read_text() == '{"currentContext": "colima"}'
51
53
 
52
54
 
53
55
  def test_fix_cliPluginsExtraDirs(fake_config: pathlib.Path) -> None:
54
56
  fake_config.write_text('{"cliPluginsExtraDirs": ["foo/"]}')
55
57
  assert dockerConfig.fix() == (True, "")
56
- assert fake_config.read_text() == "{}"
58
+ assert fake_config.read_text() == '{"currentContext": "colima"}'
59
+
60
+
61
+ def test_currentContext_missing(fake_config: pathlib.Path) -> None:
62
+ fake_config.write_text('{"auths": {}}')
63
+ assert dockerConfig.check() == (
64
+ False,
65
+ "currentContext is '', should be 'colima'",
66
+ )
67
+
68
+
69
+ def test_currentContext_wrong(fake_config: pathlib.Path) -> None:
70
+ fake_config.write_text('{"currentContext": "desktop"}')
71
+ assert dockerConfig.check() == (
72
+ False,
73
+ "currentContext is 'desktop', should be 'colima'",
74
+ )
75
+
76
+
77
+ def test_currentContext_correct(fake_config: pathlib.Path) -> None:
78
+ fake_config.write_text('{"currentContext": "colima"}')
79
+ assert dockerConfig.check() == (True, "")
80
+
81
+
82
+ def test_fix_currentContext_missing(fake_config: pathlib.Path) -> None:
83
+ fake_config.write_text('{"auths": {}}')
84
+ assert dockerConfig.fix() == (True, "")
85
+ assert (
86
+ fake_config.read_text() == '{"auths": {}, "currentContext": "colima"}'
87
+ )
88
+
89
+
90
+ def test_fix_currentContext_wrong(fake_config: pathlib.Path) -> None:
91
+ fake_config.write_text('{"currentContext": "docker-desktop"}')
92
+ assert dockerConfig.fix() == (True, "")
93
+ assert fake_config.read_text() == '{"currentContext": "colima"}'
File without changes