Skip to content

Introduction

DPM is an open-source package/library manager for Delphi XE2 or later.

What is a Package Manager

A package manager provides a standard for developers to share and consume code. Authors create packages that other developers can consume. The package manager provides a simple way to automate the installation, upgrading or removal of packages. This streamlines the development process, allowing developers to get up and running on a project quickly, without needing to understand the (usually ad-hoc) way the project or organization has structured their third party libraries. This also translates into simpler build/CI processes, with less 'compiles on my machine' style issues.

Who and Why

DPM's initial developer is Vincent Parrett (DUnitX, FinalBuilder, Continua CI). Why is discussed in this blog post.

DPM Status

DPM is in beta - we have put a lot of work in to getting it to a point where it should be usable for most Delphi developers.

What works

  • Creating packages (library authors)
  • Pushing packages to a package source (directory or server)
  • Installing and Restoring packages, including dependencies and design time components.
  • Multiple package sources
  • Package Signing - both Author (using a code signing certificate) and Repository signing (automatic).
  • Repository and Author Trust.
  • SBOM generation.
  • CLI and IDE plugin clients.

Can I use it with non DPM third party libraries?

Yes! DPM will not interfere with other libraries that may be installed. The manner in which it adds packages to the search path will not change existing settings.

How do I use it

See the getting started guide.

The command line documentation can be found here.

Is DPM integrated into the Delphi IDE

Yes, IDE integration is provided in the installer for all supported IDE versions. See IDE Integration.

Is there a central package source

Yes. The site is at https://delphi.dev - it is relatively feature complete - note you do not need to register on this site to use packages from it - you only need to register if you want to publish packages.

Package files are stored on cloudflare R2

Do I have to use the public package server?

No - you can put package files in a directory and configure a dpm package source to point to that directory. Or if you are feeling adventurous you can run the package server project locally.

Is my old version of delphi supported

See here for supported compiler versions. All target platforms for supported compiler versions are supported.

What about C++ Builder or FPC

see here

Does it support design-time components

YES, design time components are installed automatically when the package is installed or restored (during project load).

How does it work

See this page

Known Issues

See known issues

Can I help

Yep, see Contributing to DPM.