wmap 1.0.0

Command line tool to generate wardley map images from wmap files.
# wmap

Command line tool to generate wardley map images from wmap files.

## How to use

### Synopsis

```
wmap [OPTIONS] INPUT_FILE
```

### Description

The **wmap** utility creates an image file from a *wmap* formatted file.
If *INPUT_FILE* is absent, **wmap** reads from the standard input. If
piped or redirected, it will output the file data to *stdout*.

### Options

- **-h, --help**: Display help.
- **-v, --version**: Display version information.
- **-t, --type <IMAGE_TYPE>**: Specifies the output type. Can be one of: `png`,
  or `svg`. Defaults to `png`.
- **-s, --stage <STAGE>**: Specifies the stage labels to use. Defaults tool
  `activities`.
- **-o, --output <OUTPUT_FILE>**: The output file in which to write the image.
  Defaults to the same filename as the input map, but replacing the extension
  with either `png`, or `svg`. Setting this flag will suppress stdout if piped
  or redirected.

### Stages

The renderer has the following built-in stage types available:

* **Activities** (`activities`)
    1. Genesis
    2. Custom
    3. Product (+rental)
    4. Commodity (+utility)

* **Behavior** (`behavior`)
    1. Uncertain when to use
    2. Learning when to use
    3. Learning through use
    4. Known / common usage
* **Certainty** (`certainty`)
    1. Poorly Understood / exploring the unknown
    2. Rapid Increase In Learning / discovery becomes refining
    3. Rapid increase in use / increasing fit for purpose
    4. Commonly understood (in terms of use)
* **Comparison** (`comparison`)
    1. Constantly changing / a differential / unstable
    2. Learning from others / testing the water / some evidential support
    3. Competing models / feature difference / evidential support
    4. Essential / any advantage is operational / accepted norm
* **Cynefin** (`cynefin`)
    1. Chaotic
    2. Complex
    3. Complicated
    4. Clear
* **Data** (`data`)
    1. Unmodelled
    2. Divergent
    3. Convergent
    4. Modelled
* **Decision Drivers** (`decision_drivers`)
    1. Heritage / culture
    2. Analyses & synthesis
    3. Analyses & synthesis
    4. Previous Experience
* **Efficiency** (`efficiency`)
    1. Reducing the cost of change (experimentation)
    2. Reducing cost of waste (Learning)
    3. Reducing cost of waste (Learning)
    4. Reducing cost of deviation (Volume)
* **Failure** (`failure`)
    1. High / tolerated / assumed to be wrong
    2. Moderate / unsurprising if wrong but disappointed
    3. Not tolerated / focus on constant improvement / assumed to be in the right direction / resistance to changing the model
    4. Surprised by failure / focus on operational efficiency
* **Focus Of Value** (`focus_of_value`)
    1. High future worth but immediate investment
    2. Seeking ways to profit and a ROI / seeking confirmation of value
    3. High profitability per unit / a valuable model / a feeling of understanding / focus on exploitation
    4. High volume / reducing margin / important but invisible / an essential component of something more complex
* **Knowledge** (`knowledge`)
    1. Concept
    2. Hypothesis
    3. Theory
    4. Accepted
* **Knowledge Management** (`knowledge_management`)
    1. Uncertain
    2. Learning on use / focused on testing prediction
    3. Learning on operation / using prediction / verification
    4. Known / accepted
* **Market** (`market`)
    1. Undefined Market
    2. Forming Market / an array of competing forms and models of understanding
    3. Growing Market / consolidation to a few competing but more accepted forms
    4. Mature Market / stabilised to an accepted form
* **Market Action** (`market_action`)
    1. Gambling / driven by gut
    2. Exploring a "found" value
    3. Market analysis / listening to customers
    4. Metric driven / build what is needed
* **Market Perception** (`market_perception`)
    1. Chaotic (non-linear) / domain of the "crazy"
    2. Domain of "experts"
    3. Increasing expectation of use / domain of "professionals"
    4. Ordered (appearance of being linear) / trivial / formula to be applied
* **Perception In Industry** (`perception_in_industry`)
    1. Future source of competitive advantage / unpredictable / unknown
    2. Seen as a scompetitive advantage / a differential / ROI / case examples
    3. Advantage through implementation / features / this model is better than that
    4. Cost of doing business / accepted / specific defined models
* **Practice** (`practice`)
    1. Novel
    2. Emerging
    3. Good
    4. Best
* **Publication Types** (`publication`)
    1. Describe the wonder of the thing / the discovery of some marvel / a new land / an unknown frontier
    2. Focused on build / construct / awareness and learning / many models of explanation / no accepted forms / a wild west
    3. Maintenance / operations / installation / comparison between competing forms / feature analysis
    4. Focused on use / increasingly an accepted, almost invisible component
* **Ubiquity** (`ubiquity`)
    1. Rare
    2. Slowly Increasing
    3. Rapidly Increasing
    4. Widespread in the applicable market / ecosystem
* **Understanding** (`understanding`)
1. Poorly Understood / unpredictable
2. Increasing understanding / development of measures
3. Increasing education / constant refinement of needs / measures
4. Believed to be well defined / stable / measurable
* **User Perception** (`user_perception`)
1. Different / confusing / exciting / surprising / dangerous
2. Leading edge / emerging / unceirtanty over results
3. Increasingly common / disappointed if not used or available / feeling left behind
4. Standard / expected / feeling of shock if not used
* **Evolution Stage** (`evolution_stage`)
1. Stage I
2. Stage II
3. Stage III
4. Stage IV

# Building

This project is built using cargo. A makefile is provided to run common tasks.

Build dev version with `make` or `make build`.

Build release with `make -e profile=release` or `make -e profile=release build`.

Run tests with `make test`.

If you have [tarpaulin][tarpaulin], you can also run `make coverage` to get
coverage information.

# Distribution of Builds

Builds are available at [build.r.bdr.sh][rbdr-builds]. The linux builds are
generated automatically by the CI: Unstable builds are built from the `main`
branch, and stable releases are built from tags.

For mac, the process is still manual, since the commands need to be run from
a macos machine by running `make mac` for unstable builds, and
`make -e tag=M.m.p` for stable builds.

[tarpaulin]: https://github.com/xd009642/tarpaulin
[rbdr-builds]: https://build.r.bdr.sh/wmap/