Skip to main content

A dependency package manager for Godot plugins, like uv/npm/cargo

Project description

GDPM — Godot Dependency Package Manager

A dependency package manager for Godot plugins, like uv/npm/cargo.

CI PyPI Python uv License


Features

  • One command installgdpm add limbo-ai instead of manual downloads
  • Dependency management — Automatic dependency resolution
  • Lock filegdpm.lock ensures reproducible installs across team and CI
  • Godot Asset Store — Direct integration with the official store API
  • Version constraints — Support for ^, ~, >= semver syntax
  • Template detection — Automatically identifies project templates vs addons
  • Godot compatibility — Checks plugin compatibility with your Godot version

Installation

pip install godot-gdpm

Quick Start

# Initialize a project
gdpm init my-game --godot ">=4.2.0"

# Add plugins
gdpm add limbo-ai
gdpm add phantom-camera
gdpm add --dev gdunit4

# Check status
gdpm status

# Sync addons (e.g., after git clone)
gdpm sync

Commands

Project Management

Command Description
gdpm init [name] Initialize a new gdpm project
gdpm sync Sync addons/ to lock file state
gdpm lock Generate or update lock file
gdpm list List installed plugins
gdpm status Show plugin status and available updates

Dependencies

Command Description
gdpm add <plugin> Add plugins to the project
gdpm remove <plugin> Remove plugins
gdpm update Update plugins to newer versions
gdpm search <query> Search Godot Asset Store
gdpm info <plugin> Show plugin details

Configuration

gdproject.toml

[project]
name = "my-game"
version = "0.1.0"
godot = ">=4.2.0"
license = "MIT"

[dependencies]
limbo-ai = ">=1.5.0"
phantom-camera = "^4.3.0"

[dev-dependencies]
gdunit4 = "^1.0.0"

[scripts]
test = "godot --headless --script res://tests/run_tests.gd"

Version Constraints

Syntax Meaning Example
1.5.0 Exact version limbo-ai = "1.5.0"
^1.5.0 Compatible update >=1.5.0, <2.0.0
~1.5.0 Patch update >=1.5.0, <1.6.0
>=1.0.0 Minimum version >=1.0.0
* Any version limbo-ai = "*"

How It Works

gdpm uses the official Godot Asset Store API to discover and download plugins. It does not require a custom registry.

gdpm add limbo-ai
  → Search Godot Asset Store API
  → Download plugin zip
  → Extract to addons/
  → Write tag.gdpm for tracking
  → Update gdproject.toml + gdpm.lock

Plugin Tracking

gdpm uses tag.gdpm files to track which addon directories belong to which plugin. This handles bundled plugins that create multiple directories.

addons/
  cogito/
    tag.gdpm          → store+philip-drobar/cogito
    plugin.cfg
    ...
  input_helper/
    tag.gdpm          → store+philip-drobar/cogito
    ...

CI/CD Integration

# GitHub Actions
- name: Install Godot plugins
  run: |
    pip install godot-gdpm
    gdpm sync --frozen
    gdpm run test

Development

# Clone the repository
git clone https://github.com/Abyss-PlayerEG/godot-gdpm.git
cd godot-gdpm

# Install dependencies
uv sync

# Run tests
uv run mypy src/
uv run ruff check src/
uv run ruff format --check src/

# Install locally for testing
./scripts/install.sh --dev

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/new-feature)
  3. Commit your changes (git commit -m "feat: add new feature")
  4. Push to the branch (git push origin feat/new-feature)
  5. Open a Pull Request

License

MIT License — see LICENSE for details.

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

godot_gdpm-0.0.6.tar.gz (150.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godot_gdpm-0.0.6-py3-none-any.whl (56.5 kB view details)

Uploaded Python 3

File details

Details for the file godot_gdpm-0.0.6.tar.gz.

File metadata

  • Download URL: godot_gdpm-0.0.6.tar.gz
  • Upload date:
  • Size: 150.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for godot_gdpm-0.0.6.tar.gz
Algorithm Hash digest
SHA256 018f6670e9be298e28eaa86b803bfef2da6390baeb361fbab194aa42caf702c0
MD5 02ae598d6737fb8d404c10dc4f4a3230
BLAKE2b-256 f2c68b08a316432fc3e4c53a02de815d3028d171d6ea53f3f07a3a4b58a08d06

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_gdpm-0.0.6.tar.gz:

Publisher: publish.yml on Abyss-PlayerEG/godot-gdpm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file godot_gdpm-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: godot_gdpm-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 56.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for godot_gdpm-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f7d7a1c458c33726b8f02f10a2bed62117eda63063309644cc609bea54d098ae
MD5 93f20b0315ad29a5074eef61f2062f70
BLAKE2b-256 c22ae0cd35b6172f4ffceec210873704871ebe8806d9aa12e5cb0e2744c0ff24

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_gdpm-0.0.6-py3-none-any.whl:

Publisher: publish.yml on Abyss-PlayerEG/godot-gdpm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page