dna

project description


License
MIT
Install
pip install dna==0.0.1

Documentation

DNA

Hacking environment genetics

By Hive Tech

Unide logo

This README is also available in a friendly navigable format.

DNA is a community-driven compilation of dotfiles and projects, aimed at creating the most awesome and powerful development environment. We use it here at Hivetech to setup fresh new machines and provide our hivelab charm for the Unide project.

Installation is performed through famous configuration managers like ansible and salt (currently focused on ansible) as they obviously play nicely with a dotfiles repository, and allow you to configure in seconds thousands of machines, as well as simply your beloved local one.

If you are familiar with docker, you can test the environment this project can produce.

$ docker pull hivetech/lab
$ ID=$(docker run -d hivetech/lab)
$ PORT=$(docker port $ID 22)
$ ssh prototype@127.0.0.1 -p $PORT   # Password: proto

Content

** This is heavy work in progress. Right now I'm cleaning and moving here my previous repo (https://github.com/hackliff/Dotfiles)

Usage

$ export DNA_PATH=where/you/want/dna  # Optional, default will be /opt/dna
$ export EDITOR=nano                  # Optional, default will be vim

$ wget -qO- https://raw.github.com/hivetech/dna/master/bootstrap.sh | bash

$ cd $DNA_PATH && rake -T
$ rake dna:synthetize               # Default will setup your local machine

$ # Once installed
$ cheat lab
$ cheat <sub-command>  # git-extras for example

Note the synthetize action is idempotent.

Sandbox mode

You can test the project in a virtualize environment. Typical use case would be to enjoy a clean dev env while working in docker powered machines, or test your awesome fork.

$ ./synthetize --help
$ ./synthetize --action prototype --check --verbose   # Changes won't be applied, just tested
$ ./synthetize --action target --port 49500 --image hivetech/prototype --user you
$ ./synthetize connect  # Password is proto (set in dockerfile)

(Experimental) A Vagrantfile is provided and you can check out the documentation for more informations. Make sure dna/provision/ansible/data.yml suits you and a vagrant section is present in dna/provision/ansible/hosts.

You also have to modified hosts variable in site.yml to vagrant because of a weird vagrantfile bug.

Then just run vagrant up && vagrant ssh.

Versioning Semantics

For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Dna will be maintained according to the Semantic Versioning guidelines as much as possible.

Releases will be numbered with the following format:

<major>.<minor>.<patch>-<build>

Constructed with the following guidelines:

  • A new major release indicates a large change where backwards compatibility is broken.
  • A new minor release indicates a normal change that maintains backwards compatibility.
  • A new patch release indicates a bugfix or small change which does not affect compatibility.
  • A new build release indicates this is a pre-release of the version.

Commit messages convention

From now on git commit messages will follow this Angular wise document. To sum up :

{{ type }} ({{ scope }}): {{ subject }}

{{ body }}

{{ footer }}

Where type = { feat | fix | doc | style | refactor | test | chore }

License

DNA is available under the Apache License, Version 2.0.

Partners in crime

... among many, many more contributors on cited projects.