bbyars/mountebank

View on GitHub
src/views/releases/v2.2.0.ejs

Summary

Maintainability
Test Coverage
<h1>v<%= releaseVersion %></h1>

<p class='info-icon'>Be sure to keep up with the latest releases by subscribing to the
    <a href='http://mbtest.org/feed'>ATOM feed</a>.</p>

<h2>This is A Big Release!</h2>

<p>This release has taken a long time to get out, but it's a game changer. Significant
parts of mountebank have been re-architected to allow all operations to be persisted to the file
system in real time. This solves a long-standing performance problem when dealing with a lot of test
data (for example, during proxy recording or playback)</p>

<h2>New Features</h2>
<ul class='bullet-list'>
    <li>The <a href='//<%= host %>/docs/commandLine'><code>--datadir</code></a> option allows all
        operations to be persisted real time, supporting constant performance regardless of the amount
        of test data. This also allows multiple hosts running the same imposter behind a load balancer, with
        all processes sharing the same state.

    <p class='info-icon'>Running <code>mb</code> with the <code>--datadir</code> option means there is no
    longer any real performance penalty to recording requests.</p></li>
    <li>Running <code>mb</code> with the <code>--debug</code> option now also records the response
    configuration that generated the response and the overall processing time to transform the request
    into the response.</li>
    <li>Added an example <a href='https://github.com/bbyars/mountebank/blob/master/Dockerfile'>Dockerfile</a></li>
</ul>

<h2>Bug Fixes</h2>
<ul class='bullet-list'>
    <li>You can now change the <code>state</code> variable passed into predicate injection</li>
    <li>Fixed predicate matching for Cyrillic characters</li>
    <li>Fixed some documentation that still used the old injection format</li>
    <li>Fix issue where shellTransform limited buffer size of response</li>
    <li>Expanded the list of MIME types mountebank recognizes as binary during HTTP proxying</li>
</ul>

<h2>Contributors</h2>
<p>Many thanks to the following kind folks for help with this release, either through bug reports,
    suggestions, or direct code contributions:</p>

<ul class='bullet-list'>
    <li>George Tseres</li>
</ul>

<h2>Install</h2>

<pre><code>npm install -g mountebank@<%= releaseVersion %></code></pre>

<p>or:</p>

<table>
    <tr>
        <th>Option</th>
        <th>node.js required?</th>
        <th>sudo required?</th>
        <th>links</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>Self-contained archives</td>
        <td>No</td>
        <td>No</td>
        <td style="min-width: 5em;">
            <ul>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-darwin-x64.tar.gz">osx</a></li>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x86.tar.gz">linux x86</a></li>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-linux-x64.tar.gz">linux x64</a></li>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x86.zip">win x86<sup>*</sup></a></li>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-win-x64.zip">win x64<sup>*</sup></a></li>
            </ul>
        </td>
        <td>Simply unpack and run <code>mb</code> from inside</td>
    </tr>
    <tr>
        <td>OS-specific packages</td>
        <td>No</td>
        <td>Yes</td>
        <td>
            <ul>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>.pkg">pkg</a></li>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-<%= releaseVersion %>-1.x86_64.rpm">rpm</a></li>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank_<%= releaseVersion %>_amd64.deb">deb</a></li>
            </ul>
        </td>
        <td>Puts <code>mb</code> at <code>/usr/local/bin</code>, which is generally in the <code>PATH</code>.</td>
    </tr>
    <tr>
        <td>source tarball</td>
        <td>Yes</td>
        <td>No</td>
        <td>
            <ul>
                <li><a href="https://s3.amazonaws.com/mountebank/v<%= releaseMajorMinor %>/mountebank-v<%= releaseVersion %>-npm.tar.gz">mb</a></li>
            </ul>
        </td>
        <td>source tarball if you roll that way.</td>
    </tr>
</table>

<h2 id='windows-path-limitations'>Windows path limitations</h2>

<p><sup>*</sup>mountebank wishes very much for your Windows experience to be hassle-free, but he is simply not qualified to address
    a particular constraint of Windows Explorer.  For legacy reasons, some Windows applications, including most notably Windows Explorer,
    have a maximum number of characters allowed in a path of 260 characters.  As mountebank writes these words, the longest path he
    includes in the zip files is around 175 characters.  The zip file name, which is likely to represent itself as <i>two</i>
    nested directories if you use the defaults to unzip it, will be around 25 characters.  That gives you very little wiggle room.
    If you unzip the file in your users directory, you may very likely get an error because of this constraint.</p>

<p>The following solutions will all work:</p>

<ul class='bullet-list'>
    <li>Unzip to the root of your C: drive (or a similar small path)</li>
    <li>Use <a href='http://www.7-zip.org/'>7zip</a> to unzip the file instead of Windows Explorer</li>
    <li>Use <code>npm</code> to install mountebank instead of the zip file</li>
</ul>