Skip to content

Migration from 0.1

Drydock 0.2 refactored the tooling into an installable package. Existing scripts and configurations still work, but we recommend updating.

Install the package:

pip install -e .

Use the CLI:

# Old
python Tools/analyzers/codemap.py /path/to/project

# New
drydock codemap /path/to/project

Configure MCP in ~/.claude/settings.json:

{
  "mcpServers": {
    "drydock": {
      "command": "python",
      "args": ["-m", "drydock.mcp"]
    }
  }
}

Backward Compatibility

All old paths still work with a deprecation notice:

python Tools/analyzers/codemap.py /path/to/project
# (warning: this path is deprecated; use 'drydock codemap' instead)

The legacy MCP path also works:

{
  "mcpServers": {
    "drydock": {
      "command": "python",
      "args": ["/path/to/Drydock/Tools/mcp_server.py"]
    }
  }
}

Breaking Changes

Flags

Old New Notes
--json (removed) JSON is now the default for all tools
--skip-boundaries --skip boundaries Changed to comma-separated list
--markdown on dependency_analyzer --markdown Still works; now consistent across all tools

Output Fields

The context analyzer (formerly context_compiler) output now uses consistent field names:

Old New Notes
total_source_files total_files (in boundaries) More accurate
dependencies.unwanted (removed) Filter by type instead

Tool Names

All analyzer names are now singular and consistent:

0.1 File 0.2 Name Notes
codemap.py codemap No change
context_compiler.py context Shortened
boundary_detector.py boundaries Plural to match group
interface_extractor.py interfaces Plural
dependency_analyzer.py dependencies Plural
structure_analyzer.py structure No change
platform_detector.py platforms Plural
git_analyzer.py git Shortened

Use drydock list to see all available names.

MCP Tool Naming

All MCP tools are now consistently named drydock_<analyzer>:

0.1 0.2 Example
drydock_codemap drydock_codemap No change
drydock_context drydock_context No change
drydock_boundaries drydock_boundaries Changed from irregular
(7 tools) (8 tools) Added drydock_git

Configuration

If you have custom MCP configurations pointing to the old path, update them:

Old:

{
  "command": "python",
  "args": ["/path/to/Drydock/Tools/mcp_server.py"]
}

New:

{
  "command": "python",
  "args": ["-m", "drydock.mcp"]
}

The old path still works but is deprecated.

Installing Extras

Drydock 0.2 uses optional dependencies:

# Core only (pure Python, no external deps)
pip install -e .

# For MCP server
pip install -e ".[mcp]"

# For development
pip install -e ".[dev]"

# For documentation
pip install -e ".[docs]"

# Everything
pip install -e ".[mcp,dev,docs]"

Previously, you had to pip install mcp separately if you wanted the MCP server.

Language Support

In 0.1, C# and Java claimed "Partial" interface support that did not exist. Both are now fully implemented using regex:

  • C#: using, namespace, public class/interface/method extraction
  • Java: import, package, public class/interface/method extraction

Run drydock languages to see current support.

Budget Flag

The --budget flag on context_analyzer was documented but did nothing. It now genuinely trims the output and reports what was dropped:

drydock context /path/to/project --budget 1000
# Returns <= 1000 lines of output, with "trims_applied" explaining what was cut

What Didn't Change

  • Philosophy: Still decompartmentalization, analysis, extraction, synthesis
  • Nautical framing: drydock, ship yard, ocean — it's your identity
  • JSON-first: All tools default to JSON for AI consumption
  • Stdlib-only: Core has zero external dependencies
  • Non-destructive: Analyzers never modify projects
  • License: Apache 2.0

Getting Help