The Local Package Cache¶
dds maintains a local cache of packages that it has obtained at the request
of a user. The packages themselves are stored as
source distributions (
dds does not store the binaries
that it builds within this package cache).
Reading Repository Contents¶
dds will manage the cache content silently, but it may be useful
to see what
dds is currently storing away.
The content of the cache can be seen with the
pkg ls subcommand:
> dds pkg ls
This will print the names of packages that
dds has downloaded, as well as
the versions of each.
See also: Remote Packages and Repositories
dds builds a package, it will also build the dependency libraries of
that package. In order for the dependency build to succeed, it must have a
local copy of the source distribution of that dependency.
dds performs dependency resolution, it will consider both locally
cached packages, as well as packages that are available from any
remote packages. If the dependency solution requires any
packages that are not in the local cache, it will use the information in its
catalog database to obtain a source distribution for each missing package. These
source distributions will automatically be added to the local cache, and later
dependency resolutions will not need to download that package again.
This all happens automatically when a project is built: There is no
dds install” subcommand.
Manually Downloading a Dependency¶
It may be useful to obtain a copy of the source distribution of a package
from a remote. The
pkg get command can be used to do this:
> dds pkg get <name>@<version>
This will obtain the source distribution of the package matching the given package ID and place that distribution in current working directory, using the package ID as the name of the source distribution directory:
$ dds pkg get firstname.lastname@example.org [ ... ] $ ls . . .. email@example.com $ ls ./firstname.lastname@example.org/ include/ src/ library.json5 package.json5
Exporting a Project into the Repository¶
dds can only use packages that are available in the local cache. For
packages that have a listing in the catalog, this is not a problem. But if one
is developing a local package and wants to allow it to be used in another local
package, that can be done by importing that project into the package cache as a
regular package, as detailed in Importing a Source Distribution:
> dds pkg import /path/to/project
This command will create a source distribution and place it in the local cache. The package is now available to other projects on the local system.
This doesn’t import in “editable” mode: A snapshot of the package root will be taken and imported to the local cache.