sentry-devenv 1.23.0__tar.gz → 1.25.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.
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/PKG-INFO +5 -6
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/README.md +4 -5
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/colima.py +4 -3
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/node.py +50 -53
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/pyproject.toml +1 -1
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/sentry_devenv.egg-info/PKG-INFO +5 -6
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/sentry_devenv.egg-info/SOURCES.txt +1 -0
- sentry_devenv-1.25.0/tests/lib/test_node.py +37 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/ci/integration/repo/devenv/sync.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/__init__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/__main__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/bootstrap.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/checks/__init__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/checks/colimaSsh.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/checks/dockerConfig.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/checks/dockerDesktop.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/checks/limaDns.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/checks/test.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/colima.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/constants.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/doctor.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/fetch.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/__init__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/archive.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/brew.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/config.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/context.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/direnv.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/docker.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/fs.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/gcloud.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/github.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/limactl.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/modules.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/proc.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/repository.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/rosetta.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/tenv.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/uv.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib/venv.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib_check/__init__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib_check/brew.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/lib_check/types.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/main.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/pin_gha.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/py.typed +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/pythons.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/sync.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/devenv/update.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/sentry_devenv.egg-info/dependency_links.txt +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/sentry_devenv.egg-info/entry_points.txt +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/sentry_devenv.egg-info/requires.txt +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/sentry_devenv.egg-info/top_level.txt +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/setup.cfg +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/__init__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/checks/__init__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/checks/test_dockerConfig.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/conftest.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/__init__.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/bad_check.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/bad_fix.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/broken_check.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/broken_fix.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/failing_check.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/failing_check_with_msg.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/no_check.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/no_name.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/no_tags.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/passing_check.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/test_attempt_fix.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/test_filter_failing_checks.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/test_load_checks.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/test_prompt_for_fix.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/test_run_checks.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_archive.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_brew.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_direnv.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_fs.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_github.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_proc.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_repository.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/lib/test_venv.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/test_main.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/test_pythons.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/test_sync.py +0 -0
- {sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sentry_devenv
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.25.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
|
|
@@ -335,16 +335,16 @@ def main(context: dict[str, str]) -> int:
|
|
|
335
335
|
cfg["node"][f"{constants.SYSTEM_MACHINE}_sha256"],
|
|
336
336
|
reporoot,
|
|
337
337
|
)
|
|
338
|
-
|
|
338
|
+
|
|
339
|
+
node.install_pnpm(reporoot)
|
|
339
340
|
|
|
340
341
|
print("installing node dependencies...")
|
|
341
342
|
proc.run(
|
|
342
343
|
(
|
|
343
|
-
"
|
|
344
|
+
f"{reporoot}/.devenv/bin/pnpm",
|
|
344
345
|
"install",
|
|
345
346
|
"--frozen-lockfile",
|
|
346
|
-
"--
|
|
347
|
-
"--non-interactive",
|
|
347
|
+
"--reporter=append-only",
|
|
348
348
|
),
|
|
349
349
|
)
|
|
350
350
|
|
|
@@ -366,7 +366,6 @@ linux_x86_64 = https://storage.googleapis.com/sentry-dev-infra-assets/node/node-
|
|
|
366
366
|
linux_x86_64_sha256 = efc0f295dd878e510ab12ea36bbadc3db03c687ab30c07e86c7cdba7eed879a9
|
|
367
367
|
# used for autoupdate
|
|
368
368
|
version = v20.13.1
|
|
369
|
-
yarn_version = 1.22.22
|
|
370
369
|
```
|
|
371
370
|
|
|
372
371
|
### brew
|
|
@@ -322,16 +322,16 @@ def main(context: dict[str, str]) -> int:
|
|
|
322
322
|
cfg["node"][f"{constants.SYSTEM_MACHINE}_sha256"],
|
|
323
323
|
reporoot,
|
|
324
324
|
)
|
|
325
|
-
|
|
325
|
+
|
|
326
|
+
node.install_pnpm(reporoot)
|
|
326
327
|
|
|
327
328
|
print("installing node dependencies...")
|
|
328
329
|
proc.run(
|
|
329
330
|
(
|
|
330
|
-
"
|
|
331
|
+
f"{reporoot}/.devenv/bin/pnpm",
|
|
331
332
|
"install",
|
|
332
333
|
"--frozen-lockfile",
|
|
333
|
-
"--
|
|
334
|
-
"--non-interactive",
|
|
334
|
+
"--reporter=append-only",
|
|
335
335
|
),
|
|
336
336
|
)
|
|
337
337
|
|
|
@@ -353,7 +353,6 @@ linux_x86_64 = https://storage.googleapis.com/sentry-dev-infra-assets/node/node-
|
|
|
353
353
|
linux_x86_64_sha256 = efc0f295dd878e510ab12ea36bbadc3db03c687ab30c07e86c7cdba7eed879a9
|
|
354
354
|
# used for autoupdate
|
|
355
355
|
version = v20.13.1
|
|
356
|
-
yarn_version = 1.22.22
|
|
357
356
|
```
|
|
358
357
|
|
|
359
358
|
### brew
|
|
@@ -104,9 +104,9 @@ def check() -> ColimaStatus:
|
|
|
104
104
|
if not os.getenv("CI"):
|
|
105
105
|
macos_version = platform.mac_ver()[0]
|
|
106
106
|
macos_major_version = int(macos_version.split(".")[0])
|
|
107
|
-
if macos_major_version <
|
|
107
|
+
if macos_major_version < 15:
|
|
108
108
|
raise SystemExit(
|
|
109
|
-
f"macos >=
|
|
109
|
+
f"macos >= 15 is required to use colima, found {macos_version}"
|
|
110
110
|
)
|
|
111
111
|
|
|
112
112
|
docker_executable = shutil.which("docker")
|
|
@@ -196,7 +196,8 @@ def start(restart: bool = False) -> ColimaStatus:
|
|
|
196
196
|
"1.1.1.1",
|
|
197
197
|
# ideally we keep ~ ro, but currently the "default" vm
|
|
198
198
|
# is shared across repositories, so for ease of use we'll let home rw
|
|
199
|
-
f"--mount=/var/folders:w,/private/tmp/colima:w,{home}:w",
|
|
199
|
+
f"--mount=/var/folders:w,/private/tmp/colima:w,{home}:w,/tmp/sentry-profiles:w",
|
|
200
|
+
# note: it is not allowed by lima to add top-level root directories like /tmp!
|
|
200
201
|
*args,
|
|
201
202
|
),
|
|
202
203
|
pathprepend=f"{root}/bin",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import json
|
|
3
4
|
import os
|
|
4
5
|
import shutil
|
|
5
6
|
import tempfile
|
|
@@ -9,7 +10,7 @@ from devenv.lib import fs
|
|
|
9
10
|
from devenv.lib import proc
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
_shims = ("node", "npm", "npx"
|
|
13
|
+
_shims = ("node", "npm", "npx")
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def _install(url: str, sha256: str, into: str) -> None:
|
|
@@ -32,7 +33,7 @@ def _install(url: str, sha256: str, into: str) -> None:
|
|
|
32
33
|
def uninstall(binroot: str) -> None:
|
|
33
34
|
shutil.rmtree(f"{binroot}/node-env", ignore_errors=True)
|
|
34
35
|
|
|
35
|
-
for shim in (*_shims, "
|
|
36
|
+
for shim in (*_shims, "pnpm"):
|
|
36
37
|
fp = f"{binroot}/{shim}"
|
|
37
38
|
try:
|
|
38
39
|
os.remove(fp)
|
|
@@ -71,6 +72,51 @@ def installed(version: str, binroot: str) -> bool:
|
|
|
71
72
|
return False
|
|
72
73
|
|
|
73
74
|
|
|
75
|
+
def installed_pnpm(version: str, binroot: str) -> bool:
|
|
76
|
+
if shutil.which(
|
|
77
|
+
"pnpm", path=binroot
|
|
78
|
+
) != f"{binroot}/pnpm" or not os.path.exists(
|
|
79
|
+
f"{binroot}/node-env/bin/pnpm"
|
|
80
|
+
):
|
|
81
|
+
return False
|
|
82
|
+
|
|
83
|
+
stdout = proc.run((f"{binroot}/pnpm", "--version"), stdout=True)
|
|
84
|
+
installed_version = stdout.strip()
|
|
85
|
+
return version == installed_version
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def install_pnpm(reporoot: str) -> None:
|
|
89
|
+
binroot = fs.ensure_binroot(reporoot)
|
|
90
|
+
|
|
91
|
+
with open(f"{reporoot}/package.json") as f:
|
|
92
|
+
package_json = json.load(f)
|
|
93
|
+
pnpm = package_json["packageManager"]
|
|
94
|
+
pnpm_version = pnpm.split("@")[-1]
|
|
95
|
+
|
|
96
|
+
if installed_pnpm(pnpm_version, binroot):
|
|
97
|
+
return
|
|
98
|
+
|
|
99
|
+
print(f"installing pnpm {pnpm_version}...")
|
|
100
|
+
|
|
101
|
+
# {binroot}/npm is a devenv-managed shim, so
|
|
102
|
+
# this install -g ends up putting pnpm into
|
|
103
|
+
# .devenv/bin/node-env/bin/pnpm which is pointed
|
|
104
|
+
# to by the {binroot}/pnpm shim
|
|
105
|
+
proc.run(
|
|
106
|
+
(f"{binroot}/npm", "install", "-g", f"pnpm@{pnpm_version}"), stdout=True
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
fs.write_script(
|
|
110
|
+
f"{binroot}/pnpm",
|
|
111
|
+
"""#!/bin/sh
|
|
112
|
+
export PATH={binroot}/node-env/bin:"${{PATH}}"
|
|
113
|
+
export NPM_CONFIG_PREFIX={binroot}/node-env
|
|
114
|
+
exec {binroot}/node-env/bin/pnpm "$@"
|
|
115
|
+
""",
|
|
116
|
+
shell_escape={"binroot": binroot},
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
|
|
74
120
|
def install(version: str, url: str, sha256: str, reporoot: str) -> None:
|
|
75
121
|
binroot = fs.ensure_binroot(reporoot)
|
|
76
122
|
|
|
@@ -81,9 +127,8 @@ def install(version: str, url: str, sha256: str, reporoot: str) -> None:
|
|
|
81
127
|
uninstall(binroot)
|
|
82
128
|
_install(url, sha256, binroot)
|
|
83
129
|
|
|
84
|
-
# NPM_CONFIG_PREFIX is needed to ensure npm install -g
|
|
85
|
-
# puts
|
|
86
|
-
|
|
130
|
+
# NPM_CONFIG_PREFIX is needed to ensure npm install -g pnpm
|
|
131
|
+
# puts pnpm into our node-env.
|
|
87
132
|
for shim in _shims:
|
|
88
133
|
fs.write_script(
|
|
89
134
|
f"{binroot}/{shim}",
|
|
@@ -97,51 +142,3 @@ exec {binroot}/node-env/bin/{shim} "$@"
|
|
|
97
142
|
|
|
98
143
|
if not installed(version, binroot):
|
|
99
144
|
raise SystemExit(f"failed to install node {version}!")
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
def installed_yarn(version: str, binroot: str) -> bool:
|
|
103
|
-
if shutil.which(
|
|
104
|
-
"yarn", path=binroot
|
|
105
|
-
) != f"{binroot}/yarn" or not os.path.exists(
|
|
106
|
-
f"{binroot}/node-env/bin/yarn"
|
|
107
|
-
):
|
|
108
|
-
return False
|
|
109
|
-
|
|
110
|
-
with open(f"{binroot}/yarn", "r") as f:
|
|
111
|
-
sample = f.read(64)
|
|
112
|
-
if "VOLTA_HOME" in sample:
|
|
113
|
-
print("volta-based yarn detected")
|
|
114
|
-
return False
|
|
115
|
-
|
|
116
|
-
stdout = proc.run((f"{binroot}/yarn", "--version"), stdout=True)
|
|
117
|
-
installed_version = stdout.strip()
|
|
118
|
-
if version == installed_version:
|
|
119
|
-
return True
|
|
120
|
-
|
|
121
|
-
print(f"installed yarn {installed_version} is unexpected!")
|
|
122
|
-
return False
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
def install_yarn(version: str, reporoot: str) -> None:
|
|
126
|
-
binroot = fs.ensure_binroot(reporoot)
|
|
127
|
-
|
|
128
|
-
if installed_yarn(version, binroot):
|
|
129
|
-
return
|
|
130
|
-
|
|
131
|
-
# not explicitly uninstalling here, following steps
|
|
132
|
-
# will pave over it
|
|
133
|
-
print(f"installing yarn {version}...")
|
|
134
|
-
|
|
135
|
-
proc.run((f"{binroot}/npm", "install", "-g", f"yarn@{version}"))
|
|
136
|
-
|
|
137
|
-
fs.write_script(
|
|
138
|
-
f"{binroot}/yarn",
|
|
139
|
-
"""#!/bin/sh
|
|
140
|
-
export PATH={binroot}/node-env/bin:"${{PATH}}"
|
|
141
|
-
exec {binroot}/node-env/bin/yarn "$@"
|
|
142
|
-
""",
|
|
143
|
-
shell_escape={"binroot": binroot},
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
if not installed_yarn(version, binroot):
|
|
147
|
-
raise SystemExit(f"failed to install yarn {version}!")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sentry_devenv
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.25.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
|
|
@@ -335,16 +335,16 @@ def main(context: dict[str, str]) -> int:
|
|
|
335
335
|
cfg["node"][f"{constants.SYSTEM_MACHINE}_sha256"],
|
|
336
336
|
reporoot,
|
|
337
337
|
)
|
|
338
|
-
|
|
338
|
+
|
|
339
|
+
node.install_pnpm(reporoot)
|
|
339
340
|
|
|
340
341
|
print("installing node dependencies...")
|
|
341
342
|
proc.run(
|
|
342
343
|
(
|
|
343
|
-
"
|
|
344
|
+
f"{reporoot}/.devenv/bin/pnpm",
|
|
344
345
|
"install",
|
|
345
346
|
"--frozen-lockfile",
|
|
346
|
-
"--
|
|
347
|
-
"--non-interactive",
|
|
347
|
+
"--reporter=append-only",
|
|
348
348
|
),
|
|
349
349
|
)
|
|
350
350
|
|
|
@@ -366,7 +366,6 @@ linux_x86_64 = https://storage.googleapis.com/sentry-dev-infra-assets/node/node-
|
|
|
366
366
|
linux_x86_64_sha256 = efc0f295dd878e510ab12ea36bbadc3db03c687ab30c07e86c7cdba7eed879a9
|
|
367
367
|
# used for autoupdate
|
|
368
368
|
version = v20.13.1
|
|
369
|
-
yarn_version = 1.22.22
|
|
370
369
|
```
|
|
371
370
|
|
|
372
371
|
### brew
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import pathlib
|
|
5
|
+
from unittest.mock import patch
|
|
6
|
+
|
|
7
|
+
from devenv.lib import node
|
|
8
|
+
from devenv.lib.repository import Repository
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def test_install_pnpm(tmp_path: pathlib.Path) -> None:
|
|
12
|
+
repo = Repository(f"{tmp_path}/test")
|
|
13
|
+
|
|
14
|
+
binroot = f"{repo.path}/.devenv/bin"
|
|
15
|
+
os.makedirs(binroot)
|
|
16
|
+
open(f"{binroot}/node", "w").close()
|
|
17
|
+
|
|
18
|
+
with patch("devenv.lib.archive.download"), patch(
|
|
19
|
+
"devenv.lib.archive.unpack",
|
|
20
|
+
side_effect=lambda archive_file, tmpd, perform_strip1, strip1_new_prefix: os.makedirs(
|
|
21
|
+
f"{tmpd}/{strip1_new_prefix}"
|
|
22
|
+
),
|
|
23
|
+
), patch("devenv.lib.node.os.path.exists"), patch(
|
|
24
|
+
"devenv.lib.direnv.proc.run", side_effect=["0.0.0"] # node --version
|
|
25
|
+
):
|
|
26
|
+
node.install("0.0.0", "bar", "baz", repo.path)
|
|
27
|
+
|
|
28
|
+
with open(f"{binroot}/npm", "r") as f:
|
|
29
|
+
text = f.read()
|
|
30
|
+
assert (
|
|
31
|
+
text
|
|
32
|
+
== f"""#!/bin/sh
|
|
33
|
+
export PATH={binroot}/node-env/bin:"${{PATH}}"
|
|
34
|
+
export NPM_CONFIG_PREFIX={binroot}/node-env
|
|
35
|
+
exec {binroot}/node-env/bin/npm "$@"
|
|
36
|
+
"""
|
|
37
|
+
)
|
|
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
|
|
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
|
|
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
|
{sentry_devenv-1.23.0 → sentry_devenv-1.25.0}/tests/doctor/devenv/checks/failing_check_with_msg.py
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
|
|
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
|