<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Viash</title>
<link>https://viash.io/blog/index.html</link>
<atom:link href="https://viash.io/blog/index.xml" rel="self" type="application/rss+xml"/>
<description></description>
<image>
<url>https://viash.io/viash.png</url>
<title>Viash</title>
<link>https://viash.io/blog/index.html</link>
<height>38</height>
<width>144</width>
</image>
<generator>quarto-1.2.335</generator>
<lastBuildDate>Wed, 08 Mar 2023 00:00:00 GMT</lastBuildDate>
<item>
  <title>Viash 0.7.1</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.7.1/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This is a minor release which improves caching in VDSL3 components and changes the formats of the schema files for the Viash config and CLI.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><code>DataflowHelper</code>: Add assertions and <code>def</code>s.</li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>VDSL3</code>: Only the first two elements from an event in a channel are now passed to a process. This avoids calculating cache entries based on arguments that are not used by the process, causing false-negative cache misses.</p></li>
<li><p><code>config_schema</code>:</p>
<ul>
<li>Correct some incorrect markdown tags.</li>
<li>Add project config.</li>
<li>Correct documentation/markdown tags to the correct order.</li>
<li>Add summary description and example for ‘resource’ and ‘argument’, to be used on the reference website.</li>
<li>Add documentation for the Nextflow directives.</li>
</ul></li>
<li><p><code>cli_schema</code>: Correct documentation/markdown tags to the correct order.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.7.1/index.html</guid>
  <pubDate>Wed, 08 Mar 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.7.0</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.7.0/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<ul>
<li><p>Default namespace separator has been changed from <code>_</code> to <code>/</code>. This means Docker images will be named <code>&lt;Registry&gt;/&lt;Organization&gt;/&lt;Namespace&gt;/&lt;Name&gt;</code> by default. For example, <code>ghcr.io/openpipelines-bio/mapping/cellranger_count</code> instead of <code>ghcr.io/openpipelines-bio/mapping_cellranger_count</code>.</p></li>
<li><p>Removed deprecated code of unused functionality to simplify code.</p>
<ul>
<li>Shorthand notation for specitying input/output arguments</li>
<li>Shorthand notation for specifying Docker requirements</li>
<li>Legacy Nextflow platform</li>
</ul></li>
<li><p>Improvements in VDSL3 and the Nextflow Workflow Helper to make behaviour more predictable and fixing some bugs in the meantime. Run the following to get access to the updated helpers:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><span class="va" style="color: #111111;">WF_DIR</span><span class="op" style="color: #5E5E5E;">=</span><span class="st" style="color: #20794D;">"src/wf_utils"</span></span>
<span id="cb1-2"><span class="kw" style="color: #003B4F;">[[</span> <span class="ot" style="color: #003B4F;">-d</span> <span class="va" style="color: #111111;">$WF_DIR</span> <span class="kw" style="color: #003B4F;">]]</span> <span class="kw" style="color: #003B4F;">||</span> <span class="fu" style="color: #4758AB;">mkdir</span> <span class="at" style="color: #657422;">-p</span> <span class="va" style="color: #111111;">$WF_DIR</span></span>
<span id="cb1-3"><span class="ex" style="color: null;">viash</span> export resource platforms/nextflow/ProfilesHelper.config <span class="op" style="color: #5E5E5E;">&gt;</span> <span class="va" style="color: #111111;">$WF_DIR</span>/ProfilesHelper.config</span>
<span id="cb1-4"><span class="ex" style="color: null;">viash</span> export resource platforms/nextflow/WorkflowHelper.nf <span class="op" style="color: #5E5E5E;">&gt;</span> <span class="va" style="color: #111111;">$WF_DIR</span>/WorkflowHelper.nf</span>
<span id="cb1-5"><span class="ex" style="color: null;">viash</span> export resource platforms/nextflow/DataflowHelper.nf <span class="op" style="color: #5E5E5E;">&gt;</span> <span class="va" style="color: #111111;">$WF_DIR</span>/DataflowHelper.nf</span></code></pre></div></li>
<li><p>Improvements to test benches and several bug fixes.</p></li>
</ul>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="breaking-changes" class="level3">
<h3 class="anchored" data-anchor-id="breaking-changes">BREAKING CHANGES</h3>
<ul>
<li><p>Viash config: Previously deprecated fields are now removed.</p>
<ul>
<li><code>functionality.inputs</code>: Use <code>arguments</code> or <code>argument_groups</code> instead.</li>
<li><code>functionality.outputs</code>: Use <code>arguments</code> or <code>argument_groups</code> instead.</li>
<li><code>functionality.tests</code>: Use <code>test_resources</code> instead. No functional difference.</li>
<li><code>functionality.enabled</code>: Use <code>status: enabled</code> instead.</li>
<li><code>functionality.requirements.n_proc</code>: Use <code>cpus</code> instead.</li>
<li><code>platforms.DockerPlatform.privileged</code>: Add a <code>--privileged</code> flag in <code>run_args</code> instead.</li>
<li><code>platforms.DockerPlatform.apk</code>: Use <code>setup: [{ type: apk, packages: ... }]</code> instead.</li>
<li><code>platforms.DockerPlatform.apt</code>: Use <code>setup: [{ type: apt, packages: ... }]</code> instead.</li>
<li><code>platforms.DockerPlatform.yum</code>: Use <code>setup: [{ type: yum, packages: ... }]</code> instead.</li>
<li><code>platforms.DockerPlatform.r</code>: Use <code>setup: [{ type: r, packages: ... }]</code> instead.</li>
<li><code>platforms.DockerPlatform.python</code>: Use <code>setup: [{ type: python, packages: ... }]</code> instead.</li>
<li><code>platforms.DockerPlatform.docker</code>: Use <code>setup: [{ type: docker, run: ... }]</code> instead.</li>
<li><code>platforms.DockerPlatform.docker.setup.resources</code>: Use <code>setup: [{ type: docker, copy: ... }]</code> instead.</li>
<li><code>platforms.NextflowLegacy</code>: Use the Nextflow VDSL3 platform instead.</li>
<li><code>functionality.ArgumentGroups</code>: No longer supports strings referring to arguments in the <code>arguments:</code> section. Instead directly put the arguments inside the argument groups.</li>
</ul></li>
<li><p><code>viash_install</code>: The bootstrap script has been reworked in line with the project config introduced in 0.6.4:</p>
<ul>
<li>The default location for installing the Viash executable is now <code>./viash</code> (was: <code>bin/viash</code>).</li>
<li>The new <code>viash_install</code> support <code>--output</code> and <code>--tag</code>.</li>
<li>The various settings that existed in <code>viash_install</code> (organisation, tag, …) are moved to the project config.</li>
</ul>
<p>Please note that this new <code>viash_install</code> bootstrap script can be run from the CLI using:</p>
<pre><code>curl -fsSL dl.viash.io | bash</code></pre>
<p>The old <code>get.viash.io</code> is still available but points to the version 0.6.7 version of this component and is deprecated.</p></li>
<li><p><code>WorkflowHelper</code>: <code>paramsToList</code>, <code>paramsToChannel</code> and <code>viashChannel</code> are now deprecated and will be removed in a future release.</p></li>
<li><p><code>viash (ns) build</code>: Change the default value of the namespace separator in a Docker platform from <code>_</code> to <code>/</code>. Add <code>".platforms[.type == 'docker'].namespace_separator := '_'"</code> to the project config <code>_viash.yaml</code> to revert to the previous behaviour.</p></li>
</ul>
</section>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><code>VDSL3</code>: now uses the newly implemented <code>channelFromParams</code> and <code>preprocessInputs</code> instead of <code>viashChannel</code>.</li>
</ul>
</section>
<section id="new-features" class="level3">
<h3 class="anchored" data-anchor-id="new-features">NEW FEATURES</h3>
<ul>
<li><code>WorkflowHelper</code>: Added <code>preprocessInputs</code> and <code>channelFromParams</code> to replace <code>paramsToList</code>, <code>paramsToChannel</code> and <code>viashChannel</code>. This refactor allows processing parameters that are already in a Channel using <code>preprocessInputs</code>, which is necessary when passing parameters from a workflow to a subworkflow in a Nextflow pipeline.</li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>Main</code>: Capture build, setup and push errors and output an exit code.</p></li>
<li><p><code>File downloading</code>: Add check to pre-emptively catch file errors (e.g.&nbsp;404).</p></li>
<li><p><code>Scala</code>: Updated to Scala 2.13 and updated several dependencies.</p></li>
<li><p><code>Main</code>: Improve <code>match</code> completeness in some edge cases and throw exceptions where needed.</p></li>
<li><p><code>Changelog</code>: Reformat the changelog to a more structured format. For every release, there is now a date, title, and summary. This both improves the changelog itself but can then also be used to postprocess the CHANGELOG programmatically.</p></li>
<li><p><code>VDSL3</code>: Add a default value for <code>id</code> when running a VDSL3 module as a standalone pipeline.</p></li>
<li><p><code>TestBenches</code>:</p>
<ul>
<li>Verify switching of Viash versions</li>
<li>Prepare ConfigDeriver by copying base resources to the targetFolder. Use cases so far showed that it’s always required and it simplifies the usage.</li>
<li>Remove some old &amp; unmaintained IntelliJ Idea <code>editor-fold</code> tags. Given that the testbenches were split up, these were broken but also no longer needed.</li>
<li>Add 2 testbenches for computational requirements when running <code>viash run</code> or <code>viash test</code>.</li>
<li>Added tests for different values for the <code>--id</code> and <code>--param_list</code> parameters of VDSL3 modules.</li>
</ul></li>
<li><p><code>viash test</code>: Use <code>test</code> as a random tag during testing, instead of <code>test</code> plus a random string.</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>WorkflowHelper</code>: fixed where passing a relative path as <code>--param_list</code> would cause incorrect resolving of input files.</p></li>
<li><p><code>Testbenches</code>: Fix GitTest testbench to correctly increment temporary folder naming and dispose them after the test finishes.</p></li>
<li><p><code>viash xxx url</code>: Fix passing a url to viash as the config file to process. Add a short testbench to test principle functionality.</p></li>
<li><p><code>Testbenches</code>: Simplify <code>testr</code> container.</p></li>
<li><p><code>Main</code>: Improve error reporting to the user in some cases where files or folders can’t be found. Depending on the thrown exception, more or less context was given.</p></li>
<li><p><code>VDSL3</code>: Create parent directory of output files before starting the script.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.7.0/index.html</guid>
  <pubDate>Tue, 28 Feb 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.7</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.7/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>Another minor release which contains several quality of life improvements for the Nextflow VDSL3 platform, as well as automated warnings for deprecated functionality.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>NextflowPlatform</code>: Create directories during a stub run when output path is a nested directory (#314).</p></li>
<li><p>Automatically generate a warning for deprecated parameters while parsing a .viash.yaml configuration file using the inline documentation deprecation annotations.</p></li>
<li><p>Add a “planned removal” field in the deprecation annotations.</p></li>
<li><p>Add testbenches to verify proper formatting of the deprecation versions and compare current version to the planned removal version so no deprecated parameters get to stick around beyond what was planned.</p></li>
<li><p><code>NextflowPlatform</code>: Nextflow processes are created lazily; that is, only when running a Nextflow workflow (#321).</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><code>NextflowPlatform</code>: Automatically split Viash config strings into strings of length 65000 since the JVM has a limit (65536) on the length of string constants (#323).</li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.7/index.html</guid>
  <pubDate>Wed, 14 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.6</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.6/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This release fixes an issue where stderr was being redirected to stdout.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li>Don’t redirect stderr to stdout when switching Viash versions (#312).</li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.6/index.html</guid>
  <pubDate>Tue, 06 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.5</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.5/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>A small update which fixes an issue with <code>viash ns list</code> that was introduced in Viash 0.6.3.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><code>viash ns list</code>: When the <code>-p &lt;platform&gt;</code> is defined, filter the output by that platform.</li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.5/index.html</guid>
  <pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.4</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.4/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This release adds features related to managing Viash projects and allows for better runtime introspection of Nextflow VDSL3 modules.</p>
<p>The most notable changes are:</p>
<ul>
<li><p>You can switch versions of Viash using the <code>VIASH_VERSION</code> environment variable! Example:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><span class="va" style="color: #111111;">VIASH_VERSION</span><span class="op" style="color: #5E5E5E;">=</span>0.6.0 <span class="ex" style="color: null;">viash</span> <span class="at" style="color: #657422;">--version</span></span></code></pre></div>
<p>More importantly, you can specify the version of Viash you want in a project config. See below for more info.</p></li>
<li><p>Introducing Viash project config files as an experimental feature. It allows storing project-related settings in a <code>_viash.yaml</code> config file which you should store at the root of your repository. Example:</p>
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb2-1"><span class="fu" style="color: #4758AB;">viash_version</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="fl" style="color: #AD0000;">0.6.4</span></span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;">source</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> src</span></span>
<span id="cb2-3"><span class="fu" style="color: #4758AB;">target</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> target</span></span>
<span id="cb2-4"><span class="fu" style="color: #4758AB;">config_mods</span><span class="kw" style="color: #003B4F;">: </span><span class="ch" style="color: #20794D;">|</span></span>
<span id="cb2-5">  .platforms[.type == 'docker'].target_registry := 'ghcr.io'</span>
<span id="cb2-6">  .platforms[.type == 'docker'].target_organization := 'viash-io'</span>
<span id="cb2-7">  .platforms[.type == 'docker'].namespace_separator := '/'</span>
<span id="cb2-8">  .platforms[.type == 'docker'].target_image_source := 'https://github.com/viash-io/viash'</span></code></pre></div></li>
<li><p>It’s now possible to specify in which order Viash will merge Viash configs. Example:</p>
<div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb3-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb3-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> foo</span></span>
<span id="cb3-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb3-4"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">__merge__</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> obj_input.yaml</span></span>
<span id="cb3-5"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--one"</span></span>
<span id="cb3-6"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">__merge__</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;">.</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> obj_input.yaml</span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb3-7"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--two"</span></span>
<span id="cb3-8"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">__merge__</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;">obj_input.yaml</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> .</span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb3-9"><span class="at" style="color: #657422;">     </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--three"</span></span></code></pre></div></li>
</ul>
<p>Please take note of the following breaking changes:</p>
<ul>
<li><p>Passing non-existent paths to a Viash component will cause the component to generate an error when no file or folder is found. Set <code>must_exist</code> to <code>false</code> to revert to the previous behaviour.</p></li>
<li><p>The arguments <code>--write_meta/-w</code> and <code>--meta/-m</code> no longer exist, because every <code>viash build/run/test</code> run will generate a <code>.config.vsh.yaml</code> meta file.</p></li>
</ul>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="breaking-changes" class="level3">
<h3 class="anchored" data-anchor-id="breaking-changes">BREAKING CHANGES</h3>
<ul>
<li><p>Config: Viash configs whose filenames start with a <code>.</code> are ignored (#291).</p></li>
<li><p><code>viash build</code>: <code>--write_meta/-m</code> and <code>--meta/-m</code> arguments have been removed. Instead, the <code>.config.vsh.yaml</code> file is always created when building Viash components (#293).</p></li>
<li><p><code>FileArgument</code>: Default setting of <code>must_exist</code> was changed from <code>false</code> to <code>true</code>. As such, the component will throw an error by default if an input file or output file is missing (#295).</p></li>
<li><p>Config merging: <code>__inherits__</code> has been renamed to <code>__merge__</code>.</p></li>
</ul>
</section>
<section id="new-functionality" class="level3">
<h3 class="anchored" data-anchor-id="new-functionality">NEW FUNCTIONALITY</h3>
<ul>
<li><p>You can switch versions of Viash using the <code>VIASH_VERSION</code> environment variable (#304)! Example:</p>
<div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb4-1"><span class="va" style="color: #111111;">VIASH_VERSION</span><span class="op" style="color: #5E5E5E;">=</span>0.6.0 <span class="ex" style="color: null;">viash</span> <span class="at" style="color: #657422;">--version</span></span></code></pre></div></li>
<li><p>Traceability: Running <code>viash build</code> and <code>viash test</code> creates a <code>.config.vsh.yaml</code> file by default, which contains the processed config of the component. As a side effect, this allows for reading in the <code>.config.vsh.yaml</code> from within the component to learn more about the component being tested (#291 and #293).</p></li>
<li><p><code>FileArgument</code>: Added <code>create_parent</code> option, which will check if the directory of an output file exists and create it if necessary (#295).</p></li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>viash run</code>, <code>viash test</code>: When running or testing a component, Viash will add an extension to the temporary file that is created. Before: <code>/tmp/viash-run-wdckjnce</code>, now: <code>/tmp/viash-run-wdckjnce.py</code> (#302).</p></li>
<li><p>NextflowPlatform: Add <code>DataflowHelper.nf</code> as a retrievable resource in Viash (#301).</p></li>
<li><p>NextflowPlatform: During a stubrun, argument requirements are turned off and the <code>publishDir</code>, <code>cpus</code>, <code>memory</code>, and <code>label</code> directives are also removed from the process (#301).</p></li>
<li><p><code>NextflowPlatform</code>: Added a <code>filter</code> processing argument to filter the incoming channel after the <code>map</code>, <code>mapData</code>, <code>mapId</code> and <code>mapPassthrough</code> have been applied (#296).</p></li>
<li><p><code>NextflowPlatform</code>: Added the Viash config to the Nextflow module for later introspection (#296). For example:</p>
<div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode groovy code-with-copy"><code class="sourceCode groovy"><span id="cb5-1">include <span class="op" style="color: #5E5E5E;">{</span> foo <span class="op" style="color: #5E5E5E;">}</span> from <span class="st" style="color: #20794D;">"</span><span class="ss" style="color: #20794D;">$targetDir</span><span class="st" style="color: #20794D;">/path/foo/main.nf"</span></span>
<span id="cb5-2"></span>
<span id="cb5-3">foo<span class="op" style="color: #5E5E5E;">.</span><span class="fu" style="color: #4758AB;">run</span><span class="op" style="color: #5E5E5E;">(</span>filter<span class="op" style="color: #5E5E5E;">:</span> <span class="op" style="color: #5E5E5E;">{</span> tup <span class="op" style="color: #5E5E5E;">-&gt;</span></span>
<span id="cb5-4">  <span class="dt" style="color: #AD0000;">def</span> preferredNormalization <span class="op" style="color: #5E5E5E;">=</span> foo<span class="op" style="color: #5E5E5E;">.</span>config<span class="op" style="color: #5E5E5E;">.</span>functionality<span class="op" style="color: #5E5E5E;">.</span>info<span class="op" style="color: #5E5E5E;">.</span>preferred_normalization</span>
<span id="cb5-5">  tup<span class="op" style="color: #5E5E5E;">.</span>normalization_id <span class="op" style="color: #5E5E5E;">==</span> preferredNormalization</span>
<span id="cb5-6"><span class="op" style="color: #5E5E5E;">})</span></span></code></pre></div>
<h3 id="bug-fixes" class="anchored">BUG FIXES</h3></li>
<li><p><code>BashWrapper</code>: Don’t overwrite meta values when trailing arguments are provided (#295).</p></li>
</ul>
</section>
<section id="experimental-features" class="level3">
<h3 class="anchored" data-anchor-id="experimental-features">EXPERIMENTAL FEATURES</h3>
<ul>
<li><p>Viash Project: Viash will automatically search for a <code>_viash.yaml</code> file in the directory of a component and its parent directories (#294).</p>
<p>Contents of <code>_viash.yaml</code>:</p>
<div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb6-1"><span class="fu" style="color: #4758AB;">source</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> src</span></span>
<span id="cb6-2"><span class="fu" style="color: #4758AB;">target</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> target</span></span>
<span id="cb6-3"><span class="fu" style="color: #4758AB;">config_mods</span><span class="kw" style="color: #003B4F;">: </span><span class="ch" style="color: #20794D;">|</span></span>
<span id="cb6-4">  .platforms[.type == 'docker'].target_registry := 'ghcr.io'</span>
<span id="cb6-5">  .platforms[.type == 'docker'].target_organization := 'viash-io'</span>
<span id="cb6-6">  .platforms[.type == 'docker'].namespace_separator := '/'</span>
<span id="cb6-7">  .platforms[.type == 'docker'].target_image_source := 'https://github.com/viash-io/viash'</span></code></pre></div></li>
<li><p>Config merging: Allow specifying the order in which Viash will merge configs (#289). If <code>.</code> is not in the list of inherited objects, it will be added at the end.</p>
<p>Contents of <code>config.vsh.yaml</code>:</p>
<div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb7-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb7-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> foo</span></span>
<span id="cb7-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb7-4"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">__merge__</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> obj_input.yaml</span></span>
<span id="cb7-5"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--one"</span></span>
<span id="cb7-6"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">__merge__</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;">.</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> obj_input.yaml</span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb7-7"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--two"</span></span>
<span id="cb7-8"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">__merge__</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;">obj_input.yaml</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> .</span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb7-9"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--three"</span></span></code></pre></div>
<p>Contents of <code>obj_input.yaml</code>:</p>
<div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb8-1"><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb8-2"><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> --input</span></span>
<span id="cb8-3"><span class="fu" style="color: #4758AB;">description</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> A h5ad file</span></span></code></pre></div>
<p>Output of <code>viash config view config.vsh.yaml</code> (stripped irrelevant bits):</p>
<div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb9-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb9-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb9-3"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"file"</span></span>
<span id="cb9-4"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--one"</span></span>
<span id="cb9-5"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">description</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"A h5ad file"</span></span>
<span id="cb9-6"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"file"</span></span>
<span id="cb9-7"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--input"</span></span>
<span id="cb9-8"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">description</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"A h5ad file"</span></span>
<span id="cb9-9"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"file"</span></span>
<span id="cb9-10"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--three"</span></span>
<span id="cb9-11"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">description</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"A h5ad file"</span></span></code></pre></div></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.4/index.html</guid>
  <pubDate>Wed, 30 Nov 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.3</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.3/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This release features contains mostly quality of life improvements and some experimental functionality. Most notably:</p>
<ul>
<li><p><code>viash ns list</code> now only returns a config just once instead of once per platform.</p></li>
<li><p>A functionality’s info field can contain any data structures. An <code>.info</code> field was added to arguments as well.</p></li>
<li><p>Bug fixes for using Viash with podman, Nextflow&gt;=22.10 and R&lt;4.0.</p></li>
<li><p>Experimental support for inheriting from config partials.</p></li>
</ul>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><p><code>Config</code>: Made major internal changes w.r.t. how config files are read and at which point a platform (native, docker, nextflow) is applied to the functionality script. The only visible side effect is that <code>viash ns list</code> will output each config only once instead of multiple times.</p></li>
<li><p><code>Functionality</code>: Structured annotation can be added to a functionality and its arguments using the <code>info</code> field. Example:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> foo</span></span>
<span id="cb1-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">info</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-4"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">site</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> https://abc.xyz</span></span>
<span id="cb1-5"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">tags</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;"> one</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> two</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> three </span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb1-6"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-7"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> --foo</span></span>
<span id="cb1-8"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> string</span></span>
<span id="cb1-9"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">info</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-10"><span class="at" style="color: #657422;">        </span><span class="fu" style="color: #4758AB;">foo</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> bar</span></span>
<span id="cb1-11"><span class="at" style="color: #657422;">        </span><span class="fu" style="color: #4758AB;">a</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-12"><span class="at" style="color: #657422;">          </span><span class="fu" style="color: #4758AB;">b</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-13"><span class="at" style="color: #657422;">            c</span></span></code></pre></div></li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>BashWrapper</code>: Allow printing the executor command by adding <code>---verbose ---verbose</code> to a <code>viash run</code> or an executable.</p></li>
<li><p><code>Testbenches</code>: Rework <code>MainBuildAuxiliaryNativeParameterCheck</code> to create stimulus files and loop over the file from bash instead of looping natively. This prevents creating thousands of new processes which would only test a single parameter. Note this still calls the main script for each stimulus separately, but that was the case anyway, only much much worse.</p></li>
<li><p><code>Testbenches</code>: Split some grouped test benches into slightly smaller test benches that group tested functionality better.</p></li>
<li><p><code>Annotations</code>: Complete the config schema annotations. Make sure all arguments are documented. Added an annotation <code>internalFunctionality</code> and <code>undocumented</code> for arguments that should not be documented. Added a testbench that verifies that all arguments are in fact annotated, skipping those that are not in the class constructor. Adds a hierarchy field in the <code>__this__</code> member to list the relation of the own and parent classes.</p></li>
<li><p><code>Testbenches</code>: Add exit code to helper method <code>testMainWithStdErr</code>.</p></li>
<li><p><code>Testbenches</code>: Add testbench to verify viash underscore components (viash_build, viash_install, viash_push, viash_skeleton, viash_test).</p></li>
<li><p><code>Testbenches</code>: Update viash underscore component tests to use <code>$meta_executable</code>.</p></li>
<li><p><code>viash ns exec</code>: Allow choosing whether the <code>{platform}</code> field should be filled in, based on the <code>--apply_platform</code> parameter.</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>DockerPlatform</code>: Remove duplicate auto-mounts (#257).</p></li>
<li><p><code>Underscore component tests</code>: Fix tests for <code>viash_skeleton</code> and <code>viash_test</code> components.</p></li>
<li><p><code>NextflowVDSL3Platform</code>: Fix ‘Module scriptPath has not been defined yet’ error when Nextflow&gt;=22.10 (#269).</p></li>
<li><p><code>config inject</code>: Doesn’t work when <code>must_exist == true</code> (#273).</p></li>
<li><p><code>RScript</code>: Fix compatibility issue where the new character escaping in <code>r_script</code> required R&gt;=4.0 (#275). Escaping is now handled without using the new <code>r'(foo)'</code> notation.</p></li>
</ul>
</section>
<section id="deprecation" class="level3">
<h3 class="anchored" data-anchor-id="deprecation">DEPRECATION</h3>
<ul>
<li><p><code>DockerRequirements</code>: The <code>resources:</code> setting has been deprecated and will be removed in Viash 0.7.0. Please use <code>copy:</code> instead.</p></li>
<li><p><code>DockerRequirements</code>: The <code>privileged:</code> setting has been deprecated and will be removed in Viash 0.7.0. Please use <code>run_args: "--privileged"</code> instead.</p></li>
</ul>
</section>
<section id="experimental-functionality" class="level3">
<h3 class="anchored" data-anchor-id="experimental-functionality">EXPERIMENTAL FUNCTIONALITY</h3>
<ul>
<li><p><code>Config</code>: Any part of a Viash config can use inheritance to fill data (#271). For example: Contents of <code>src/test/config.vsh.yaml</code>:</p>
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb2-1"><span class="fu" style="color: #4758AB;">__inherits__</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> ../api/base.yaml</span></span>
<span id="cb2-2"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> test</span></span>
<span id="cb2-4"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">resources</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-5"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> bash_script</span></span>
<span id="cb2-6"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">path</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> script.sh</span></span>
<span id="cb2-7"><span class="fu" style="color: #4758AB;">      text</span><span class="kw" style="color: #003B4F;">: </span><span class="ch" style="color: #20794D;">|</span></span>
<span id="cb2-8">        echo Copying $par_input to $par_output</span>
<span id="cb2-9">        cp $par_input $par_output</span></code></pre></div>
<p>Contents of <code>src/api/base.yaml</code>:</p>
<div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb3-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb3-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb3-3"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--input"</span></span>
<span id="cb3-4"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb3-5"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--output"</span></span>
<span id="cb3-6"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb3-7"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">direction</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> output</span></span></code></pre></div>
<p>The resulting yaml will be:</p>
<div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb4-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb4-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> test</span></span>
<span id="cb4-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb4-4"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--input"</span></span>
<span id="cb4-5"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb4-6"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--output"</span></span>
<span id="cb4-7"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb4-8"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">direction</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> output</span></span>
<span id="cb4-9"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">resources</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb4-10"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> bash_script</span></span>
<span id="cb4-11"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">path</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> script.sh</span></span>
<span id="cb4-12"><span class="fu" style="color: #4758AB;">      text</span><span class="kw" style="color: #003B4F;">: </span><span class="ch" style="color: #20794D;">|</span></span>
<span id="cb4-13">        echo Copying $par_input to $par_output</span>
<span id="cb4-14">        cp $par_input $par_output</span></code></pre></div></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.3/index.html</guid>
  <pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.2</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.2/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This is a quick release to push two bug fixes related to security and being able to run Nextflow with optional output files.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>Git</code>: Strip credentials from remote repositories when retrieving the path.</p></li>
<li><p><code>VDSL3</code>: Allow optional output files to be <code>null</code>.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.2/index.html</guid>
  <pubDate>Tue, 11 Oct 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.1</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.1/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This release contains mostly minor improvements of functionality released in Viash 0.6.0. Most notably:</p>
<ul>
<li><p>Support was added for <code>type: long</code> arguments</p></li>
<li><p><code>meta["n_proc"]</code> has been renamed to <code>meta["cpus"]</code>. <code>meta["cpus"]</code> is now an integer, whereas <code>meta["memory_*"]</code> are now longs.</p></li>
<li><p><code>viash ns exec</code> is able to recognise <code>{platform}</code> and <code>{namespace}</code> fields.</p></li>
<li><p>And various bug fixes and improvements to documentation and unit testing.</p></li>
</ul>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="breaking-changes" class="level3">
<h3 class="anchored" data-anchor-id="breaking-changes">BREAKING CHANGES</h3>
<ul>
<li><p>Deprecated usage <code>resources_dir</code> variable inside scripts, use <code>meta["resources_dir"]</code> instead (or <code>$meta_resources_dir</code> in Bash, or <code>meta$resources_dir</code> in R).</p></li>
<li><p>Deprecated <code>meta["n_proc"]</code> in favour for <code>meta["cpus"]</code>.</p></li>
</ul>
</section>
<section id="new-functionality" class="level3">
<h3 class="anchored" data-anchor-id="new-functionality">NEW FUNCTIONALITY</h3>
<ul>
<li><p><code>viash ns exec</code>: Added two more fields:</p>
<ul>
<li><code>{platform}</code>: the platform name (if applicable)</li>
<li><code>{namespace}</code>: the namespace of the component</li>
</ul></li>
<li><p><code>LongArgument</code>: Added support for 64-bit integers with <code>type: long</code> as opposed to <code>type: integer</code> which are 32-bit integers.</p></li>
</ul>
</section>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li>Allow passing integers/doubles/booleans to string parameters (#225). Removed the ‘Version’ helper class.</li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>meta["cpus"]</code> is now an integer, <code>meta["memory_*"]</code> are now longs (#224).</p></li>
<li><p><code>DockerPlatform</code>: Only store author names in the authors metadata.</p></li>
<li><p><code>NextflowPlatform</code>: Only store author names in the authors metadata.</p></li>
<li><p><code>Argument[_]</code>: Turn <code>multiple_sep</code> from <code>Char</code> into <code>String</code>.</p></li>
</ul>
</section>
<section id="internal-changes" class="level3">
<h3 class="anchored" data-anchor-id="internal-changes">INTERNAL CHANGES</h3>
<ul>
<li><p>All <code>meta[...]</code> variables are now processed similar to <code>Argument[_]</code>s, instead of using custom code to convert object types and detect Docker mounts.</p></li>
<li><p><code>Escaper</code>: Make more generic Escaper helper class.</p></li>
</ul>
</section>
<section id="documentation" class="level3">
<h3 class="anchored" data-anchor-id="documentation">DOCUMENTATION</h3>
<ul>
<li><p>Hardcoded URLs pointing to viash.io in the documentation annotations were replaced with a new keyword system.</p></li>
<li><p>Replaced references to “DSL” with “Dynamic Config Modding” in the <code>--help</code> output.</p></li>
<li><p>Added an example for Ruby based Docker setups.</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>viash ns</code>: Reverse exit code outputs, was returning 1 when everything was OK and 0 when errors were detected (#227).</p></li>
<li><p><code>viash config inject</code>: Fix processing of arguments when argument groups are defined (#231).</p></li>
<li><p>Fixed a few typos in the CLI.</p></li>
<li><p>Fixed the formatting of <code>ns exec</code> documentation.</p></li>
<li><p><code>VDSL3</code>: Fix stub functionality.</p></li>
<li><p><code>VDSL3</code>: Fix error during error message.</p></li>
<li><p><code>viash test</code>: Fix issue where <code>VIASH_TEMP</code> could not be a relative directory when running <code>viash test</code> (#242).</p></li>
<li><p><code>BashScript</code>, <code>CSharpScript</code>, <code>JavaScriptScript</code>, <code>PythonScript</code>, <code>RScript</code>, <code>ScalaScript</code>: Fix quoting issues of certain characters (#113).</p></li>
</ul>
</section>
<section id="deprecation" class="level3">
<h3 class="anchored" data-anchor-id="deprecation">DEPRECATION</h3>
<ul>
<li><code>NextflowPlatform</code>: Deprecate <code>--param_list_format</code> parameter.</li>
</ul>
</section>
<section id="testing" class="level3">
<h3 class="anchored" data-anchor-id="testing">TESTING</h3>
<ul>
<li><p><code>BashScript</code>, <code>CSharpScript</code>, <code>JavaScriptScript</code>, <code>PythonScript</code>, <code>RScript</code>, <code>ScalaScript</code>: Implement more rigorous testing of which characters are escaped.</p></li>
<li><p><code>BashWrapper</code>: Escape usage of <code>multiple_sep</code>. This fixes various checks and transformations not working when when <code>multiple_sep</code> is set to <code>";"</code> (#235).</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.1/index.html</guid>
  <pubDate>Mon, 03 Oct 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.6.0</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.6.0/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>The first (major) release this year! The biggest changes are:</p>
<ul>
<li><p>Nextflow VDSL3 is now the default Nextflow platform, whereas the legacy Nextflow platform has been deprecated.</p></li>
<li><p>Support for tracking memory and cpu requirements more elegantly.</p></li>
<li><p>Grouping arguments in groups more concisely.</p></li>
<li><p>The addition of a <code>viash ns exec</code> command, to be able to execute commands on Viash components more easily.</p></li>
</ul>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="breaking-changes" class="level3">
<h3 class="anchored" data-anchor-id="breaking-changes">BREAKING CHANGES</h3>
<ul>
<li><p><code>NextflowPlatform</code>: <code>variant: vdsl3</code> is now the default NextflowPlatform. <code>variant: legacy</code> has been deprecated.</p></li>
<li><p><code>Functionality</code>: Fields <code>.inputs</code> and <code>.outputs</code> has been deprecated. Please use <code>.argument_groups</code> instead (#186). Before:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">inputs</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-3"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--foo"</span></span>
<span id="cb1-4"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">outputs</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-5"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--bar"</span></span></code></pre></div>
<p>Now:</p>
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb2-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">argument_groups</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-3"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Inputs</span></span>
<span id="cb2-4"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-5"><span class="at" style="color: #657422;">        </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--foo"</span></span>
<span id="cb2-6"><span class="at" style="color: #657422;">          </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb2-7"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Outputs</span></span>
<span id="cb2-8"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-9"><span class="at" style="color: #657422;">        </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--bar"</span></span>
<span id="cb2-10"><span class="at" style="color: #657422;">          </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb2-11"><span class="at" style="color: #657422;">          </span><span class="fu" style="color: #4758AB;">direction</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> output</span></span></code></pre></div></li>
<li><p>Passing strings to an argument group’s arguments has been deprecated. Please simply copy the argument itself into the argument group (#186). Before:</p>
<div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb3-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb3-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb3-3"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--foo"</span></span>
<span id="cb3-4"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb3-5"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--bar"</span></span>
<span id="cb3-6"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb3-7"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">direction</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> output</span></span>
<span id="cb3-8"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">argument_groups</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb3-9"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Inputs</span></span>
<span id="cb3-10"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;"> foo </span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb3-11"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Outputs</span></span>
<span id="cb3-12"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;"> bar </span><span class="kw" style="color: #003B4F;">]</span></span></code></pre></div>
<p>Now:</p>
<div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb4-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb4-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">argument_groups</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb4-3"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Inputs</span></span>
<span id="cb4-4"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb4-5"><span class="at" style="color: #657422;">        </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--foo"</span></span>
<span id="cb4-6"><span class="at" style="color: #657422;">          </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb4-7"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Outputs</span></span>
<span id="cb4-8"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb4-9"><span class="at" style="color: #657422;">        </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"--bar"</span></span>
<span id="cb4-10"><span class="at" style="color: #657422;">          </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> file</span></span>
<span id="cb4-11"><span class="at" style="color: #657422;">          </span><span class="fu" style="color: #4758AB;">direction</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> output</span></span></code></pre></div></li>
</ul>
</section>
<section id="new-functionality" class="level3">
<h3 class="anchored" data-anchor-id="new-functionality">NEW FUNCTIONALITY</h3>
<ul>
<li><p>Allow setting the number of processes and memory limit from within the Viash config, as well as a list of required commands. Example:</p>
<div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb5-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb5-2"><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> foo</span></span>
<span id="cb5-3"><span class="fu" style="color: #4758AB;">requirements</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb5-4"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">cpus</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="dv" style="color: #AD0000;">10</span></span>
<span id="cb5-5"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">memory</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> 10GB</span></span>
<span id="cb5-6"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">commands</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;"> bash</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> r</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> perl </span><span class="kw" style="color: #003B4F;">]</span></span></code></pre></div>
<p>You can override the default requirements at runtime:</p>
<ul>
<li><code>./foo ---cpus 4 ---memory 100PB</code> (for NativePlatform or DockerPlatform)</li>
<li>By adding <code>process.cpus = 4</code> and <code>process.memory "100 PB"</code> to a nextflow.config (for NextflowPlatform)</li>
</ul>
<p>This results the following meta variables to be injected into a script:</p>
<ul>
<li><code>meta_cpus</code> (in Bash) or <code>meta["cpus"]</code> (in any other language): Number of processes the script is allowed to spawn.</li>
<li><code>meta_memory_b</code> (in Bash) or <code>meta["memory_b"]</code> (in any other language): Amount of memory the script is allowed to allocate, in bytes.</li>
<li><code>meta_memory_kb</code> (in Bash) or <code>meta["memory_kb"]</code> (in any other language): Same but in kilobytes, rounded up.</li>
<li><code>meta_memory_mb</code> (in Bash) or <code>meta["memory_mb"]</code> (in any other language): Same but in megabytes, rounded up.</li>
<li><code>meta_memory_gb</code> (in Bash) or <code>meta["memory_gb"]</code> (in any other language): Same but in gigabytes, rounded up.</li>
<li><code>meta_memory_tb</code> (in Bash) or <code>meta["memory_tb"]</code> (in any other language): Same but in terabytes, rounded up.</li>
<li><code>meta_memory_pb</code> (in Bash) or <code>meta["memory_pb"]</code> (in any other language): Same but in petabytes, rounded up.</li>
</ul></li>
<li><p><code>viash ns exec</code>: Added a command for executing arbitrary commands for all found Viash components. The syntax of this command is inspired by <code>find . -exec echo {} \;</code>.</p>
<p>The following fields are automatically replaced:</p>
<ul>
<li><code>{}</code> | <code>{path}</code>: path to the config file</li>
<li><code>{abs-path}</code>: absolute path to the config file</li>
<li><code>{dir}</code>: path to the parent directory of the config file</li>
<li><code>{abs-dir}</code>: absolute path to the directory of the config file</li>
<li><code>{main-script}</code>: path to the main script (if any)</li>
<li><code>{abs-main-script}</code>: absolute path to the main script (if any)</li>
<li><code>{functionality-name}</code>: name of the component</li>
</ul>
<p>A command suffixed by <code>\;</code> (or nothing) will execute one command for each of the Viash components, whereas a command suffixed by <code>+</code> will execute one command for all Viash components.</p></li>
<li><p><code>ConfigMod</code>: Added a <code>del(...)</code> config mod to be able to delete a value from the yaml. Example: <code>del(.functionality.version)</code>.</p></li>
</ul>
</section>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><p><code>Folder structure</code>: Adjusted the folder structure to correctly reflect the the namespace change of viash from <code>com.dataintuitive.viash</code> to <code>io.viash</code>.</p></li>
<li><p><code>Functionality</code>: Reworked the <code>enabled</code> field from boolean to a <code>status</code> field which can have the following statusses: <code>enabled</code>, <code>disabled</code> and <code>deprecated</code>. When parsing a config file which has the <code>status</code> field set to <code>deprecated</code> a warning message is displayed on stderr. Backwards for <code>enabled</code> is provided where <code>enabled: true</code> =&gt; <code>status: enabled</code> and <code>enabled: false</code> =&gt; <code>status: false</code>. The <code>enabled</code> field is marked deprecated.</p></li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>Resources</code>: Handle edge case when no resources are specified in the <code>vsh.yaml</code> config file and display a warning message.</p></li>
<li><p><code>BashWrapper</code>: Add a warning when an argument containing flags (e.g.&nbsp;<code>--foo</code>) is not recognized and will be handled as a positional argument as this is likely a mistake.</p></li>
<li><p><code>Functionality</code>: Add check to verify there are no double argument names or short names in the config <code>vsh.yaml</code> declarations.</p></li>
<li><p><code>BashWrapper</code>: Add check to verify a parameter isn’t declared twice on the CLI, except in the case <code>multiple: true</code> is declared as then it’s a valid use case.</p></li>
<li><p><code>BashWrapper</code>: For int min/max checking: use native bash functionality so there is no dependency to <code>bc</code>. For double min/max checking: add fallback code to use <code>awk</code> in case <code>bc</code> is not present on the system (most likely to happen when running tests in a docker container).</p></li>
<li><p><code>viash ns list/viash config view</code>: Allow viewing the post-processed argument groups by passing the <code>--parse_argument_groups</code> parameter.</p></li>
</ul>
</section>
<section id="testing" class="level3">
<h3 class="anchored" data-anchor-id="testing">TESTING</h3>
<ul>
<li><p><code>ConfigMod</code>: Added unit tests for condition config mods.</p></li>
<li><p><code>MainTestDockerSuite</code>: Derive config alternatives from the base <code>vsh.yaml</code> instead of adding the changes in separate files. This both reduces file clutter and prevents having to change several files when there are updates in the config format.</p></li>
<li><p><code>GitTest</code>: Added unit tests for Git helper (#216).</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>csharp_script</code>, <code>javascript_script</code>, <code>python_script</code>, <code>r_script</code>, <code>scala_script</code>: Make meta fields for <code>memory</code> and <code>cpus</code> optional.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Don’t generate an error when <code>--publish_dir</code> is not defined and <code>-profile no_publish</code> is used.</p></li>
<li><p><code>Viash run</code>: Viash now properly returns the exit code from the executed script.</p></li>
<li><p><code>Git</code>: Fix incorrect metadata when git repository is empty (#216).</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.6.0/index.html</guid>
  <pubDate>Wed, 07 Sep 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.15</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.15/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This release introduces testbenches and new default argument groups: <code>Inputs</code>, <code>Outputs</code> and <code>Arguments</code>.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="breaking-changes" class="level3">
<h3 class="anchored" data-anchor-id="breaking-changes">BREAKING CHANGES</h3>
<ul>
<li><code>WorkflowHelper::helpMessage</code>: Now only takes one argument, namely the config.</li>
</ul>
</section>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><code>Namespace</code>: Changed the namespace of viash from <code>com.dataintuitive.viash</code> to <code>io.viash</code>.</li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>Testbenches</code>: Add a testbench framework to test lots of character sequences, single or repeating to be tested in the yaml config. This can be used to later extend to other tests.</p></li>
<li><p><code>Testbenches::vdsl3</code>: Add testbenches to verify functionality:</p>
<ul>
<li>Vdsl3’s <code>param_list</code> (<code>yamlblob</code>, <code>yaml</code>, <code>json</code>, <code>csv</code>).</li>
<li>Nextflow’s own <code>params-file</code>.</li>
<li>Vdsl3’s recalculating resource file paths to be relative to the <code>param_list</code> file instead of the workflow file (only available for <code>yaml</code>, <code>json</code>, <code>csv</code>).</li>
<li>Vdsl3’s wrapping of modules to run these as a separate workflow automagically out of the box.</li>
</ul></li>
<li><p><code>Main</code>: Added <code>viash --schema_export</code> which outputs a schema of the Viash config file to console. This is to be used to automate populating the documentation website.</p></li>
<li><p><code>Helper</code>: Split help message by argument group.</p></li>
<li><p><code>Helper</code>: Remove unneeded arguments.</p></li>
<li><p><code>Functionality</code>: Add default groups <code>Inputs</code>, <code>Outputs</code> and <code>Arguments</code> for all arguments missing from user-defined <code>argument_groups</code>.</p></li>
<li><p><code>WorkflowHelper::helpMessage</code>: Rewrite to bring on par with Viash’s help message.</p></li>
<li><p><code>BooleanArguments</code>: Renamed internal class names for BooleanArguments to be better in line with how they are named in the config yaml. <code>BooleanArgumentRegular</code> -&gt; <code>BooleanArgument</code> (in line with <code>boolean</code>) <code>BooleanArgumentTrue</code> -&gt; <code>BooleanTrueArgument</code> (in line with <code>boolean_true</code>) <code>BooleanArgumentFalse</code> -&gt; <code>BooleanFalseArgument</code> (in line with <code>boolean_false</code>)</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>NextflowVdsl3Platform</code>: Change how <code>--id</code> is processed when a VDSL3 module is called from the CLI.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Fix error when param_list is <code>null</code>.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Fix error when optional, multiple arguments are set to <code>null</code>.</p></li>
<li><p><code>Testbenches</code>: Better capture expected error messages while running testbenches again. Code changes right before previous release re-introduced some of the messages.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Fix issue where optional parameters aren’t removed when <code>.run(args: [optarg: null])</code>.</p></li>
<li><p><code>WorkflowHelper::readCsv</code>: Treat empty values as undefined instead of throwing an error.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Use <code>$NXF_TEMP</code> or <code>$VIASH_TEMP</code> as temporary directory if the container engine is not set to <code>docker</code>, <code>podman</code> or <code>charlieengine</code>, else set to <code>/tmp</code>.</p></li>
<li><p><code>Resources</code>: When adding a resource folder, allow a trailing <code>/</code> at the end of the path. Previously this caused the target folder to be erased and the content of the resource folder to be written directly into the target folder.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.15/index.html</guid>
  <pubDate>Thu, 14 Jul 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.14</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.14/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>Argument groups allow for grouping arguments together by function or category, making the <code>--help</code> output a lot more clear for components with a lot of arguments.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="new-functionality" class="level3">
<h3 class="anchored" data-anchor-id="new-functionality">NEW FUNCTIONALITY</h3>
<ul>
<li><p><code>Functionality</code>: Allow specifying argument groups. Example:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-2"><span class="at" style="color: #657422;">  ...</span></span>
<span id="cb1-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">argument_groups</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-4"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> First group</span></span>
<span id="cb1-5"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">arguments</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;">foo</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> bar</span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb1-6"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">description</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Description</span></span></code></pre></div></li>
<li><p>Addition of the <code>viash_nxf_schema</code> component for converting a Viash config (for a workflow) into a nextflow schema file.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Use <code>--param_list</code> to initialise a Nextflow channel with multiple parameter sets. Possible formats are csv, json, yaml, or simply a yaml_blob. A csv should have column names which correspond to the different arguments of this pipeline. A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. A yaml blob can also be passed directly as a parameter. Inside the Nextflow pipeline code, params.param_list can also be used to directly a list of parameter sets. When passing a csv, json or yaml, relative path names are relativized to the location of the parameter file.</p>
<p>Examples:</p>
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode sh code-with-copy"><code class="sourceCode bash"><span id="cb2-1"><span class="ex" style="color: null;">nextflow</span> run <span class="st" style="color: #20794D;">"target/foo/bar/main.nf"</span> <span class="at" style="color: #657422;">--param_list</span> <span class="st" style="color: #20794D;">'[{"id": "foo", "input": "/path/to/bar"}]'</span></span>
<span id="cb2-2"><span class="ex" style="color: null;">nextflow</span> run <span class="st" style="color: #20794D;">"target/foo/bar/main.nf"</span> <span class="at" style="color: #657422;">--param_list</span> <span class="st" style="color: #20794D;">"params.csv"</span> <span class="at" style="color: #657422;">--reference</span> <span class="st" style="color: #20794D;">"/path/to/ref"</span></span></code></pre></div></li>
</ul>
</section>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><p><code>NextflowVdsl3Platform</code>: The functionality is now slurped from a json instead of manually taking care of the formatting in Groovy.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: The <code>--help</code> is auto-generated from the config.</p></li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>NextflowVdsl3Platform</code>: Allow both <code>--publish_dir</code> and <code>--publishDir</code> when <code>auto.publish = true</code>.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Allow passing parameters with multiplicity &gt; 1 from Nextflow CLI.</p></li>
<li><p><code>Main</code>: Added <code>viash --cli_export</code> which outputs the internal cli construction information to console. This is to be used to automate populating the documentation website.</p></li>
<li><p><code>viash ns</code>: Display success and failure summary statistics, printed to stderr.</p></li>
<li><p><code>DataObject</code>: <code>.alternatives</code> is now a <code>OneOrMore[String]</code> instead of <code>List[String]</code>, meaning you can now specify <code>{ type: string, name: "--foo", alternatives: "-f" }</code> instead of <code>{ type: string, name: "--foo", alternatives: [ "-f" ] }</code></p></li>
<li><p><code>BashWrapper</code>: Added metadata field <code>meta_executable</code>, which is a shorthand notation for <code>meta_executable="$meta_resources_dir/$meta_functionality_name"</code></p></li>
</ul>
</section>
<section id="internal-changes" class="level3">
<h3 class="anchored" data-anchor-id="internal-changes">INTERNAL CHANGES</h3>
<ul>
<li><p><code>Arguments</code>: Internal naming of functionality.arguments is changed from DataObject to Arguments. Change is also applied to child classes, e.g.&nbsp;StringObject -&gt; StringArgument.</p></li>
<li><p><code>Script</code>: Allow more control over where injected code ends up.</p></li>
<li><p>Restructure type system to allow type-specific arguments.</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>DockerPlatform</code>: Change <code>org.opencontainers.image.version</code> annotation to <code>functionality.version</code> when set. Additionally fixed retrieving the git tag possibly returning <code>fatal: No names found, cannot describe anything.</code> or similar.</p></li>
<li><p><code>viash config inject</code>: Fix config inject when <code>.functionality.inputs</code> or <code>.functionality.outputs</code> is used.</p></li>
<li><p><code>BashWrapper</code>: Don’t add <code>bc</code> as dependency. Only perform integer/float min/max checks when bc is available, otherwise ignore.</p></li>
<li><p><code>DockerPlatform</code>: Fix inputs &amp; outputs arguments being present twice.</p></li>
<li><p><code>viash ns test</code>: Silently skip Nextflow platforms as these don’t support tests and will always fail.</p></li>
<li><p><code>Testbenches</code>: Better capture expected error messages while running testbenches. Having these show on the console could be confusing.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Fix issue when running multiple VDSL3 modules concurrently on the same channel.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.14/index.html</guid>
  <pubDate>Thu, 30 Jun 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.13</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.13/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>VDSL3 gets even more improvements and bug fixes.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="new-functionality" class="level3">
<h3 class="anchored" data-anchor-id="new-functionality">NEW FUNCTIONALITY</h3>
<ul>
<li><code>NextflowVdsl3Platform</code>: Allow overriding the container registry of all Viash components by setting the <code>params.override_container_registry</code> value. Only works for auto-derived image names.</li>
</ul>
</section>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><code>Functionality</code>: renamed <code>tests</code> to <code>test_resources</code>. Backwards compatibility provided but a notification message is displayed on the console.</li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>Functionality</code> and <code>viash ns</code>: Added <code>.enabled</code> in functionality, set to <code>true</code> by default. Filter for disabled components in namespace commands.</p></li>
<li><p><code>DockerPlatform</code>: Add org.opencontainers.image annotations to built docker images.</p></li>
<li><p><code>Functionality</code>: when defining text resources, permit defining <code>path</code> instead of <code>dest</code>. If both <code>dest</code> and <code>path</code> are unset, use a default file name depending on the resource type, such as <code>script.sh</code> or <code>text.txt</code>.</p></li>
<li><p><code>viash build</code>: Errors are printed in red.</p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>NextflowVdsl3Platform</code>: Undefined input files should not inject a <code>VIASH_PAR_*</code> variable when <code>multiple: true</code>.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Make injected resources dir absolute.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Fix escaping of triple single quotes.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Also apply auto.simplifyInput to Lists.</p></li>
<li><p><code>DockerPlatform</code>: added a <code>test_setup</code> that allows adding apt/apk/… setup requirements. These are only executed when running tests.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.13/index.html</guid>
  <pubDate>Fri, 10 Jun 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.12</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.12/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This release contains a bunch improvements for VDSL3 and adds some parameters to the <code>viash test</code> and <code>viash test ns</code> commands.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>--help</code>: Don’t print “my_component <not versioned="">” when no version is specified, but instead simply “my_component”.</not></p></li>
<li><p><code>NextflowVdsl3Platform</code>: Set <code>mode=copy</code> for <code>auto.publish</code> and <code>auto.transcript</code>.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: When a module is used multiple times in the same workflow, don’t throw an error anymore, instead simply generate a warning.</p></li>
<li><p><code>NextflowVdsl3Platform</code>: Throw an error when an input file was not found.</p></li>
<li><p><code>viash build</code>: Indent auto-generated code according the indentation of <code>VIASH START</code> when found.</p></li>
<li><p><code>Main</code>: Handle not finding the config file or resources in a config file better. Display a more helpful message instead of a stack trace.</p></li>
<li><p><code>BashWrapper</code>: Add checks on parameters for valid integer, double and boolean values.</p></li>
<li><p><code>BashWrapper</code>: Add option to limit string and integer values to specific choice values.</p></li>
<li><p><code>BashWrapper</code>: Add option to set min and max values for integer and double values.</p></li>
<li><p>Dependencies:</p>
<ul>
<li>Scala was upgraded from 2.12.10 to 2.12.15</li>
<li>sbt was upgraded from 1.3.4 to 1.6.1</li>
<li>sbt-scoverage was upgraded from 1.5.1 to 1.9.3</li>
</ul></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>viash_test</code>: Add back <code>--no_cache</code> parameter to <code>viash_test</code>.</p></li>
<li><p><code>viash_test</code>: Fix <code>--append</code> parameter for <code>viash_test</code>, was not getting passed through.</p></li>
<li><p><code>viash ns test</code>: Fix <code>--append</code> parameter, actually start from a clean file if append is false.</p></li>
<li><p><code>viash_push</code>: Fix component not being built during a release of Viash.</p></li>
<li><p><code>PythonRequirements</code>: Fix packages being mentioned twice in a Dockerfile.</p></li>
<li><p><code>Main</code>: Added support spaces in filenames of config files and resources</p></li>
<li><p><code>BashWrapper</code>: Display a message when the last parsed argument would require more values than are still available. Now display a message that values are missing, used to silently crash the wrapper.</p></li>
<li><p><code>viash config inject</code>: Fix error when file argument is <code>must_exist: true</code>.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.12/index.html</guid>
  <pubDate>Tue, 24 May 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.11</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.11/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This release contains additional sugar syntax for specifying inputs and outputs in a Viash config, a beta implementation for the next-generation Viash platform, and several other minor improvements.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><code>Functionality</code>: Now also accepts ‘inputs’ and ‘outputs’ in addition to ‘arguments’. For inputs and outputs, any specified arguments will have default <code>type: file</code> and <code>direction: input</code> or <code>direction: output</code> respectively.</li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>DockerPlatform</code>: Move description labels to the end of the Dockerfile to improve cross-component caching.</p></li>
<li><p><code>Functionality</code>: Arguments where <code>.multiple</code> is <code>true</code> can now have lists as <code>default</code> and <code>example</code>.</p></li>
<li><p><code>viash_build</code>: Added unit test for this component.</p></li>
<li><p><code>viash_test</code>: Added unit test for this component.</p></li>
<li><p><code>PythonRequirements</code>: Allow upgrading dependencies. Example: <code>[ type: python. pypi: anndata, upgrade: true ]</code>.</p></li>
<li><p><code>NextflowLegacyPlatform</code>: Remove annoying messages when building Nxf modules.</p></li>
<li><p><code>ConfigMods</code>: Expanded the DSL to allow specifying at which point to apply a config mod. This functionality was necessary to allow for setting fields which alter the way configs are parsed. Example of when this is useful: <code>&lt;preparse&gt; .platforms[.type == "nextflow"].variant := "vdsl3"</code>. Updating workflow of parsing a config file is:</p>
<ul>
<li>read Yaml from file</li>
<li>apply preparse config mods</li>
<li>parse resulting Json as Config, thereby instantiating default values etc.</li>
<li>convert Config back to Json</li>
<li>apply postparse config mods (original config mods)</li>
<li>convert final Json back to Config</li>
</ul></li>
</ul>
</section>
<section id="beta-functionality" class="level3">
<h3 class="anchored" data-anchor-id="beta-functionality">BETA FUNCTIONALITY</h3>
<ul>
<li><p><code>NextflowVdsl3Platform</code>: A beta implementation of the next-generation Viash+Nextflow platform. See https://github.com/viash-io/viash/issues/82 for more information. You can access the previous Nextflow platform by using the <code>variant</code> parameter:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> nextflow</span></span>
<span id="cb1-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">variant</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> legacy</span></span>
<span id="cb1-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">separate_multiple_outputs</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="ch" style="color: #20794D;">false</span></span></code></pre></div></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>viash_build</code> and <code>viash_test</code>: The <code>query_name</code> and <code>query_namespace</code> arguments were switched around. These arguments are now passed correctly.</p></li>
<li><p><code>BashScript</code>, <code>JavaScriptScript</code>, <code>PythonScript</code>, <code>RScript</code>: Correctly escape <code>'</code> (#113). Update unit tests accordingly.</p></li>
<li><p><code>CSharpScript</code>, <code>ScalaScript</code>: Correctly escape <code>"</code> (#113). Update unit tests accordingly.</p></li>
<li><p><code>viash_build</code>, <code>viash_test</code>, <code>viash_push</code>: Don’t try to remove log files if they don’t exist.</p></li>
</ul>
</section>
<section id="internal-changes" class="level3">
<h3 class="anchored" data-anchor-id="internal-changes">INTERNAL CHANGES</h3>
<ul>
<li><code>DataObject</code>:
<ul>
<li>Renamed <code>otype</code> to <code>flags</code>.</li>
<li>Renamed <code>oType</code> to <code>type</code></li>
<li>Deprecated <code>tag</code> (unused feature).</li>
</ul></li>
<li>All abstract / inherited classes: Renamed <code>oType</code> to <code>type</code>.</li>
</ul>
</section>
<section id="deprecation" class="level3">
<h3 class="anchored" data-anchor-id="deprecation">DEPRECATION</h3>
<ul>
<li><code>Functionality</code>: Deprecated <code>function_type</code> and <code>add_resources_to_path</code>. These should be unused features, by now.</li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.11/index.html</guid>
  <pubDate>Mon, 09 May 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.10.1</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.10.1/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>This quick release fixes a bug that prevented the correct passthrough of the new <code>organization</code> field.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="bug-fix" class="level3">
<h3 class="anchored" data-anchor-id="bug-fix">BUG FIX</h3>
<ul>
<li><code>NextflowPlatform</code>: Fix passthrough of <code>organization</code> field.</li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.10.1/index.html</guid>
  <pubDate>Wed, 16 Mar 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.10</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.10/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>The <code>viash_install</code>, <code>viash_build</code>, <code>viash_test</code> and <code>viash_push</code> components have been reworked.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="major-changes" class="level3">
<h3 class="anchored" data-anchor-id="major-changes">MAJOR CHANGES</h3>
<ul>
<li><code>viash_install</code>:
<ul>
<li>Added <code>--log_prefix</code>: This prefix is used to determine the path of the log files for <code>viash_build</code>, <code>viash_test</code> and <code>viash_push</code>.</li>
<li>Added <code>--organization</code>: Id of the organisation to be used in the Docker image name, i.e.&nbsp;<code>&lt;registry&gt;/&lt;organization&gt;/&lt;namespace&gt;&lt;namespace_sep&gt;&lt;name&gt;</code>.</li>
<li>Added <code>--target_image_source</code>: Url to the Git repo in which this project resides.</li>
<li>Removed <code>--log</code>.</li>
</ul></li>
<li><code>viash_build</code>:
<ul>
<li>Reduce code duplication by contructing the command with Bash Arrays.</li>
<li>Renamed <code>--platforms</code> to <code>--platform</code>.</li>
<li>Added <code>--organization</code>: Id of the organisation to be used in the Docker image name, i.e.&nbsp;<code>&lt;registry&gt;/&lt;organization&gt;/&lt;namespace&gt;&lt;namespace_sep&gt;&lt;name&gt;</code>.</li>
<li>Added <code>--target_image_source</code>: Url to the Git repo in which this project resides.</li>
<li>Changed default of <code>--log</code> from <code>log.txt</code> to <code>.viash_build_log.txt</code>.</li>
<li>Added <code>--verbose</code>: Print out the underlying <code>viash ns build</code> command before running it.</li>
</ul></li>
<li><code>viash_test</code>:
<ul>
<li>Reduce code duplication by contructing the command with Bash Arrays.</li>
<li>Renamed <code>--platforms</code> to <code>--platform</code>.</li>
<li>Added <code>--organization</code>: Id of the organisation to be used in the Docker image name, i.e.&nbsp;<code>&lt;registry&gt;/&lt;organization&gt;/&lt;namespace&gt;&lt;namespace_sep&gt;&lt;name&gt;</code>.</li>
<li>Added <code>--target_image_source</code>: Url to the Git repo in which this project resides.</li>
<li>Changed default of <code>--log</code> from <code>log.txt</code> to <code>.viash_test_log.txt</code>.</li>
<li>Changed default of <code>--tsv</code> from <code>log.tsv</code> to <code>.viash_test_log.tsv</code>.</li>
<li>Added <code>--verbose</code>: Print out the underlying <code>viash ns test</code> command before running it.</li>
</ul></li>
<li><code>viash_push</code>:
<ul>
<li>Reduce code duplication by contructing the command with Bash Arrays.</li>
<li>Added <code>--organization</code>: Id of the organisation to be used in the Docker image name, i.e.&nbsp;<code>&lt;registry&gt;/&lt;organization&gt;/&lt;namespace&gt;&lt;namespace_sep&gt;&lt;name&gt;</code>.</li>
<li>Changed default of <code>--log</code> from <code>log.txt</code> to <code>.viash_push_log.txt</code>.</li>
<li>Added <code>--verbose</code>: Print out the underlying <code>viash ns build</code> command before running it.</li>
</ul></li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><code>NextflowPlatform</code>: Added the <code>organization</code> field to the nextflow platform as well.</li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.10/index.html</guid>
  <pubDate>Tue, 15 Mar 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.9</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.9/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>The biggest change in this release is that long running Viash components (VS Code server or R Studio server for example) can now be interrupted by pressing CTRL-C or by sending it an <code>INT</code> or <code>SIGINT</code> signal. Before this release, you had to manually stop the Docker container to get the component to terminate.</p>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="new-features" class="level3">
<h3 class="anchored" data-anchor-id="new-features">NEW FEATURES</h3>
<ul>
<li><p><code>viash run</code>: A long running Viash component can be interrupted by pressing CTRL-C or by sending it an <code>INT</code> or <code>SIGINT</code> signal.</p></li>
<li><p><code>DockerPlatform</code>: Automatically add a few labels based on metadata to Dockerfile.</p></li>
<li><p><code>DockerPlatform</code>: Added value <code>target_image_source</code> for setting the source of the target image. This is used for defining labels in the dockerfile. Example:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="fu" style="color: #4758AB;">target_image_source</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> https://github.com/foo/bar</span></span></code></pre></div></li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>viash ns list</code>: Added <code>--format yaml/json</code> argument to be able to return the output as a json as well. Useful for when <code>jq</code> is installed but <code>yq</code> is not. Example:</p>
<pre><code>  viash ns list -p docker -f json | jq '.[] | .info.config'</code></pre></li>
<li><p><code>viash config view</code>: Same as above.</p></li>
</ul>
</section>
<section id="deprecation" class="level3">
<h3 class="anchored" data-anchor-id="deprecation">DEPRECATION</h3>
<ul>
<li><p><code>CLI</code>: Deprecated <code>-P</code> flag use <code>-p</code> intead.</p></li>
<li><p><code>DockerPlatform</code>: Deprecated <code>version</code> value.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.9/index.html</guid>
  <pubDate>Sat, 12 Mar 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.8</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.8/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="new-functionality" class="level3">
<h3 class="anchored" data-anchor-id="new-functionality">NEW FUNCTIONALITY</h3>
<ul>
<li><p><code>DockerPlatform</code>: Allow defining a container’s organisation. Example:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> docker</span></span>
<span id="cb1-2"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">registry</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> ghcr.io</span></span>
<span id="cb1-3"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">organisation</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> viash-io</span></span>
<span id="cb1-4"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">image</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> viash</span></span>
<span id="cb1-5"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">tag</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"1.0"</span></span>
<span id="cb1-6"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">target_registry</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> ghcr.io</span></span>
<span id="cb1-7"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">target_organization</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> viash-io</span></span></code></pre></div></li>
<li><p><code>DockerRequirement</code>: Add label instructions. Example: <code>setup: [ [ type: docker, label: [ "foo BAR" ]]]</code></p></li>
<li><p><code>Config</code>: In specific places, allow parsing a value as a list of values. Fixes #97. This mostly applies to list values in <code>DockerPlatform</code>, but also to author roles. Examples:</p>
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb2-1"><span class="fu" style="color: #4758AB;">functionality</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-2"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> foo</span></span>
<span id="cb2-3"><span class="at" style="color: #657422;">  </span><span class="fu" style="color: #4758AB;">authors</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-4"><span class="at" style="color: #657422;">    </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">name</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> Alice</span></span>
<span id="cb2-5"><span class="at" style="color: #657422;">      </span><span class="fu" style="color: #4758AB;">role</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> author</span><span class="co" style="color: #5E5E5E;"> # can be a string or a list</span></span>
<span id="cb2-6"><span class="fu" style="color: #4758AB;">platforms</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-7"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> docker</span></span>
<span id="cb2-8"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">port</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"80:80"</span><span class="co" style="color: #5E5E5E;"> # can be a string or a list</span></span>
<span id="cb2-9"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">setup</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-10"><span class="at" style="color: #657422;">      </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> r</span></span>
<span id="cb2-11"><span class="at" style="color: #657422;">        </span><span class="fu" style="color: #4758AB;">packages</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> incgraph</span><span class="co" style="color: #5E5E5E;"> # can be a string or a list</span></span></code></pre></div></li>
</ul>
</section>
<section id="breaking-changes" class="level3">
<h3 class="anchored" data-anchor-id="breaking-changes">BREAKING CHANGES</h3>
<ul>
<li><code>viash test</code>: This command doesn’t automatically add the resources dir to the path.</li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>Functionality</code>: Fix <code>.functionality.add_resources_to_path</code> not being picked up correctly.</p></li>
<li><p><code>AptRequirement</code>: Set <code>DEBIAN_FRONTEND=noninteractive</code> by default. This can be turned off by specifying:</p>
<div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb3-1"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> apt</span></span>
<span id="cb3-2"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">packages</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;"> foo</span><span class="kw" style="color: #003B4F;">,</span><span class="at" style="color: #657422;"> bar </span><span class="kw" style="color: #003B4F;">]</span></span>
<span id="cb3-3"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">interactive</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="ch" style="color: #20794D;">true</span></span></code></pre></div></li>
</ul>
</section>
<section id="minor-changes" class="level3">
<h3 class="anchored" data-anchor-id="minor-changes">MINOR CHANGES</h3>
<ul>
<li><p><code>Main</code>: Slightly better error messages when parsing of viash yaml file fails. Before:</p>
<pre><code>$ viash test src/test/resources/testbash/config_failed_build.vsh.yaml 
Exception in thread "main" DecodingFailure(Unexpected field: [package]; valid fields: packages, interactive, type, List(DownField(apt), DownArray, DownField(platforms)))</code></pre>
<p>After:</p>
<pre><code>$ viash test src/test/resources/testbash/config_failed_build.vsh.yaml 
Error parsing 'file:///path/to/viash/src/test/resources/testbash/config_failed_build.vsh.yaml'. Details:
Unexpected field: [package]; valid fields: packages, interactive, type: DownField(apt),DownArray,DownField(platforms)</code></pre></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.8/index.html</guid>
  <pubDate>Mon, 28 Feb 2022 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Viash 0.5.7</title>
  <dc:creator>Viash Team</dc:creator>
  <link>https://viash.io/blog/posts/viash-0.5.7/index.html</link>
  <description><![CDATA[ 




<section id="whats-new" class="level2">
<h2 class="anchored" data-anchor-id="whats-new">What’s new?</h2>
<p>Examples for arguments now need to be of the same type as the argument itself. You can’t provide an <code>integer</code> for a <code>string</code>-based argument for example.<br>
A handy new command has been added: <code>viash config inject</code>. This can be used to inject a Viash header into a script based on the arguments of the config file.</p>
<p>There have been some improvements to the Docker platform as well.<br>
You can now add yum packages as a requirement:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb1-1"><span class="fu" style="color: #4758AB;">platforms</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-2"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> docker</span></span>
<span id="cb1-3"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">image</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> bash:latest</span></span>
<span id="cb1-4"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">setup</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb1-5"><span class="at" style="color: #657422;">      </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> yum</span></span>
<span id="cb1-6"><span class="at" style="color: #657422;">        </span><span class="fu" style="color: #4758AB;">packages</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;"> wget </span><span class="kw" style="color: #003B4F;">]</span></span></code></pre></div>
<p>You can now include ADD and COPY instructions in the config file:</p>
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb2-1"><span class="fu" style="color: #4758AB;">platforms</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-2"><span class="at" style="color: #657422;">  </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> docker</span></span>
<span id="cb2-3"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">image</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> bash:latest</span></span>
<span id="cb2-4"><span class="at" style="color: #657422;">    </span><span class="fu" style="color: #4758AB;">setup</span><span class="kw" style="color: #003B4F;">:</span></span>
<span id="cb2-5"><span class="at" style="color: #657422;">      </span><span class="kw" style="color: #003B4F;">-</span><span class="at" style="color: #657422;"> </span><span class="fu" style="color: #4758AB;">type</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> docker</span></span>
<span id="cb2-6"><span class="at" style="color: #657422;">        </span><span class="fu" style="color: #4758AB;">add</span><span class="kw" style="color: #003B4F;">:</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">[</span><span class="at" style="color: #657422;"> </span><span class="st" style="color: #20794D;">"http://foo.bar ."</span><span class="at" style="color: #657422;"> </span><span class="kw" style="color: #003B4F;">]</span></span></code></pre></div>
</section>
<section id="full-changelog" class="level2">
<h2 class="anchored" data-anchor-id="full-changelog">Full changelog</h2>
<section id="breaking-changes" class="level3">
<h3 class="anchored" data-anchor-id="breaking-changes">BREAKING CHANGES</h3>
<ul>
<li><code>viash config</code>: An argument’s example now needs to be of the same type as the argument itself. For example, <code>[ type: integer, name: foo, example: 10 ]</code> is valid, whereas <code>[ type: integer, name: foo, example: bar ]</code> is not, as ‘bar’ cannot be cast to an integer.</li>
</ul>
</section>
<section id="new-functionality" class="level3">
<h3 class="anchored" data-anchor-id="new-functionality">NEW FUNCTIONALITY</h3>
<ul>
<li><p><code>viash config inject</code>: A command for inserting a Viash header into your script.</p></li>
<li><p><code>YumRequirement</code>: Added a requirement setup for installing through yum. Example: <code>setup: [ [ type: yum, packages: [ wget] ] ]</code></p></li>
<li><p><code>DockerRequirement</code>: Allow using copy and add instructions. Example: <code>setup: [ [ type: docker, add: [ "http://foo.bar ." ]]]</code></p></li>
</ul>
</section>
<section id="bug-fixes" class="level3">
<h3 class="anchored" data-anchor-id="bug-fixes">BUG FIXES</h3>
<ul>
<li><p><code>ViashTest</code>: Fix verbosity passthrough.</p></li>
<li><p><code>--help</code>: Fix repeated usage flag when printing the help.</p></li>
</ul>


</section>
</section>

 ]]></description>
  <category>New Release</category>
  <guid>https://viash.io/blog/posts/viash-0.5.7/index.html</guid>
  <pubDate>Wed, 16 Feb 2022 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>
