1
0
Fork
You've already forked deft
0
Dylan CLI tool and package manager
  • Dylan 99%
  • Makefile 1%
Find a file
Carl Gay a7d95505db pacman: Support SemVer pre-release and build-metadata
In the updated docs I removed stuff about using `abc@<ref>` because it's untested and
almost certainly doesn't work yet. The obvious difficulty is that if a `abc@branch-name`
is used, how does Deft figure out the URL of the package? Use the URL in the @latest
version in the catalog? Need a better plan...
2026年05月31日 19:38:19 -04:00
.github/workflows deft new application: generate initial Sphinx doc 2025年06月02日 23:22:21 -04:00
documentation pacman: Support SemVer pre-release and build-metadata 2026年05月31日 19:38:19 -04:00
sources pacman: Support SemVer pre-release and build-metadata 2026年05月31日 19:38:19 -04:00
.gitignore Update .gitignore 2025年02月25日 20:57:21 +01:00
.gitmodules cleanup: remove submodules and simplify the Makefile 2024年12月31日 21:09:30 -05:00
dylan-package.json Set version to 0.14.0 2026年02月19日 00:01:23 -05:00
LICENSE Initial commit 2018年10月13日 23:15:41 -04:00
Makefile Makefile: use deft status to find workspace directory 2026年05月08日 22:24:37 -04:00
README.md deft new application: new directory organization 2025年05月31日 11:40:17 -04:00

Deft

tests GitHub issues Matrix

Deft is a tool for developing Dylan code which aspires to meet with Fernando Borretti's approval. Basically that means it aspires to be similar to Cargo, apparently.

For Dylan, this specifically means:

  • Make it easy to find relevant libraries
  • Manage project dependencies
  • No more editing registry files
  • No more Git submodules
  • Build and test from anywhere in your workspace
  • Create application, library, and test suite boilerplate for new projects
  • Create reference docs for your project [TODO]

Deft simplifies the management of Dylan workspaces and packages and provides a simplified interface to the Open Dylan compiler for building, testing, and generating documentation. It eliminates the need to manage library locations (registries) by hand and the need to use Git submodules to track dependencies.

$ deft new application hello
Downloaded pacman-catalog@master to /tmp/dylan/_packages/pacman-catalog/master/src/
Created library hello.
Created library hello-test-suite.
Created library hello-app.
Downloaded strings@1.1.0 to /tmp/hello/_packages/strings/1.1.0/src/
Downloaded command-line-parser@3.1.1 to /tmp/hello/_packages/command-line-parser/3.1.1/src/
Downloaded json@1.0.0 to /tmp/hello/_packages/json/1.0.0/src/
Downloaded testworks@2.3.1 to /tmp/hello/_packages/testworks/2.3.1/src/
Updated 18 files in /tmp/hello/registry/.
$ cd hello
$ deft build --all
Open Dylan 2023.1
Build of 'hello-test-suite' completed
Build of 'hello-app' completed
Build of 'hello' completed
$ _build/bin/hello-app
Hello world!

A key part of this tool is the package manager (pacman) and its catalog of packages, the pacman-catalog repository. For any package to be downloadable it must have an entry in the catalog.

Full documentation is here.

Bugs

If you have a feature request, think something should be designed differently, or find bugs, file a bug report.