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 still in development, so not all functionality is ready yet. At this time, it's at the stage where we are encouraging library authors to take a look and play with it and provide feedback (and perhaps get involved in the development). It's very much at a minimum viable product stage.
What works
- Creating packages
- Installing packages, including dependencies
- Restoring packages, including dependencies.
- Pushing packages to a package source.
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
It is currently being developed. The site is at https://delphi.dev - but bear in mind we are still fleshing out the user and management ui's, so it's not yet ready for testing (feel free to have a browse). If it's down, that just means we're updating it or working on our infrastructure.
Package files will be stored and served by a CDN - we are currently testing out options for this to find the best pricing
Is my old version of delphi supported
Maybe, see here for supported compiler versions. All target platforms for supported compiler versions are supported.
What about C++ Builder or FPC
Does it support design-time components
Not yet, but is being worked on.
How does it work
See this page
Known Issues
See known issues
Can I help
Yep, see Contributing to DPM.