<commit_before># Whaleprint

![whaleprint] (https://github.com/mantika/whaleprint/blob/master/blue2.jpg)

Whaleprint allows to manage DAB (distributed application bundle) as service blueprints for docker swarm mode


## Rationale

After playing around with docker experimental [DAB's](https://github.com/docker/docker/blob/master/experimental/docker-stacks-and-bundles.md) we realized
that even though the concept looks promising, the tooling around it was somehow poor and pretty much useless. The only thing that you can do with this as today is 
generate a DAB from a `docker-compose` yml file and then run `docker stack deploy` or `docker deploy` in order to deploy it to your swarm mode cluster and that's pretty much it. 

We immediately started thinking of different ways to enhance the dev & ops experience with this new feature and we came up with some nice ideas that makes this possible.
The main concept behind this project is that we believe service stack deployments (specially in production) should be __transparent__, __reliable__ and above all [__declarative__ and not imperative](https://en.wikipedia.org/wiki/Declarative_programming#Definition).  

Whaleprint makes possible to use your current DAB files as swarm mode blueprints and will show you with __extreme detail__  __exactly__ which and how your services will be deployed/removed. 
At the same time it will also handle service update diffs describing precisely what things will change and what will be their new updated value.

Here's a screenshot of how service diffs look like:

![image](https://cloud.githubusercontent.com/assets/1578458/16891549/eb355f4e-4ad1-11e6-83e5-a977f85bc26d.png)


Can you guess what this `wp plan` output will do?


## What other things does whaleprint do?


- Preview and apply your DAB changesets (duh!)
- Extend the current DAB format to support MOAR features. ([#7](https://github.com/mantika/whaleprint/issues/7))
- Manage multiple stacks simultaneously
- Fetch  DAB's from an URL
- Remove and deploy service stacks entirely
- Allow to apply specific service update through the `--target` option
- Alternatively print complete plan detail instead of changesets only


## How do I use it?

Check this YouTube video to see a demo: 


## Installing whaleprint

Just download the binary for your platform from the [Releases](https://github.com/mantika/whaleprint/releases) section, put it anywher in your PATH and enjoy!

## Extending DAB
<commit_msg>Add feature<commit_after># Whaleprint

![whaleprint] (https://github.com/mantika/whaleprint/blob/master/blue2.jpg)

Whaleprint allows to manage DAB (distributed application bundle) as service blueprints for docker swarm mode


## Rationale

After playing around with docker experimental [DAB's](https://github.com/docker/docker/blob/master/experimental/docker-stacks-and-bundles.md) we realized
that even though the concept looks promising, the tooling around it was somehow poor and pretty much useless. The only thing that you can do with this as today is 
generate a DAB from a `docker-compose` yml file and then run `docker stack deploy` or `docker deploy` in order to deploy it to your swarm mode cluster and that's pretty much it. 

We immediately started thinking of different ways to enhance the dev & ops experience with this new feature and we came up with some nice ideas that makes this possible.
The main concept behind this project is that we believe service stack deployments (specially in production) should be __transparent__, __reliable__ and above all [__declarative__ and not imperative](https://en.wikipedia.org/wiki/Declarative_programming#Definition).  

Whaleprint makes possible to use your current DAB files as swarm mode blueprints and will show you with __extreme detail__  __exactly__ which and how your services will be deployed/removed. 
At the same time it will also handle service update diffs describing precisely what things will change and what will be their new updated value.

Here's a screenshot of how service diffs look like:

![image](https://cloud.githubusercontent.com/assets/1578458/16891549/eb355f4e-4ad1-11e6-83e5-a977f85bc26d.png)


Can you guess what this `wp plan` output will do?


## What other things does whaleprint do?


- Preview and apply your DAB changesets (duh!)
- Extend the current DAB format to support MOAR features. ([#7](https://github.com/mantika/whaleprint/issues/7))
- Manage multiple stacks simultaneously
- Fetch  DAB's from an URL
- Remove and deploy service stacks entirely
- Allow to apply specific service update through the `--target` option
- Outputs relevant computed stack information like Published ports
- Alternatively print complete plan detail instead of changesets only


## How do I use it?

Check this YouTube video to see a demo: 


## Installing whaleprint

Just download the binary for your platform from the [Releases](https://github.com/mantika/whaleprint/releases) section, put it anywher in your PATH and enjoy!

## Extending DAB

{'fraction_non_alphanumeric': 0.06160947220549869, 'fraction_numerical': 0.014850491671683725, 'mean_word_length': 4.728735632183908, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 12, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2692830', 'n_tokens_mistral': 1443, 'n_tokens_neox': 1338, 'n_words': 637}