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.3.tar.gz (91.3 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.3-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: godot_gdpm-0.0.3.tar.gz
  • Upload date:
  • Size: 91.3 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.3.tar.gz
Algorithm Hash digest
SHA256 43b0790f309a573829e84239aae8ad40981f5445e60cb50fb31acd7a12da3255
MD5 e456a667383917358e4918c32b955045
BLAKE2b-256 23e3988610d4c6f3c8ef2a9cec090f5757f7e90a3486892f3b17d23aaecbfaf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_gdpm-0.0.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: godot_gdpm-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 52.7 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ea94fe0b2ba99c8cd921e5a2e732d670aef44b6a137e98e6d016dbbbdf003f1b
MD5 cec45ffefb92fa9a4b7bf8eeb6587464
BLAKE2b-256 40e195bacb1f220de1120491c72d5bf89ce115818114da951b9077649866a6f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_gdpm-0.0.3-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