DSSS

DSSS, the D Shared Software System, builds upon rebuild and intends to create a standardized system for building, installing, configuring, acquiring and using D software, licensed as Free and Open Source Software under the MIT license: http://www.opensource.org/licenses/mit-license.php . One notable component of it is its net module, which provides an analogue to Perl's CPAN or Ruby's Gems for the D programming language.

Project Status

Development seems to have stalled with changeset 945 on 04-17-2009. A fork (port to D2) is at: https://github.com/apriori/dsss.

DSSS 0.78 has been released, and is available from http://svn.dsource.org/projects/dsss/downloads/0.78 . If you're using Windows and don't need support for net-installation, you can use the "light" binary to save some disk and bandwidth.

DSSS 0.78 works with the 1.0 and 2.0 releases of the D Language (and their corresponding releases of DMD 1.00 and GDC 0.21). It should be able to build software with the DMD 2.0 alpha releases, but has not been tested thoroughly. It cannot be built with DMD 2.0.

Note on Tango: DSSS currently uses Phobos, and is only buildable against Phobos. I intend to create a Tango port of it. I will maintain both for a while, and then adjust depending on supply and demand. A version of DSSS compiled against Phobos can build Tango applications with no issues.

Documentation

DSSS comes with the following documentation:

Many D programmers don't understand what the advantage of using DSSS is. To rectify this situation, a number of example scenarios for using DSSS are provided at DSSSByExample.

A series of DSSS video tutorials is available for those willing to put up with Gregor's hyper-nasal voice at http://www.codu.org/dsss_tutorials/ .

There is also, of course, the human method of documentation. If you find a bug, post a ticket here (click "New Ticket" above). If you have questions, use the D newsgroups, #dsss on FreeNode? IRC or email to Richards@codu.org .

Developer Information

SVN: http://svn.dsource.org/projects/dsss/trunk

If you wish to make a piece of software you have written available via DSSS, register at the source management interface (see below), then send an email to Richards@codu.org to get yourself added with the appropriate permissions. After you've been added, you can use the source management interface to add info on your software to the master list of sources.

Source management interface: http://dsss.codu.org/

DSSS was written by Gregor Richards.

Overview

The D Shared Software System

DSSS, the D Shared Software System, is a tool to ease the building, installation, configuration and acquisition of D software.

Building

There are plenty of tools for building D software. There's bud (previously build), the antiquated make, and a plethora of other tools capable of building D software. DSSS intends to be more generally useful than any of them.

  • DSSS eliminates the need to keep lists of source files, figuring them all out by imports in source. It will even link in the proper libraries automatically.
  • DSSS can transparently build libraries from any D package.
  • DSSS automatically generates .di (D import) files for libraries which cause code using the library to link it in automatically.
  • Since DSSS uses rebuild, DSSS has all of rebuild's features as well.
  • DSSS can automatically choose names for libraries generated from D packages which will not conflict with libraries from other sources, or incompatible compilers. So you do not need to concern yourself with library names.

Installation

As compared to building software, there are few tools capable of installing D software well.

  • DSSS maintains a centralized repository of installed software, such that you can use it in your software trivially. .di files and library files are all managed by DSSS, as part of its effort to make imports map to library files automatically.
  • DSSS keeps track of all of the software that has been installed through DSSS, so any of it can be uninstalled easily.

Configuration

DSSS' build configuration file (dsss.conf) allows full use of version statements from D. So, you can fine-tune your software to build precisely what is necessary for the host system.

Acquisition

In the spirit of Perl's CPAN or Ruby's Gems, DSSS has a central repository of sources for D software. It maintains a list of software packages available, where they can be acquired, and what packages/modules they provide. Because it maintains a list of packages and modules, dependencies for a tool can be installed as easily as:

$ dsss net deps

DSSS will then trace all of the software's D dependencies and install them. This feature can of course also be used to install arbitrary software, such as:

$ dsss net install mango

Upon either of these commands, DSSS will download the software from its upstream source, compile it, and install it.

More Information

DSSS is available from http://www.dsource.org/projects/dsss . It is FOSS (Free/Open Source Software) under a very permissive license. Its development code base is maintained in subversion and can be checked out from the following URL: http://svn.dsource.org/projects/dsss/trunk

Testing

Every build in DSSS' net database is tested on a variety of platforms by an automated script. The script is available in the subversion repository, and the results of this testing are published to http://dsss.codu.org/results.html . Note that the testing framework is still under construction. As such, there are several false-negatives.

DDoc Documentation

DSSS can automatically generate documentation for those projects which have ddoc comments. This documentation is generated and collected during the test runs (see above). As such, there is documentation for many projects installable via DSSS at http://dsss.codu.org/docs/