Bringing ZEN to all Dev Environments
Download ZENv

ZENv is an environment manager for programmers.

It allows you to keep your shell environment in source control, thereby keeping everyone in sync and allowing access to shared dev tools, aliases, and more.

Installing a Tech Stack for a New Project

The following code makes sure that everybody has brew, node, and gulp:


# Download homebrew for Mac

$ /usr/bin/ruby -e "https://..."


# Install node using brew

$ sudo brew install node


# Install gulp for building

$ npm install --global gulp-cli

Before ZENv

Each developer needed to be in charge of setting up their own developer environment. This is usually a set of commands in a wiki somewhere.


$ git clone https://your-zenv-fork/..

$ cd zenv

$ python

With ZENv

Now, bringing on new developers is easy. Just clone and install!

Sharing Dev Tools

Let's say you've decided to write a tool that parses production logs called parse_logs. It's been very useful for you, so you want others to be able to use it as well. Sharing it with your team is as simple as adding it to the bin folder and pushing.


# This puts you in the ZEnv checkout

$ cd "$ZENV_ROOT"


$ mv ~/bin/parse_logs bin/

$ git commit -am 'Adding parse_logs tool'

$ git push

Add your tool

Any executable that works on the command line can be added to ZENv by moving it into the /bin directory.


# Pick up changes from git

ZENv$ update_zenv

ZENv$ parse_logs

ZENv$ ... (really sweet tool output)

Start sharing

Other developers can easily pull down the changes to get access to your tool.

Working on Multiple Projects

Sometimes you'll need to work with multiple checkouts of different projects, each with their own set of requirements. ZENv has support for creating sub-environments that allow you to change the set of available developer tools and environment variables depending on what project a developer needs to work on at the time.


$ cd db_backend

$ phing -logger -Dprops=../myprops




$ cd ../app_frontend

$ make


Before ZENv

Each project has a unique set of commands to build that requires developers to understand each build system and their respective capabilities.


ZENv$ use db_backend

ZENv$ build




ZENv$ use app_frontend

ZENv$ build


With ZENv

With ZENv, there's no need to spend time figuring out the subtleties of each project's build system. Just build!

© 2007-2016 Zoosk, Inc. All rights reserved