You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi! Me again. (I'm the maintainer of Drupal CMS, and we just added dload to our direct dependencies. :) )
One of the things we're trying to do is make it easier to deploy Drupal CMS sites from local environments to remote hosts. We're looking into supporting fly.io out of the box. To do that, we'd need access to the flyctl utility. It'd be really helpful if we could call dload get flyctl to download it; would you be willing to add it to the default registry? I'm happy to submit a PR; flyctl releases on GitHub (https://github.com/superfly/flyctl/releases).
Sure, let's add it! A PR is welcome; flyctl releases have stable asset names, so the entry should be simple.
I'm also planning to let packages extend the registry from the composer.json of direct dependencies: #140. Drupal CMS could then ship entries for the binaries it needs without waiting on DLoad releases. Would that be useful for you?
@phenaproxima, DLoad v1.19.0 is out with the registry extension from #140: a Composer package can now ship registry entries of its own. Would you like to try it with flyctl in Drupal CMS? Drupal CMS would then own the entry, fly binary name included, and add or change tools without waiting for DLoad releases.
1. Put the entry from #142 into an XML file inside the package, e.g. dload.xml at its root. It uses the dload.xml format, so the IDE validates it against the schema. Only the <registry> section is read.
<?xml version="1.0"?>
<dloadxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/php-internal/dload/refs/heads/1.x/dload.xsd">
<registry>
<softwarename="flyctl"alias="flyctl"description="Command line tools for fly.io services"homepage="https://fly.io">
<repositorytype="github"uri="superfly/flyctl"asset-pattern="/^flyctl_.*/" />
<binaryname="fly"pattern="/^flyctl(?:\.exe)?$/"version-command="version" />
<filepattern="/^wintun\.dll$/" />
</software>
</registry>
</dload>
3. Sites get it with no setup. DLoad reads vendor/composer/installed.json, so dload get flyctl or <download software="flyctl" /> works in any project where that package is in require or require-dev, or is the root package itself. dload software lists the entry with the package name as its source.
A few rules worth knowing:
Only the root package and its direct dependencies are read. A transitive dependency cannot add binaries.
dload.xml must ship with the package: keep it out of export-ignore in .gitattributes.
A project's own dload.xml and the official registry take precedence over package entries. vendor/package#flyctl always picks your entry explicitly.
version-command must be a single option or version (yours is fine), and binary names must be plain file names.
Activity
roxblnfk commentedon Oct 9, 2026
Sure, let's add it! A PR is welcome;
flyctlreleases have stable asset names, so the entry should be simple.I'm also planning to let packages extend the registry from the
composer.jsonof direct dependencies: #140. Drupal CMS could then ship entries for the binaries it needs without waiting on DLoad releases. Would that be useful for you?phenaproxima commentedon Oct 9, 2026
I think being able to define the binaries in
composer.jsonmight be very useful to us!feat(registry): add flyctl to the default software registry
roxblnfk commentedon Oct 12, 2026
@phenaproxima, DLoad v1.19.0 is out with the registry extension from #140: a Composer package can now ship registry entries of its own. Would you like to try it with
flyctlin Drupal CMS? Drupal CMS would then own the entry,flybinary name included, and add or change tools without waiting for DLoad releases.1. Put the entry from #142 into an XML file inside the package, e.g.
dload.xmlat its root. It uses thedload.xmlformat, so the IDE validates it against the schema. Only the<registry>section is read.2. Point to it from the package's
composer.json:{ "extra": { "dload": { "registry": "dload.xml" } } }3. Sites get it with no setup. DLoad reads
vendor/composer/installed.json, sodload get flyctlor<download software="flyctl" />works in any project where that package is inrequireorrequire-dev, or is the root package itself.dload softwarelists the entry with the package name as its source.A few rules worth knowing:
dload.xmlmust ship with the package: keep it out ofexport-ignorein.gitattributes.dload.xmland the official registry take precedence over package entries.vendor/package#flyctlalways picks your entry explicitly.version-commandmust be a single option orversion(yours is fine), andbinarynames must be plain file names.Details: Software from Composer Packages.
If everything works as expected, we can close #142 in favour of the entry in Drupal CMS. And if something doesn't fit your setup, let me know here.