https://github.com/dylan-lang/deft
Dylan development tool
https://github.com/dylan-lang/deft
builds dependencies testing workspaces
Last synced: 7 days ago
JSON representation
Dylan development tool
- Host: GitHub
- URL: https://github.com/dylan-lang/deft
- Owner: dylan-lang
- License: mit
- Created: 2024-04-21T17:51:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-01T22:43:48.000Z (8 months ago)
- Last Synced: 2025-06-02T08:38:12.311Z (8 months ago)
- Topics: builds, dependencies, testing, workspaces
- Language: Dylan
- Homepage: https://opendylan.org/package/deft
- Size: 652 KB
- Stars: 2
- Watchers: 9
- Forks: 2
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Deft
[](https://github.com/dylan-lang/deft/.github/workflows/build-and-test.yml)
[](https://github.com/dylan-lang/deft/issues)
[](https://app.element.io/#/room/#dylan-language:matrix.org)
Deft is a tool for developing Dylan code which aspires to meet with [Fernando Borretti's
approval](https://borretti.me/article/language-tooling-antipatterns). 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](https://github.com/dylan-lang/pacman-catalog)
repository. For any package to be downloadable it must have an entry in the
catalog.
Full documentation is [here](https://package.opendylan.org/deft).
## Bugs
If you have a feature request, think something should be designed differently, or find
bugs, [file a bug report](https://github.com/dylan-lang/deft/issues).