drupal-scout 3.0.0__tar.gz → 3.0.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.
- {drupal_scout-3.0.0/drupal_scout.egg-info → drupal_scout-3.0.2}/PKG-INFO +74 -29
- drupal_scout-3.0.2/README.md +109 -0
- drupal_scout-3.0.2/drupal_scout/tests/conftest.py +20 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2/drupal_scout.egg-info}/PKG-INFO +74 -29
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout.egg-info/SOURCES.txt +1 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout.egg-info/requires.txt +1 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout.egg-info/top_level.txt +0 -1
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/pyproject.toml +2 -1
- drupal_scout-3.0.0/README.md +0 -65
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/LICENSE.txt +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/bin/drupal-scout +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/__init__.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/application.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/exceptions.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/formatters/__init__.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/formatters/formatter.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/formatters/formatterfactory.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/formatters/jsonformatter.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/formatters/suggestformatter.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/formatters/tableformatter.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/mcp_server.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/module.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/output.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/__init__.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_application.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_exceptions.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_formatterfactory.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_jsonformatter.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_mcp_server.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_suggestformatter.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_tableformatter.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_worker.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/tests/test_workers_manager.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/worker.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout/workers_manager.py +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout.egg-info/dependency_links.txt +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/drupal_scout.egg-info/entry_points.txt +0 -0
- {drupal_scout-3.0.0 → drupal_scout-3.0.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: drupal-scout
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: Scout out for transitive versions of Drupal modules for the upgrade of the core.
|
|
5
5
|
Author-email: "Andrew [R-Tech] Tsyhaniuk" <in0mad91@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -47,6 +47,7 @@ Requires-Dist: packaging
|
|
|
47
47
|
Requires-Dist: fastmcp
|
|
48
48
|
Requires-Dist: rich>=15.0.0
|
|
49
49
|
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: pytest; extra == "dev"
|
|
50
51
|
Requires-Dist: nose; extra == "dev"
|
|
51
52
|
Requires-Dist: coverage; extra == "dev"
|
|
52
53
|
Requires-Dist: pipdeptree; extra == "dev"
|
|
@@ -57,66 +58,110 @@ Dynamic: license-file
|
|
|
57
58
|
|
|
58
59
|
# Drupal Scout
|
|
59
60
|
|
|
60
|
-
Search for Drupal module entries with transitive core version requirements to help to upgrade the Drupal Core
|
|
61
|
+
Search for Drupal module entries with transitive core version requirements to help to upgrade the Drupal Core.
|
|
61
62
|
|
|
62
63
|
## Installation
|
|
63
64
|
|
|
65
|
+
### Using uv (Recommended)
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
uv tool install drupal-scout
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Or run directly without installing:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
uvx drupal-scout --help
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Using pip
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
pip install drupal-scout
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Quick Start
|
|
84
|
+
|
|
85
|
+
Get a compatibility report for your current Drupal project:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
drupal-scout
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Scan a specific module for Drupal 11 compatibility:
|
|
92
|
+
|
|
64
93
|
```bash
|
|
65
|
-
|
|
94
|
+
drupal-scout --core 11.0.0 --modules drupal/webform
|
|
66
95
|
```
|
|
67
96
|
|
|
68
97
|
## Features
|
|
69
98
|
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
It will also dump the suggested composer.json file to the specified path if the `--save-dump` argument is used.
|
|
99
|
+
- **Asyncio Concurrency**: High-performance parallel module scanning using `asyncio` to speed up dependency analysis.
|
|
100
|
+
- **Rich TUI Integration**: Beautiful terminal output with structured tables and real-time progress bars powered by the `rich` library.
|
|
101
|
+
- **MCP Server Support**: Built-in [Model Context Protocol](https://modelcontextprotocol.io/) server for integration with AI IDEs (like Claude Desktop or Cursor).
|
|
102
|
+
- **Environment Diagnostics**: Quick self-diagnostic check of the environment and dependencies using the `info` command.
|
|
103
|
+
- **Multiple Output Formats**:
|
|
104
|
+
- `table`: High-fidelity color-coded table for human readability.
|
|
105
|
+
- `json`: Machine-readable raw data for automation scripts.
|
|
106
|
+
- `suggest`: Generates a suggested `composer.json` with updated version requirements.
|
|
79
107
|
|
|
80
108
|
## Limitations
|
|
81
109
|
|
|
82
|
-
- The application
|
|
110
|
+
- **Python 3.11+**: The application requires Python 3.11 or higher.
|
|
111
|
+
- **Composer v2**: The application works with **Composer-based (Composer v2)** Drupal 8+ projects.
|
|
83
112
|
|
|
84
113
|
## Usage/Examples
|
|
85
114
|
|
|
86
|
-
|
|
115
|
+
```bash
|
|
116
|
+
drupal-scout [-h] [-v] [-d DIRECTORY] [-n] [-l LIMIT] [-f {table,json,suggest}] [-s] [-c CORE] [-m MODULES [MODULES ...]] {info} ...
|
|
117
|
+
```
|
|
87
118
|
|
|
88
119
|
### Arguments
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
120
|
+
|
|
121
|
+
- `-h, --help`: Show help message and exit.
|
|
122
|
+
- `-v, --version`: Show program's version number and exit.
|
|
123
|
+
- `-d DIRECTORY, --directory DIRECTORY`: Directory of the Drupal installation (default: `.`).
|
|
124
|
+
- `-n, --no-lock`: Do not use the `composer.lock` file to determine installed versions.
|
|
125
|
+
- `-l LIMIT, --limit LIMIT`: Concurrency limit for async requests. Default is `10`.
|
|
126
|
+
- `-f {table,json,suggest}, --format {table,json,suggest}`: Output format (default: `table`).
|
|
127
|
+
- `-s, --save-dump`: Use with `--format suggest` to save the suggested `composer.json` to disk.
|
|
128
|
+
- `-c CORE, --core CORE`: Optional Drupal core version override (e.g., `10.0.0`).
|
|
129
|
+
- `-m MODULES [MODULES ...], --modules MODULES [MODULES ...]`: Scan only specific modules, skipping full project discovery.
|
|
98
130
|
|
|
99
131
|
### Subcommands
|
|
100
|
-
|
|
132
|
+
|
|
133
|
+
- `info`: Show diagnostic information about the tool, `jq` availability, and the current Drupal environment.
|
|
134
|
+
|
|
135
|
+
### MCP Server Usage
|
|
136
|
+
|
|
137
|
+
To use Drupal Scout as an MCP server in your AI assistant:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
drupal-scout-mcp
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Or with `uvx`:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
uvx --from drupal-scout drupal-scout-mcp
|
|
147
|
+
```
|
|
101
148
|
|
|
102
149
|
### Targeted Scan Examples
|
|
103
150
|
|
|
104
|
-
Scan one specific module with explicit core version:
|
|
151
|
+
Scan one specific module with an explicit core version:
|
|
105
152
|
|
|
106
153
|
```bash
|
|
107
154
|
drupal-scout --core 10.0.0 --modules drupal/webform
|
|
108
155
|
```
|
|
109
156
|
|
|
110
|
-
Scan multiple
|
|
157
|
+
Scan multiple modules and output JSON:
|
|
111
158
|
|
|
112
159
|
```bash
|
|
113
160
|
drupal-scout --core 10.0.0 --modules drupal/webform drupal/ctools --format json
|
|
114
161
|
```
|
|
115
162
|
|
|
116
|
-
Scan
|
|
163
|
+
Scan modules with auto-detected core from a local directory:
|
|
117
164
|
|
|
118
165
|
```bash
|
|
119
166
|
drupal-scout --directory /path/to/drupal --modules drupal/webform
|
|
120
167
|
```
|
|
121
|
-
|
|
122
|
-
If core cannot be auto-detected, provide `--core` explicitly.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Drupal Scout
|
|
2
|
+
|
|
3
|
+
Search for Drupal module entries with transitive core version requirements to help to upgrade the Drupal Core.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### Using uv (Recommended)
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
uv tool install drupal-scout
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or run directly without installing:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
uvx drupal-scout --help
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Using pip
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pip install drupal-scout
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
Get a compatibility report for your current Drupal project:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
drupal-scout
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Scan a specific module for Drupal 11 compatibility:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
drupal-scout --core 11.0.0 --modules drupal/webform
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Features
|
|
40
|
+
|
|
41
|
+
- **Asyncio Concurrency**: High-performance parallel module scanning using `asyncio` to speed up dependency analysis.
|
|
42
|
+
- **Rich TUI Integration**: Beautiful terminal output with structured tables and real-time progress bars powered by the `rich` library.
|
|
43
|
+
- **MCP Server Support**: Built-in [Model Context Protocol](https://modelcontextprotocol.io/) server for integration with AI IDEs (like Claude Desktop or Cursor).
|
|
44
|
+
- **Environment Diagnostics**: Quick self-diagnostic check of the environment and dependencies using the `info` command.
|
|
45
|
+
- **Multiple Output Formats**:
|
|
46
|
+
- `table`: High-fidelity color-coded table for human readability.
|
|
47
|
+
- `json`: Machine-readable raw data for automation scripts.
|
|
48
|
+
- `suggest`: Generates a suggested `composer.json` with updated version requirements.
|
|
49
|
+
|
|
50
|
+
## Limitations
|
|
51
|
+
|
|
52
|
+
- **Python 3.11+**: The application requires Python 3.11 or higher.
|
|
53
|
+
- **Composer v2**: The application works with **Composer-based (Composer v2)** Drupal 8+ projects.
|
|
54
|
+
|
|
55
|
+
## Usage/Examples
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
drupal-scout [-h] [-v] [-d DIRECTORY] [-n] [-l LIMIT] [-f {table,json,suggest}] [-s] [-c CORE] [-m MODULES [MODULES ...]] {info} ...
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Arguments
|
|
62
|
+
|
|
63
|
+
- `-h, --help`: Show help message and exit.
|
|
64
|
+
- `-v, --version`: Show program's version number and exit.
|
|
65
|
+
- `-d DIRECTORY, --directory DIRECTORY`: Directory of the Drupal installation (default: `.`).
|
|
66
|
+
- `-n, --no-lock`: Do not use the `composer.lock` file to determine installed versions.
|
|
67
|
+
- `-l LIMIT, --limit LIMIT`: Concurrency limit for async requests. Default is `10`.
|
|
68
|
+
- `-f {table,json,suggest}, --format {table,json,suggest}`: Output format (default: `table`).
|
|
69
|
+
- `-s, --save-dump`: Use with `--format suggest` to save the suggested `composer.json` to disk.
|
|
70
|
+
- `-c CORE, --core CORE`: Optional Drupal core version override (e.g., `10.0.0`).
|
|
71
|
+
- `-m MODULES [MODULES ...], --modules MODULES [MODULES ...]`: Scan only specific modules, skipping full project discovery.
|
|
72
|
+
|
|
73
|
+
### Subcommands
|
|
74
|
+
|
|
75
|
+
- `info`: Show diagnostic information about the tool, `jq` availability, and the current Drupal environment.
|
|
76
|
+
|
|
77
|
+
### MCP Server Usage
|
|
78
|
+
|
|
79
|
+
To use Drupal Scout as an MCP server in your AI assistant:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
drupal-scout-mcp
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Or with `uvx`:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
uvx --from drupal-scout drupal-scout-mcp
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Targeted Scan Examples
|
|
92
|
+
|
|
93
|
+
Scan one specific module with an explicit core version:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
drupal-scout --core 10.0.0 --modules drupal/webform
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Scan multiple modules and output JSON:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
drupal-scout --core 10.0.0 --modules drupal/webform drupal/ctools --format json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Scan modules with auto-detected core from a local directory:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
drupal-scout --directory /path/to/drupal --modules drupal/webform
|
|
109
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from unittest.mock import Mock
|
|
3
|
+
from aiohttp.client_reqrep import ClientResponse
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@pytest.fixture(autouse=True, scope="session")
|
|
7
|
+
def _patch_aiohttp_clientresponse_init_stream_writer():
|
|
8
|
+
"""Ensure tests remain compatible with aiohttp >= 3.14 when stream_writer is required."""
|
|
9
|
+
|
|
10
|
+
original_init = ClientResponse.__init__
|
|
11
|
+
|
|
12
|
+
def patched_init(self, *args, **kwargs):
|
|
13
|
+
kwargs.setdefault("stream_writer", Mock())
|
|
14
|
+
return original_init(self, *args, **kwargs)
|
|
15
|
+
|
|
16
|
+
ClientResponse.__init__ = patched_init # type: ignore[method-assign]
|
|
17
|
+
try:
|
|
18
|
+
yield
|
|
19
|
+
finally:
|
|
20
|
+
ClientResponse.__init__ = original_init # type: ignore[method-assign]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: drupal-scout
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: Scout out for transitive versions of Drupal modules for the upgrade of the core.
|
|
5
5
|
Author-email: "Andrew [R-Tech] Tsyhaniuk" <in0mad91@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -47,6 +47,7 @@ Requires-Dist: packaging
|
|
|
47
47
|
Requires-Dist: fastmcp
|
|
48
48
|
Requires-Dist: rich>=15.0.0
|
|
49
49
|
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: pytest; extra == "dev"
|
|
50
51
|
Requires-Dist: nose; extra == "dev"
|
|
51
52
|
Requires-Dist: coverage; extra == "dev"
|
|
52
53
|
Requires-Dist: pipdeptree; extra == "dev"
|
|
@@ -57,66 +58,110 @@ Dynamic: license-file
|
|
|
57
58
|
|
|
58
59
|
# Drupal Scout
|
|
59
60
|
|
|
60
|
-
Search for Drupal module entries with transitive core version requirements to help to upgrade the Drupal Core
|
|
61
|
+
Search for Drupal module entries with transitive core version requirements to help to upgrade the Drupal Core.
|
|
61
62
|
|
|
62
63
|
## Installation
|
|
63
64
|
|
|
65
|
+
### Using uv (Recommended)
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
uv tool install drupal-scout
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Or run directly without installing:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
uvx drupal-scout --help
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Using pip
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
pip install drupal-scout
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Quick Start
|
|
84
|
+
|
|
85
|
+
Get a compatibility report for your current Drupal project:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
drupal-scout
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Scan a specific module for Drupal 11 compatibility:
|
|
92
|
+
|
|
64
93
|
```bash
|
|
65
|
-
|
|
94
|
+
drupal-scout --core 11.0.0 --modules drupal/webform
|
|
66
95
|
```
|
|
67
96
|
|
|
68
97
|
## Features
|
|
69
98
|
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
It will also dump the suggested composer.json file to the specified path if the `--save-dump` argument is used.
|
|
99
|
+
- **Asyncio Concurrency**: High-performance parallel module scanning using `asyncio` to speed up dependency analysis.
|
|
100
|
+
- **Rich TUI Integration**: Beautiful terminal output with structured tables and real-time progress bars powered by the `rich` library.
|
|
101
|
+
- **MCP Server Support**: Built-in [Model Context Protocol](https://modelcontextprotocol.io/) server for integration with AI IDEs (like Claude Desktop or Cursor).
|
|
102
|
+
- **Environment Diagnostics**: Quick self-diagnostic check of the environment and dependencies using the `info` command.
|
|
103
|
+
- **Multiple Output Formats**:
|
|
104
|
+
- `table`: High-fidelity color-coded table for human readability.
|
|
105
|
+
- `json`: Machine-readable raw data for automation scripts.
|
|
106
|
+
- `suggest`: Generates a suggested `composer.json` with updated version requirements.
|
|
79
107
|
|
|
80
108
|
## Limitations
|
|
81
109
|
|
|
82
|
-
- The application
|
|
110
|
+
- **Python 3.11+**: The application requires Python 3.11 or higher.
|
|
111
|
+
- **Composer v2**: The application works with **Composer-based (Composer v2)** Drupal 8+ projects.
|
|
83
112
|
|
|
84
113
|
## Usage/Examples
|
|
85
114
|
|
|
86
|
-
|
|
115
|
+
```bash
|
|
116
|
+
drupal-scout [-h] [-v] [-d DIRECTORY] [-n] [-l LIMIT] [-f {table,json,suggest}] [-s] [-c CORE] [-m MODULES [MODULES ...]] {info} ...
|
|
117
|
+
```
|
|
87
118
|
|
|
88
119
|
### Arguments
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
120
|
+
|
|
121
|
+
- `-h, --help`: Show help message and exit.
|
|
122
|
+
- `-v, --version`: Show program's version number and exit.
|
|
123
|
+
- `-d DIRECTORY, --directory DIRECTORY`: Directory of the Drupal installation (default: `.`).
|
|
124
|
+
- `-n, --no-lock`: Do not use the `composer.lock` file to determine installed versions.
|
|
125
|
+
- `-l LIMIT, --limit LIMIT`: Concurrency limit for async requests. Default is `10`.
|
|
126
|
+
- `-f {table,json,suggest}, --format {table,json,suggest}`: Output format (default: `table`).
|
|
127
|
+
- `-s, --save-dump`: Use with `--format suggest` to save the suggested `composer.json` to disk.
|
|
128
|
+
- `-c CORE, --core CORE`: Optional Drupal core version override (e.g., `10.0.0`).
|
|
129
|
+
- `-m MODULES [MODULES ...], --modules MODULES [MODULES ...]`: Scan only specific modules, skipping full project discovery.
|
|
98
130
|
|
|
99
131
|
### Subcommands
|
|
100
|
-
|
|
132
|
+
|
|
133
|
+
- `info`: Show diagnostic information about the tool, `jq` availability, and the current Drupal environment.
|
|
134
|
+
|
|
135
|
+
### MCP Server Usage
|
|
136
|
+
|
|
137
|
+
To use Drupal Scout as an MCP server in your AI assistant:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
drupal-scout-mcp
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Or with `uvx`:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
uvx --from drupal-scout drupal-scout-mcp
|
|
147
|
+
```
|
|
101
148
|
|
|
102
149
|
### Targeted Scan Examples
|
|
103
150
|
|
|
104
|
-
Scan one specific module with explicit core version:
|
|
151
|
+
Scan one specific module with an explicit core version:
|
|
105
152
|
|
|
106
153
|
```bash
|
|
107
154
|
drupal-scout --core 10.0.0 --modules drupal/webform
|
|
108
155
|
```
|
|
109
156
|
|
|
110
|
-
Scan multiple
|
|
157
|
+
Scan multiple modules and output JSON:
|
|
111
158
|
|
|
112
159
|
```bash
|
|
113
160
|
drupal-scout --core 10.0.0 --modules drupal/webform drupal/ctools --format json
|
|
114
161
|
```
|
|
115
162
|
|
|
116
|
-
Scan
|
|
163
|
+
Scan modules with auto-detected core from a local directory:
|
|
117
164
|
|
|
118
165
|
```bash
|
|
119
166
|
drupal-scout --directory /path/to/drupal --modules drupal/webform
|
|
120
167
|
```
|
|
121
|
-
|
|
122
|
-
If core cannot be auto-detected, provide `--core` explicitly.
|
|
@@ -23,6 +23,7 @@ drupal_scout/formatters/jsonformatter.py
|
|
|
23
23
|
drupal_scout/formatters/suggestformatter.py
|
|
24
24
|
drupal_scout/formatters/tableformatter.py
|
|
25
25
|
drupal_scout/tests/__init__.py
|
|
26
|
+
drupal_scout/tests/conftest.py
|
|
26
27
|
drupal_scout/tests/test_application.py
|
|
27
28
|
drupal_scout/tests/test_exceptions.py
|
|
28
29
|
drupal_scout/tests/test_formatterfactory.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "drupal-scout"
|
|
3
|
-
version = "3.0.
|
|
3
|
+
version = "3.0.2"
|
|
4
4
|
description = "Scout out for transitive versions of Drupal modules for the upgrade of the core."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE.txt" }
|
|
@@ -29,6 +29,7 @@ dependencies = [
|
|
|
29
29
|
|
|
30
30
|
[project.optional-dependencies]
|
|
31
31
|
dev = [
|
|
32
|
+
'pytest',
|
|
32
33
|
'nose',
|
|
33
34
|
'coverage',
|
|
34
35
|
'pipdeptree',
|
drupal_scout-3.0.0/README.md
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# Drupal Scout
|
|
2
|
-
|
|
3
|
-
Search for Drupal module entries with transitive core version requirements to help to upgrade the Drupal Core
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
pip install drupal-scout
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Features
|
|
12
|
-
|
|
13
|
-
- Use asyncio concurrency to speed up the process of searching for Drupal module entries with transitive core version requirements.
|
|
14
|
-
- Quick self-diagnostic check of the environment and dependencies using the `info` command.
|
|
15
|
-
- Choose between three output formats: table, json, and suggest.
|
|
16
|
-
- `table` format will output the data in the table format.
|
|
17
|
-
Example:
|
|
18
|
-

|
|
19
|
-
- `json` format will output the raw data in the json format.
|
|
20
|
-
- `suggest` format will output the suggested composer.json file with the updated module version requirements.
|
|
21
|
-
It will also dump the suggested composer.json file to the specified path if the `--save-dump` argument is used.
|
|
22
|
-
|
|
23
|
-
## Limitations
|
|
24
|
-
|
|
25
|
-
- The application will only work with Composer-based (Composer v2) Drupal 8+ projects.
|
|
26
|
-
|
|
27
|
-
## Usage/Examples
|
|
28
|
-
|
|
29
|
-
`drupal-scout [-h] [-v] [-d DIRECTORY] [-n] [-l LIMIT] [-f {table,json,suggest}] [-s] [-c CORE] [-m MODULES [MODULES ...]] {info} ...`
|
|
30
|
-
|
|
31
|
-
### Arguments
|
|
32
|
-
‐ `-h, --help` show this help message and exit
|
|
33
|
-
– `-v, --version` show program's version number and exit
|
|
34
|
-
– `-d DIRECTORY, --directory DIRECTORY` Directory of the Drupal installation
|
|
35
|
-
– `-n, --no-lock` Do not use the composer.lock file to determine the installed versions of the modules
|
|
36
|
-
– `-l LIMIT, --limit LIMIT` The concurrency limit for async requests and data parsing. By default, the application uses all available CPU cores.
|
|
37
|
-
– `-f {table,json,suggest}, --format {table,json,suggest}` The output format. By default, the application will use the table format.
|
|
38
|
-
– `-s, --save-dump` Use in pair with `--format suggest` to dump the suggested composer.json file to the specified path.
|
|
39
|
-
– `-c CORE, --core CORE` Optional core version override for targeted scans. If omitted with `--modules`, core is auto-detected from composer metadata in `--directory`.
|
|
40
|
-
– `-m MODULES [MODULES ...], --modules MODULES [MODULES ...]` Scan only specific modules. When used, full environment module discovery is skipped. If `composer.lock` exists and `--no-lock` is not set, installed versions are still used for downgrade protection.
|
|
41
|
-
|
|
42
|
-
### Subcommands
|
|
43
|
-
– `info` - show diagnostic information about the tool and the current Drupal environment.
|
|
44
|
-
|
|
45
|
-
### Targeted Scan Examples
|
|
46
|
-
|
|
47
|
-
Scan one specific module with explicit core version:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
drupal-scout --core 10.0.0 --modules drupal/webform
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Scan multiple specific modules and output JSON:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
drupal-scout --core 10.0.0 --modules drupal/webform drupal/ctools --format json
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Scan targeted modules with auto-detected core from local `composer.lock`/`composer.json` in directory:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
drupal-scout --directory /path/to/drupal --modules drupal/webform
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
If core cannot be auto-detected, provide `--core` explicitly.
|
|
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
|