multi-workspace 3.2.19__tar.gz → 3.2.20__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.
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/PKG-INFO +1 -1
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/_version.py +2 -2
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/doctor.py +29 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/.gitignore +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/LICENSE +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/README.md +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/__init__.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/__main__.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/add.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/api.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/app_api.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/bootstrap.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/branch.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/cli.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/cli_helpers.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/collaborator.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/convert_monorepo.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/errors.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/git_helpers.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/git_run.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/git_set_branch.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/hooks.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/ignore_files.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/init.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/logging.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/managed_blocks.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/open.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/paths.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/registry.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/remove.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/repo_urls.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/repos.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/resources/init_readme.md +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/service.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/settings.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_agents.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_github.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_vscode.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_vscode_devcontainer.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_vscode_extensions.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_vscode_helpers.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_vscode_launch.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_vscode_settings.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/sync_vscode_tasks.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/utils.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/multi/worktree.py +0 -0
- {multi_workspace-3.2.19 → multi_workspace-3.2.20}/pyproject.toml +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '3.2.
|
|
22
|
-
__version_tuple__ = version_tuple = (3, 2,
|
|
21
|
+
__version__ = version = '3.2.20'
|
|
22
|
+
__version_tuple__ = version_tuple = (3, 2, 20)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -10,6 +10,7 @@ import git as gitmodule
|
|
|
10
10
|
|
|
11
11
|
from multi.errors import NoRepositoriesError
|
|
12
12
|
from multi.git_helpers import is_git_repo_root
|
|
13
|
+
from multi.hooks import PROBLEM_STATES, configured_hooks_path, hooks_status
|
|
13
14
|
from multi.paths import Paths
|
|
14
15
|
from multi.repos import Repository, load_repos
|
|
15
16
|
|
|
@@ -258,6 +259,33 @@ def warn_on_repo_disk_mismatches(
|
|
|
258
259
|
)
|
|
259
260
|
|
|
260
261
|
|
|
262
|
+
def warn_on_uninstalled_hooks(report: DoctorReport, paths: Paths) -> None:
|
|
263
|
+
try:
|
|
264
|
+
if configured_hooks_path(paths) is None:
|
|
265
|
+
return
|
|
266
|
+
except ValueError as exc:
|
|
267
|
+
report.errors.append(str(exc))
|
|
268
|
+
return
|
|
269
|
+
|
|
270
|
+
status = hooks_status(paths)
|
|
271
|
+
if not status.hooks_dir_exists:
|
|
272
|
+
report.warnings.append(
|
|
273
|
+
f"Workspace hooks directory {status.hooks_dir} does not exist; "
|
|
274
|
+
"git runs no hooks."
|
|
275
|
+
)
|
|
276
|
+
if status.non_executable:
|
|
277
|
+
report.warnings.append(
|
|
278
|
+
"Workspace hooks are not executable (git skips them): "
|
|
279
|
+
f"{', '.join(status.non_executable)}. Run `chmod +x` on them."
|
|
280
|
+
)
|
|
281
|
+
uninstalled = [repo.path for repo in status.repos if repo.state in PROBLEM_STATES]
|
|
282
|
+
if uninstalled:
|
|
283
|
+
report.warnings.append(
|
|
284
|
+
"Workspace hooks are not installed in: "
|
|
285
|
+
f"{', '.join(uninstalled)}. Run `multi hooks install`."
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
|
|
261
289
|
def run_doctor_checks(target_dir: Path) -> DoctorReport:
|
|
262
290
|
report = DoctorReport()
|
|
263
291
|
|
|
@@ -292,6 +320,7 @@ def run_doctor_checks(target_dir: Path) -> DoctorReport:
|
|
|
292
320
|
warn_on_tracked_subrepos(report, paths, repos)
|
|
293
321
|
warn_on_subrepo_submodules(report, paths, repos)
|
|
294
322
|
warn_on_repo_disk_mismatches(report, paths, repos)
|
|
323
|
+
warn_on_uninstalled_hooks(report, paths)
|
|
295
324
|
|
|
296
325
|
return report
|
|
297
326
|
|
|
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
|