Project

ddenv

0.0
The project is in a healthy, maintained state
Creates and maintains an environment for local development, including Ruby and Node versions.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 2.15
 Project Readme

ddenv

ddenv (Denis’ Developer Environment) is a tool for maintaining a local environment for development.

Caution

This software is a pre-alpha work in progress. Do not use just yet.

Requirements

  • Homebrew
  • fish shell

Note

In the future, this will work for bash and zsh as well.

Installation

Note

At some point, it’ll be possible simply run brew install denisdefreyne/ddenv/ddenv.

  1. Ensure you have Go installed (1.22 or later)
  2. Clone this repository
  3. In this repository, run make install

The ddenv executable will be placed inside ~/bin.

Quick start

Create a ddenv.yaml file which contains the list of dependencies to manage:

up:
  - homebrew: overmind
  - ruby: 3.3.0
  - bundle
  - node: 20.12.2
  - npm

Then, run ddenv:

% ddenv
Installing Homebrew package ‘ruby-install’      skipped
Installing Ruby 3.3.1                           skipped
Adding Shadowenv to shell                       skipped
Creating Shadowenv dir                          done
Adding Shadowenv dir to .gitignore              done
Adding Ruby 3.3.1 to Shadowenv                  done
Installing Ruby gem bundler                     skipped
Installing bundle                               skipped
Installing Homebrew package ‘node-build’        checking...
Installing Node 22.0.0                          pending
Adding Shadowenv to shell                       pending
Creating Shadowenv dir                          pending
Adding Shadowenv dir to .gitignore              pending
Adding Node 22.0.0 to Shadowenv                 pending
Installing npm packages                         pending

Now your local developer environment is ready to be used.

Goals

  • homebrew: PACKAGENAME installs the Homebrew package with the given name.
  • ruby installs Ruby (with the version specified in the .ruby-version file).
  • bundle runs bundle install.
  • node: VERSION installs the give Node.js version.
  • npm installs packages from package.json using npm.