planemo 0.75.37
Command-line utilities to assist in building tools for the Galaxy project (http://galaxyproject.org/).
Requires Python: >=3.10

.. figure:: https://raw.githubusercontent.com/jmchilton/planemo/master/docs/planemo_logo.png
   :alt: Planemo Logo
   :align: center
   :figwidth: 100%
   :target: https://github.com/galaxyproject/planemo

Command-line utilities to assist in developing Galaxy_ and `Common Workflow Language`_ artifacts -
including tools, workflows, and training materials.

.. image:: https://readthedocs.org/projects/planemo/badge/?version=latest
   :target: http://planemo.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

.. image:: https://badge.fury.io/py/planemo.svg
   :target: https://pypi.python.org/pypi/planemo/
   :alt: Planemo on the Python Package Index (PyPI)

.. image:: https://github.com/galaxyproject/planemo/actions/workflows/ci.yaml/badge.svg
   :target: https://github.com/galaxyproject/planemo/actions/workflows/ci.yaml?query=branch%3Amaster+event%3Apush

* Free software: MIT License
* Documentation: https://planemo.readthedocs.io.
* Code: https://github.com/galaxyproject/planemo

Quick Start
-----------

-----------------
Obtaining
-----------------

For a traditional Python installation of Planemo, first set up a virtualenv
for ``planemo`` (this example creates a new one in ``.venv``) containing
Python 3.8 or newer and then install with ``pip``. Planemo must be installed
with pip 7.0 or newer.

::

    $ python -m venv .venv; . .venv/bin/activate
    $ pip install planemo

For information on updating Planemo, installing the latest development release,
or installing Planemo via `Bioconda <https://github.com/bioconda/bioconda-recipes>`__
- checkout the `installation <http://planemo.readthedocs.io/en/latest/installation.html>`__
documentation.

Planemo is also available as a `virtual appliance
<https://planemo.readthedocs.io/en/latest/appliance.html>`_ bundled
with a preconfigured Galaxy server and set up for Galaxy_ and
`Common Workflow Language`_ tool development.
You can choose from open virtualization format (OVA_, .ova) or Docker_
appliances.

-----------------
Basics - Galaxy
-----------------

This quick start will assume you have a directory with one or more Galaxy
tool XML files. If no such directory is available, one can be quickly created for
demonstrating ``planemo`` as follows ``project_init --template=demo mytools; cd mytools``.

Planemo can check tool XML files for common problems and best
practices using the ``lint`` `command <http://planemo.readthedocs.org/en/latest/commands.html#lint-command>`_
(also aliased as ``l``).

::

    $ planemo lint

Like many ``planemo`` commands - by default this will search the
current directory and use all tool files it finds. It can be explicitly
passed a path to tool files or a directory of tool files.

::

    $ planemo l randomlines.xml

The ``lint`` command takes in additional options related to
reporting levels, exit code, etc. These options are described
in the `docs <http://planemo.readthedocs.org/en/latest/commands.html#lint-command>`_
or (like with all commands) can be accessed by passing ``--help`` to it.

::

    $ planemo l --help
    Usage: planemo lint [OPTIONS] TOOL_PATH

Once tools are syntactically correct - it is time to test. The ``test``
`command <http://planemo.readthedocs.org/en/latest/commands.html#test-command>`__
can be used to test a tool or a directory of tools.

::

	$ planemo test --galaxy_root=../galaxy randomlines.xml

If no ``--galaxy_root`` is defined, Planemo will download and configure
a disposable Galaxy instance for testing.

Planemo will create a HTML output report in the current directory named
``tool_test_output.html`` (override with ``--test_output``). See an
`example <http://galaxyproject.github.io/planemo/tool_test_viewer.html?test_data_url=https://gist.githubusercontent.com/jmchilton/9d4351c9545d34209904/raw/9ed285d3cf98e435fc4a743320363275949ad63c/index>`_
of such a report for Tophat.

Once tools have been linted and tested - the tools can be viewed in a
Galaxy interface using the ``serve`` (``s``) `command
<http://planemo.readthedocs.org/en/latest/commands.html#serve-command>`__.

::

	$ planemo serve

Like ``test``, ``serve`` requires a Galaxy root and one can be
explicitly specified with ``--galaxy_root`` or installed dynamically
with ``--install_galaxy``.

For more information on building Galaxy tools in general please check out
`Building Galaxy Tools Using Planemo`_.

For more information on developing Galaxy workflows with Planemo checkout
`best practices for Galaxy Workflows`_ and the description of Planemo's
`test format`_. For information on developing Galaxy training materials
checkout the `contributing documentation <https://training.galaxyproject.org/training-material/topics/contributing/>`__
on training.galaxyproject.org.

----------------------------------
Basics - Common Workflow Language
----------------------------------

This quick start will assume you have a directory with one or more `Common Workflow
Language`_ YAML files. If no such directory is available, one can be quickly created for
demonstrating ``planemo`` as follows ``planemo project_init --template=seqtk_complete_cwl mytools; cd mytools``.

Planemo can check tools YAML files for common problems and best
practices using the ``lint`` `command <http://planemo.readthedocs.org/en/latest/commands.html#lint-command>`_
(also aliased as ``l``).

::

    $ planemo lint

Like many ``planemo`` commands - by default this will search the
current directory and use all tool files it finds. It can be explicitly
passed a path to tool files or a directory of tool files.

::

    $ planemo l seqtk_seq.cwl

The ``lint`` command takes in additional options related to
reporting levels, exit code, etc. These options are described
in the `docs <http://planemo.readthedocs.org/en/latest/commands.html#lint-command>`_
or (like with all commands) can be accessed by passing ``--help`` to it.

::

    $ planemo l --help
    Usage: planemo lint [OPTIONS] TOOL_PATH

Once tools are syntactically correct - it is time to test. The ``test``
`command <http://planemo.readthedocs.org/en/latest/commands.html#test-command>`__
can be used to test a CWL tool, workflow, or a directories thereof.

::

  $ planemo test --engine cwltool seqtk_seq.cwl

Planemo will create a HTML output report in the current directory named
``tool_test_output.html``. Check out the file ``seqtk_seq_tests.yml`` for
an example of Planemo test for a CWL tool. A test consists of any number of
jobs (with input descriptions) and corresponding output assertions.

Checkout the `Commmon Workflow User Guide`_ for more information on developing
CWL tools in general and  `Building Common Workflow Language Tools`_ for more
information on using Planemo to develop CWL tools.

---------
Tool Shed
---------

Planemo can help you publish tools to the Galaxy Tool Shed.
Check out `Publishing to the Tool Shed`_ for more information.

------
Conda
------

Planemo can help develop tools and Conda packages in unison.
Check out the `Galaxy <http://planemo.readthedocs.io/en/latest/writing_advanced.html#dependencies-and-conda>`__ or `CWL
<http://planemo.readthedocs.io/en/latest/writing_advanced_cwl.html#dependencies-and-conda-cwl>`__ version of the "Dependencies and Conda" tutorial
for more information.

-----------------------
Docker and Containers
-----------------------

Planemo can help develop tools that run in "Best Practice" containers for
scientific workflows. Check out the `Galaxy <http://planemo.readthedocs.io/en/latest/writing_advanced.html#dependencies-and-containers>`__ or `CWL
<http://planemo.readthedocs.io/en/latest/writing_advanced_cwl.html#dependencies-and-containers-cwl>`__ version of the "Dependencies and Containers" tutorial for more information.

.. _Galaxy: http://galaxyproject.org/
.. _GitHub: https://github.com/
.. _Conda: http://conda.pydata.org/
.. _Docker: https://www.docker.com/
.. _Vagrant: https://www.vagrantup.com/
.. _Travis CI: http://travis-ci.org/
.. _`tools-devteam`: https://github.com/galaxyproject/tools-devteam
.. _`tools-iuc`: https://github.com/galaxyproject/tools-iuc
.. _Building Galaxy Tools Using Planemo: http://planemo.readthedocs.io/en/latest/writing_standalone.html
.. _Publishing to the Tool Shed: http://planemo.readthedocs.org/en/latest/publishing.html
.. _Common Workflow Language: https://www.commonwl.org/
.. _Commmon Workflow User Guide: http://www.commonwl.org/user_guide/
.. _Building Common Workflow Language Tools: http://planemo.readthedocs.io/en/latest/writing_cwl_standalone.html
.. _OVA: https://en.wikipedia.org/wiki/Open_Virtualization_Format
.. _test format: https://planemo.readthedocs.io/en/latest/test_format.html
.. _best practices for Galaxy Workflows: https://planemo.readthedocs.io/en/latest/best_practices_workflows.html

.. :changelog:

History
-------

.. to_doc

---------------------
0.75.37 (2026-02-06)
---------------------
* Move deploy to a separate workflow for trusted publishing (thanks to `@nsoranzo`_). `Pull Request 1608`_
* Finish release and fix release process (thanks to `@bernt-matthias`_). `Pull Request 1607`_
* Set default mulled_resolution_cache_data_dir in planemo workspace (thanks to `@mvdbeek`_). `Pull Request 1610`_
* Fix commit_version.py (thanks to `@bernt-matthias`_). `Pull Request 1609`_

---------------------
0.75.36 (2026-02-03)
---------------------
* Add new pangenomics category (thanks to `@SaimMomin12`_). `Pull Request 1603`_
* Fix exception handling in case of ReadTimeout errors (thanks to `@nsoranzo`_). `Pull Request 1606`_
* Apply new black formatting (thanks to `@mvdbeek`_). `Pull Request 1605`_
* Fix error in reports macro file (thanks to `@bernt-matthias`_). `Pull Request 1604`_
* Add linter checking remote_repository_url (thanks to `@bernt-matthias`_). `Pull Request 1581`_

---------------------
0.75.35 (2026-01-21)
---------------------
* Add documentation for workflow_track, invocation_download, and invoca…
  (thanks to `@mvdbeek`_). `Pull Request 1601`_
* Add vault configuration file option (thanks to `@arash77`_). `Pull Request
  1599`_
* add response to error message (thanks to `@bernt-matthias`_). `Pull Request
  1598`_
* Allow to skip url check (thanks to `@bernt-matthias`_). `Pull Request 1597`_

---------------------
0.75.34 (2026-01-06)
---------------------
* Add TRS ID support for ``run`` and ``workflow_job_init`` (thanks to
  `@mvdbeek`_). `Pull Request 1596`_
* Implement upload progress bar (thanks to `@mvdbeek`_). `Pull Request 1593`_
* Make output of planemo workflow_job_init more helpful (thanks to
  `@mvdbeek`_). `Pull Request 1595`_
* Expand failed workflow jobs by default and sort steps numerically  (thanks
  to `@mvdbeek`_). `Pull Request 1594`_
* Allow `requirements_in_conda` and `biocontainer_registered` in skip_file
  (thanks to `@kostrykin`_). `Pull Request 1588`_
* Fix for method that is renamed in 25.1 (thanks to `@bernt-matthias`_). `Pull
  Request 1591`_
* Some refactoring and fixes for handing of conda packages
  (thanks to `@bernt-matthias`_). `Pull Request 1592`_
  Request 1586`_
* Use job cache in planemo rerun (thanks to `@mvdbeek`_). `Pull Request 1583`_
  Request 1582`_

---------------------
0.75.33 (2025-10-20)
---------------------
* Fail when pointing at a profile that doesn't exist (thanks to `@mvdbeek`_).
  `Pull Request 1578`_
* Don't report failed workflow run with --no_wait (thanks to `@mvdbeek`_).
  `Pull Request 1579`_
* Delay toil import and use or fail when actually used (thanks to
  `@mvdbeek`_). `Pull Request 1580`_
* Improve command not found handling (thanks to `@mvdbeek`_). `Pull Request
  1575`_
* Fall back to sqlite when database creation fails (thanks to `@mvdbeek`_).
  `Pull Request 1576`_
* Raise click exception where we don't need a full traceback (thanks to
  `@mvdbeek`_). `Pull Request 1577`_
* Wait for upload job and make sure uploads are ok (thanks to `@mvdbeek`_).
  `Pull Request 1574`_
* Updates to ``pyproject.toml`` and CI workflows (thanks to `@nsoranzo`_).
  `Pull Request 1572`_
* Enable dependabot version updates for GitHub actions (thanks to
  `@nsoranzo`_). `Pull Request 1566`_
* Fix underscores in config option (thanks to `@bernt-matthias`_). `Pull
  Request 1567`_
* Build and release script updates (thanks to `@mvdbeek`_). `Pull Request
  1561`_

---------------------
0.75.32 (2025-08-18)
---------------------
* Fixing 429 url error (thanks to `@arash77`_). `Pull Request 1556`_
* Fix subworkflow invocation tracking (thanks to `@mvdbeek`_). `Pull Request 1560`_

---------------------
0.75.31 (2025-06-23)
---------------------

* Don't pollute working directory with tools.yaml file (thanks to
  `@mvdbeek`_). `Pull Request 1554`_
* Add ruff and isort to `make format` and tox, add pre-commit config (thanks
  to `@mvdbeek`_). `Pull Request 1552`_
* Make ``no_dependency_resolution`` and ``simultaneous_upload`` global options
  (thanks to `@mvdbeek`_). `Pull Request 1553`_
* Add flag to export invocation from run command (thanks to `@mvdbeek`_).
  `Pull Request 1551`_
* Load default job metrics (thanks to `@mvdbeek`_). `Pull Request 1548`_
* Drop unnecessary autogen in cmd_slurm_init (thanks to `@mvdbeek`_). `Pull
  Request 1549`_
* Terminate polling if we can't advance invocation (thanks to `@mvdbeek`_).
  `Pull Request 1547`_
* Don't do preload in managed instance (thanks to `@mvdbeek`_). `Pull Request
  1546`_
* Add a slurm_init command (thanks to `@jmchilton`_). `Pull Request 1543`_
* Add missing module to pyproject.toml (thanks to `@mvdbeek`_). `Pull Request
  1545`_
* Add the option to download the outputs of a completed workflow run (thanks
  to `@Smeds`_). `Pull Request 1532`_
* update shed categories (thanks to `@bgruening`_). `Pull Request 1539`_
* cmd to export an existing invocations as an archive for storage or later
  import (thanks to `@Smeds`_). `Pull Request 1534`_
* Bump requirements for galaxy packages to 25.0 (thanks to
  `@ahmedhamidawan`_). `Pull Request 1542`_
* Print job errors in workflow invocation as they occur (thanks to
  `@mvdbeek`_). `Pull Request 1540`_
* Enable celery tasks (thanks to `@mvdbeek`_). `Pull Request 1541`_
* add file extension to downloaded output (thanks to `@Smeds`_). `Pull Request
  1531`_
* Workflow progress bar (thanks to `@jmchilton`_). `Pull Request 1510`_
* Fix job handler setup (thanks to `@mvdbeek`_). `Pull Request 1538`_
* Overhaul Galaxy job config handling (thanks to `@jmchilton`_). `Pull Request
  1506`_
* create provided output_directory if it doesn't exist (thanks to `@Smeds`_).
  `Pull Request 1526`_

---------------------
0.75.30 (2025-05-07)
---------------------
* fix lint_shed_version if there are no installable revisions (thanks to
  `@bernt-matthias`_). `Pull Request 1509`_
* Fix bumping of dev versions (thanks to `@mvdbeek`_). `Pull Request 1514`_
* Don't escape non-ascii unicode characters in json.dumps (thanks to
  `@mvdbeek`_). `Pull Request 1523`_
* Fix version linter for new repos (thanks to `@bernt-matthias`_). `Pull
  Request 1519`_
* Add switch to prevent early termination of workflow runs (thanks to
  `@kostrykin`_). `Pull Request 1518`_
* Add missing collection operation tools (thanks to `@mvdbeek`_). `Pull
  Request 1524`_

---------------------
0.75.29 (2025-03-27)
---------------------
* Fix dependency specification (thanks to `@mvdbeek`_). `Pull Request 1507`_

---------------------
0.75.28 (2025-03-27)
---------------------
* Print stdout stderr if install command fails (thanks to `@mvdbeek`_). `Pull
  Request 1505`_
* fix: removes that spaces that aren't allowed in the singularity instance
  name (thanks to `@Smeds`_). `Pull Request 1504`_
* Build Modernization (thanks to `@jmchilton`_). `Pull Request 1503`_
* Add linter to check if tool versions are bumped (thanks to `@bernt-matthias`_).
  `Pull Request 1502`_
* Fix make quick-test (thanks to `@jmchilton`_). `Pull Request 1501`_
* Migrate mypy settings to pyproject.toml (thanks to `@jmchilton`_). `Pull
  Request 1500`_
* Add support for Python 3.12 (thanks to `@nsoranzo`_). `Pull Request 1496`_
* Add postgres singularity option (thanks to `@Smeds`_). `Pull Request 1492`_
* Loosen test assertions (thanks to `@bernt-matthias`_). `Pull Request 1494`_
* Update browser user agent string (thanks to `@nsoranzo`_). `Pull Request
  1495`_

---------------------
0.75.27 (2025-03-03)
---------------------
* Remove usage of `defaults` conda channel (thanks to `@bernt-matthias`_).
  `Pull Request 1487`_
* Add category "Geo Science" (thanks to `@bernt-matthias`_). `Pull Request 1483`_
* Bump requirements for galaxy packages to 24.2 (thanks to `@jdavcs`_). `Pull
  Request 1491`_
* Use python 3.13 for deploymen (thanks to `@bernt-matthias`_). `Pull Request 1488`_
* Fix repository category update (thanks to `@mvdbeek`_). `Pull Request 1481`_

---------------------
0.75.26 (2024-09-24)
---------------------
* Fix up autopygen type annotation (thanks to `@mvdbeek`_). `Pull Request
  1474`_
* Fix autoupdate for workflows with overlapping tool updates (thanks to
  `@bernt-matthias`_). `Pull Request 1452`_
* Display last lines of logs (thanks to `@mvdbeek`_). `Pull Request 1473`_

---------------------
0.75.25 (2024-08-11)
---------------------
* Add a new single cell category (thanks to `@pavanvidem`_). `Pull Request
  1457`_
* Add extended-assertions requirements (thanks to `@bernt-matthias`_). `Pull
  Request 1471`_

---------------------
0.75.24 (2024-07-04)
---------------------
* Workflow best practices: check that creator identifiers are URIs (thanks to
  `@elichad`_). `Pull Request 1458`_
* Update pinning for Galaxy 24.1 (thanks to `@bernt-matthias`_). `Pull Request
  1460`_
* Add option to create a minimal markdown test report (thanks to
  `@bernt-matthias`_). `Pull Request 1462`_
* Increase worflow linting (thanks to `@lldelisle`_). `Pull Request 1463`_
* Run CI tests against newer Galaxy versions (thanks to `@bernt-matthias`_).
  `Pull Request 1466`_
* Add the option to provide a history id to run the workflow in (thanks to
  `@Delphine-L`_). `Pull Request 1461`_
* Make sure that skip list does not get `['']` (if no skip is given) (thanks
  to `@bernt-matthias`_). `Pull Request 1453`_
* Tool linting add `--skip_file` and remove lxml schema validation (thanks to
  `@bernt-matthias`_). `Pull Request 1420`_

---------------------
0.75.23 (2024-05-08)
---------------------
* Implement run/test/workflow_edit/autoupdate from non default tool sheds
  (thanks to `@mvdbeek`_). `Pull Request 1445`_
* Install prebuilt client by default (thanks to `@mvdbeek`_). `Pull Request
  1450`_
* Bump galaxy packages to allow for 24.0 (thanks to `@bernt-matthias`_). `Pull
  Request 1441`_
* replace dead link in conclusions (thanks to `@martenson`_). `Pull Request
  1447`_
* Add text to autopygen exceptions (thanks to `@bernt-matthias`_). `Pull
  Request 1444`_
* Drop circleci config (thanks to `@mvdbeek`_). `Pull Request 1443`_
* Fix linting of asserts with children (thanks to `@bernt-matthias`_). `Pull
  Request 1442`_

---------------------
0.75.22 (2024-04-04)
---------------------
* Fix parsing of training ``metadata.yaml`` files (thanks to `@nsoranzo`_).
  `Pull Request 1439`_
* Fix markdown template: add missing closing details tag (thanks to `@bernt-matthias`_). `Pull Request 1440`_
* Misc workflow linting improvements (thanks to `@bernt-matthias`_). `Pull
  Request 1437`_
* Don't skip requirements with an environment marker (thanks to `@nsoranzo`_).
  `Pull Request 1433`_
* Add `--host` parameter to allow listening on non-default hosts (thanks to
  `@selten`_). `Pull Request 1430`_

---------------------
0.75.21 (2024-02-01)
---------------------
* Add option to pass extra arguments to `docker run` (thanks to `@bernt-matthias`_). `Pull Request 1428`_
* Fix workflow_edit (thanks to `@mvdbeek`_). `Pull Request 1427`_
* Update to black 2024 stable style (thanks to `@nsoranzo`_). `Pull Request
  1425`_

---------------------
0.75.20 (2024-01-30)
---------------------
* Fix use of `package_name` attribute on `CondaTarget` objects (thanks to
  `@nsoranzo`_). `Pull Request 1424`_
* Don't crash autoupdate on non-PEP440-compliant tool versions (thanks to
  `@nsoranzo`_). `Pull Request 1422`_
* Add now mandatory readthedocs config files (thanks to `@nsoranzo`_). `Pull
  Request 1419`_
* Update action versions (thanks to `@nsoranzo`_). `Pull Request 1416`_

---------------------
0.75.19 (2023-12-06)
---------------------

* Update upper bound for galaxy packages to < 23.2 (thanks to `@bernt-matthias`_). `Pull Request 1388`_
* Fix workflow download when using instance id (thanks to `@mvdbeek`_). `Pull
  Request 1412`_
* Remove introduction header from training init (thanks to `@hexylena`_).
  `Pull Request 1410`_

---------------------
0.75.18 (2023-11-16)
---------------------

* Pretty-print workflow and use correct version of linked workflow in
  ``workflow_test_init`` (thanks to `@mvdbeek`_). `Pull Request 1408`_
* Fix running workflow tests when there are multiple tests (thanks to
  `@mvdbeek`_). `Pull Request 1407`_
* Fix matching of tool ids to autoupdate (thanks to `@nsoranzo`_). `Pull
  Request 1406`_

---------------------
0.75.17 (2023-11-01)
---------------------
* Implement running tests against existing invocation (thanks to `@mvdbeek`_).
  `Pull Request 1401`_
* Fix test result download (thanks to `@mvdbeek`_). `Pull Request 1402`_

---------------------
0.75.16 (2023-11-01)
---------------------
* No changes

---------------------
0.75.15 (2023-10-29)
---------------------
* Change info message for markdown readme in repo
  (thanks to `@bernt-matthias`_). `Pull Request 1398`_
* Make test reports more resilient to failing invocations (thanks to
  `@mvdbeek`_). `Pull Request 1400`_
* Fix zenodo test, drop explicit datatype mapping (thanks to `@mvdbeek`_).
  `Pull Request 1399`_
* Fix linting rule selection (thanks to `@bernt-matthias`_). `Pull Request
  1396`_
* Add missing ``Astronomy``, ``CLIP-seq`` and ``Materials science`` TS
  categories (thanks to `@bernt-matthias`_). `Pull Request 1397`_

---------------------
0.75.14 (2023-10-19)
---------------------
* Fix workflow_lint for json output values (thanks to `@mvdbeek`_). `Pull
  Request 1395`_

---------------------
0.75.13 (2023-10-18)
---------------------
* Add --skip to shed_lint (thanks to `@bernt-matthias`_). `Pull Request 1394`_
* Remove API key requirement from training_init (thanks to `@hexylena`_).
  `Pull Request 1393`_
* Try to fix planemo test workflow when output is collection with identical
  name (thanks to `@lldelisle`_). `Pull Request 1391`_

---------------------
0.75.12 (2023-09-18)
---------------------
* Track subworkflow invocations after main invocation is scheduled (thanks to
  `@mvdbeek`_). `Pull Request 1389`_

---------------------
0.75.11 (2023-09-14)
---------------------

* Implement automatic tool generation based on the source code of the tool
  (thanks to `@Kulivox`_). `Pull Request 1263`_
* Support for testing workflows with conditional steps (thanks to
  `@mvdbeek`_). `Pull Request 1387`_

---------------------
0.75.10 (2023-09-01)
---------------------

* Add pick_value to distro_tools (thanks to `@mvdbeek`_). `Pull Request 1385`_
* Allow missing conda_exec (thanks to `@mstabrin`_). `Pull Request 1384`_
* Fix profile version test (thanks to `@bernt-matthias`_). `Pull Request
  1383`_
* Fix type comparisons (thanks to `@bernt-matthias`_). `Pull Request 1382`_
* Added a note that docker is required for docker and biocontainers option
  (thanks to `@paulzierep`_). `Pull Request 1355`_
* Optimize disk space usage for `planemo test` (thanks to `@bernt-matthias`_).
  `Pull Request 1378`_
* Fix for change of base_url in BioBlend 1.2.0 (thanks to `@nsoranzo`_). `Pull
  Request 1379`_

---------------------
0.75.9 (2023-06-29)
---------------------

* Update collection operation tool list (thanks to `@mvdbeek`_). `Pull Request
  1377`_
* Officially support Python 3.10 and 3.11 (thanks to `@nsoranzo`_). `Pull
  Request 1375`_
* Fix links (thanks to `@nsoranzo`_). `Pull Request 1374`_
* Fix ``test_run_gxtool_randomlines`` test on Galaxy dev branch (thanks to
  `@nsoranzo`_). `Pull Request 1373`_

---------------------
0.75.8 (2023-06-09)
---------------------

* Bump galaxy package requirements to allow for 23.0 (thanks to `@bernt-matthias`_). `Pull Request 1372`_
* Sanitize and make output names unique (thanks to `@mvdbeek`_). `Pull Request 1371`_
* Increase bioblend retries for bad networks (thanks to `@hexylena`_). `Pull Request 1369`_
* Add ``--biocontainers`` option to shed_lint (thanks to `@mvdbeek`_). `Pull Request 1370`_
* fix regex of orcid + add test (thanks to `@lldelisle`_). `Pull Request 1364`_
* Drop `allow_none` for finding repository (thanks to `@mvdbeek`_). `Pull Request 1358`_

---------------------
0.75.7 (2023-03-01)
---------------------
* Drop call to ``escape_non_unicode_symbols`` (thanks to `@nsoranzo`_). `Pull
  Request 1357`_

---------------------
0.75.6 (2023-02-22)
---------------------
* Allow running autoupdate against external server (thanks to `@mvdbeek`_).
  `Pull Request 1265`_
* Fix extraction of orcid identifiers for .dockstore.yml (thanks to
  `@lldelisle`_). `Pull Request 1350`_

---------------------
0.75.5 (2023-02-10)
---------------------
* Bump galaxy packages to 22.05 (thanks to `@bernt-matthias`_). `Pull Request
  1275`_

---------------------
0.75.4 (2023-02-09)
---------------------

* Store datasets by UUID (thanks to `@bernt-matthias`_). `Pull Request 1347`_
* Fix orcid regex for dockstore_init (thanks to `@lldelisle`_). `Pull Request
  1348`_
* Fix virtualenv dir bookkeeping (thanks to `@wm75`_). `Pull Request 1346`_
* Deprecate introduction slides folder (thanks to `@hexylena`_). `Pull Request
  1344`_
* Remove note recommending installing dev versions from `planemo run` tutorial
  (thanks to `@simonbray`_). `Pull Request 1338`_
* Rename configuration option removed in tox 4.0 (thanks to `@nsoranzo`_).
  `Pull Request 1337`_
* Remove travis-ci.org badge from README.rst (thanks to `@SimonWaldherr`_).
  `Pull Request 1334`_

---------------------
0.75.3 (2022-11-30)
---------------------

* Mount test data dir read-only in docker (thanks to `@mvdbeek`_). `Pull
  Request 1327`_
* Add traceback to report template (thanks to `@bernt-matthias`_). `Pull
  Request 1332`_
* Add indent and sort_keys to tool_test_json (thanks to `@simonbray`_). `Pull
  Request 1330`_
* Fix ``planemo shed_test`` (thanks to `@mvdbeek`_). `Pull Request 1329`_
* Add h5py dependency, required for comparing h5 files (thanks to
  `@mvdbeek`_). `Pull Request 1326`_
* Update GitHub action versions (thanks to `@nsoranzo`_). `Pull Request 1322`_
* Fix "glone" typo in error message (thanks to `@bernt-matthias`_). `Pull
  Request 1325`_
* Type annotation for input staging-related code (thanks to `@nsoranzo`_).
  `Pull Request 1320`_
* Add creator dockstore (thanks to `@lldelisle`_). `Pull Request 1314`_

---------------------
0.75.2 (2022-11-02)
---------------------

* Compare versions, not tool ids to find latest tool ids (thanks to
  `@mvdbeek`_). `Pull Request 1313`_
* Fix ``for_paths`` when path is directory of tools (thanks to `@mvdbeek`_).
  `Pull Request 1312`_
* Fix workflow_lint with list + check elements in collection (thanks to
  `@lldelisle`_). `Pull Request 1310`_
* Drop copy_tree workaround for tool sources (thanks to `@mvdbeek`_). `Pull
  Request 1308`_

---------------------
0.75.1 (2022-10-31)
---------------------

* Use `pytest.raises()` instead of ad-hoc `assert_raises_regexp()` context
  manager (thanks to `@nsoranzo`_). `Pull Request 1302`_
* Add planemo_ci_setup command (thanks to `@mvdbeek`_). `Pull Request 1304`_
* Don't fail planemo autoupdate if tool version not found in tool shed (thanks
  to `@lldelisle`_). `Pull Request 1305`_
* workflow_lint: ensure that tool shed tool ids are valid (thanks to
  `@lldelisle`_). `Pull Request 1306`_
* Fix recording of virtual_env_dir (thanks to `@mvdbeek`_). `Pull Request
  1307`_

---------------------
0.75.0 (2022-10-28)
---------------------

* Restore running tool tests against directory (thanks to `@mvdbeek`_). `Pull
  Request 1303`_
* Update outdated cuffmerge url (thanks to `@martenson`_). `Pull Request
  1247`_
* Set upstream branch when pushing workflows to GitHub (thanks to
  `@simonbray`_). `Pull Request 1249`_
* restore --no_cleanup to set cleanup_job to never (thanks to `@bernt-matthias`_). `Pull Request 1255`_
* Drop support for Python 3.6 (thanks to `@simonbray`_). `Pull Request 1257`_
* Replace CoC with link to GalaxyProject's one (thanks to `@nsoranzo`_). `Pull
  Request 1259`_
* Mains resource selector must be skipped (thanks to `@hexylena`_). `Pull
  Request 1260`_
* Ignore cloudflare 503 status when checking links (thanks to `@bernt-matthias`_). `Pull Request 1262`_
* Document the use of mandatory macro parameters and add named macro tokens
  (thanks to `@bernt-matthias`_). `Pull Request 1212`_
* Bump galaxy package requirements to 22.01 (thanks to `@bernt-matthias`_).
  `Pull Request 1264`_
* Run local galaxy via gravity (thanks to `@mvdbeek`_). `Pull Request 1232`_
* Lint randomlines.xml file (thanks to `@simonbray`_). `Pull Request 1270`_
* Check if main requirement is `None` (thanks to `@bernt-matthias`_). `Pull
  Request 1274`_
* Planemo type annotation: module planemo.commands.cmd_autoupdate (thanks to
  `@gallardoalba`_). `Pull Request 1278`_
* Planemo type annotation: module planemo.cli (thanks to `@gallardoalba`_).
  `Pull Request 1277`_
* Planemo type annotation: module cmd_clone (thanks to `@gallardoalba`_).
  `Pull Request 1279`_
* Planemo type annotation: module cmd_tool_init (thanks to `@gallardoalba`_).
  `Pull Request 1281`_
* Add type annotations to ``planemo.autoupdate`` module (thanks to
  `@nsoranzo`_). `Pull Request 1283`_
* Planemo type annotation: module cmd_normalize (thanks to `@gallardoalba`_).
  `Pull Request 1280`_
* Planemo type annotation: module planemo.conda (thanks to `@gallardoalba`_).
  `Pull Request 1284`_
* Add type annotations to ``planemo.glob`` and ``planemo.virtualenv`` (thanks
  to `@nsoranzo`_). `Pull Request 1287`_
* Drop ``conda_lint`` command (thanks to `@nsoranzo`_). `Pull Request 1288`_
* Type annotations for planemo.bioblend, planemo.git, and planemo.cwl.run
  (thanks to `@adRn-s`_). `Pull Request 1285`_
* Add FAQ page to docs (thanks to `@simonbray`_). `Pull Request 1271`_
* Add type annotations to ``planemo.runnable`` and ``planemo.workflow_lint``
  (thanks to `@nsoranzo`_). `Pull Request 1291`_
* Make `--channels` also affect mulled channels and update/extend howto use
  bioconda artifacts (thanks to `@bernt-matthias`_). `Pull Request 1227`_
* Planemo type annotation: config, context and factory (thanks to
  `@gallardoalba`_). `Pull Request 1292`_
* [Training] update templates to use new, more accessible box style (thanks to
  `@shiltemann`_). `Pull Request 1293`_
* Pre-create expected output file on disk (thanks to `@mvdbeek`_). `Pull
  Request 1276`_
* Control publish setting in .dockstore.yml, fix first release not appearing
  on dockstore (thanks to `@mvdbeek`_). `Pull Request 1295`_
* Fix disclosure css for summary elements (thanks to `@mvdbeek`_). `Pull
  Request 1294`_
* Enable providing multiple `--tool_data_table` options (thanks to
  `@mvdbeek`_). `Pull Request 1296`_
* Make startup timeout configurable (thanks to `@mvdbeek`_). `Pull Request
  1298`_
* Fix printing planemo test logs (thanks to `@mvdbeek`_). `Pull Request 1299`_
* Fix workflow test when input is optional but also workflow output (thanks to
  `@mvdbeek`_). `Pull Request 1297`_

---------------------
0.74.11 (2022-06-08)
---------------------

* Removing broken link, update it to current doc (thanks to `@profgiuseppe`_).
  `Pull Request 1244`_
* Implement nested collection inputs and outputs in workflow_test_init `Pull
  Request 1242`_
* More fixes for auto-generating workflow tests `Pull Request 1241`_
* Fix workflow_test_init for collection outputs `Pull Request 1239`_

---------------------
0.74.10 (2022-05-31)
---------------------
* Allow specifying URL and API key with workflow autoupdate and docs
  improvements (thanks to `@simonbray`_). `Pull Request 1237`_
* Pin planemo to last known working major galaxy version `Pull Request 1230`_
* Drop unused Python dependencies and upgrade syntax to Python 3.6 `Pull Request 1228`_
* Update `best_practice_search()` for changes in galaxy-tool-util `Pull Request 1224`_
* Make galaxy config `cleanup_job` depend on `--no_cleanup`
  (thanks to `@bernt-matthias`_). `Pull Request 1226`_
* Tool builder: add profile and suffix version
  (thanks to `@gallardoalba`_). `Pull Request 1222`_
* training-init: add the FAQ index page to tutorial folder
  (thanks to `@shiltemann`_). `Pull Request 1217`_
* Adding best practices and assertion checks to workflow_lint
  (thanks to `@simonbray`_). `Pull Request 1213`_
* Updates to workflow autoupdate required for IWC bot
  (thanks to `@simonbray`_). `Pull Request 1214`_
* Add test and fix for failing docker_galaxy engine
  (thanks to `@simonbray`_). `Pull Request 1215`_
* Generate workflow test from invocation id
  (thanks to `@simonbray`_). `Pull Request 1209`_
* Fixed minor typo in documentation
  (thanks to `@stain`_). `Pull Request 1206`_
* Add missing ToolShed categories `Pull Request 1207`_
* Use WorkflowId rather than StoredWorkflowId when autoupdating subworkflows
  (thanks to `@simonbray`_). `Pull Request 1205`_
* Always use random id_secret for testing (thanks to `@bernt-matthias`_). `Pull Request 1198`_
* Add rerun subcommand for rerunning jobs (thanks to `@simonbray`_). `Pull Request 1140`_

---------------------
0.74.9 (2021-11-03)
---------------------
* Fix rendering of subworkflow steps for workflow testing report (thanks to
  `@simonbray`_). `Pull Request 1200`_
* Replace Galaxy interactor galaxy_requests_post with make_post_request from
  BioBlend (thanks to `@simonbray`_). `Pull Request 1201`_

---------------------
0.74.8 (2021-10-10)
---------------------

* Exclude click 8.0.2. `Pull Request 1196`_
* Add tool version numbers to autoupdate logging (thanks to `@simonbray`_).
  `Pull Request 1188`_
* Allow tool autoupdate without conda installation (thanks to `@simonbray`_).
  `Pull Request 1193`_
* use correct key execution_problem in template (thanks to `@bernt-matthias`_).
  `Pull Request 1195`_

---------------------
0.74.7 (2021-09-21)
---------------------

* Fix documentation to include ``--download_outputs`` flag (thanks to
  `@simonbray`_). `Pull Request 1184`_
* Select refgenie config based on Galaxy version `Pull Request 1187`_
* Extend autoupdate subcommand to workflows (thanks to `@simonbray`_). `Pull
  Request 1151`_

---------------------
0.74.6 (2021-07-23)
---------------------

* Add JSON report for planemo run invocations (thanks to `@simonbray`_). `Pull
  Request 1153`_
* Ignore failure to download output datasets `Pull Request 1179`_
* Allow location to point to url for outputs `Pull Request 1180`_
* Fix --shed_install for gxformat2 workflows `Pull Request 1182`_
    
---------------------    
0.74.5 (2021-06-25)
---------------------

* Remove iuc from default channels `Pull Request 1170`_
* Fix parsing of changelog for git release `Pull Request 1171`_
* Remove legacy commands, egg handling `Pull Request 1172`_
* Use bioblend's invoke_workflow `Pull Request 1173`_
* Create more useful output for failed invocations `Pull Request 1174`_
* Improve dockstore_init `Pull Request 1177`_

---------------------
0.74.4 (2021-06-01)
---------------------

* Relicense under the MIT license `Pull Request 1169`_
* Revise log levels (thanks to `@bernt-matthias`_). `Pull Request 1165`_
* Create upload_data subcommand (thanks to `@simonbray`_). `Pull Request
  1164`_
* Create ``--download_outputs`` flag for the ``run`` command
  (thanks to `@simonbray`_).
  `Pull Request 1157`_
* Make simultaneous file upload configurable for the run and test commands
  (thanks to `@simonbray`_).
  `Pull Request 1156`_
* Add option to add tags to a history with the ``run`` command
  (thanks to `@simonbray`_). `Pull Request 1154`_
* Revise Allure_ reporting experience for workflows. `Pull Request 1152`_

---------------------
0.74.3 (2021-02-25)
---------------------

* Load both cat1 versions when testing workflows `Pull Request 1146`_
* Fix isolated virtualenv not getting activated `Pull Request 1145`_
* Use bioblend's make_get_request for authenticated request `Pull Request 1144`_
* Display live logs when Galaxy is run in background `Pull Request 1142`_

---------------------
0.74.2 (2021-02-21)
---------------------

* Allow testing dir of workflows `Pull Request 1095`_
* Fix container register for gh workflow `Pull Request 1135`_, `Pull Request 1133`_
* Don't fail URL linting if blocked by CloudFlare `Pull Request 1134`_
  1133`_
* Allow planemo run to stage exisiting datasets and relative paths (thanks to `@simonbray`_).
  `Pull Request 1128`_

---------------------
0.74.1 (2021-01-03)
---------------------

* Fix ``ci_find_tools`` and ``ci_find_repos`` commands. `Pull Request 1127`_

---------------------
0.74.0 (2020-12-30)
---------------------

* Allow running Galaxy workflow tests against externally defined workflows.
  `Pull Request 1126`_, `Pull Request 1125`_,
  `Pull Request 1123`_
* Require Python ``tabulate`` package for the ``list_invocations`` command.
  `Pull Request 1124`_

---------------------
0.73.0 (2020-12-28)
---------------------

* Integrate important features from gxwf_ for running workflows - including
  building up profile commands for creating aliases, allowing referencing workflows
  by external IDs, and listing invocations (thanks to `@simonbray`_).
  `Pull Request 1076`_
* Documentation for using ``planemo run`` to execute workflows (thanks to `@simonbray`_).
  `Pull Request 1102`_
* Add ``workflow_upload`` command for publishing each workflow of a repository with many
  workflows to their own standalone repository.
  `Pull Request 1091`_
* Update github commands to authenticate with a token rather than
  username/password (thanks to `@simonbray`_).
  `Pull Request 1083`_
* Document "advanced" tool test debugging (thanks to `@bernt-matthias`_).
  `Pull Request 1108`_
* Various fixes for workflow commands - including ``workflow_convert``, 
  ``workflow_lint``, ``workflow_job_init``, and ``workflow_test_init``
  (thanks to `@simonbray`_).
  `Pull Request 1101`_, `Pull Request 1118`_, `Pull Request 1121`_,
  `Pull Request 1116`_, `Pull Request 1064`_
* Allow outputting test results as Allure_ framework results.
  `Pull Request 1115`_
* Fix ``run_tests.sh`` invocation `Pull Request 1099`_
* Tiny typo in debugging output (thanks to `@abretaud`_). `Pull Request 1066`_
* Fix typo in 'planemo test' help text for --skip_venv (thanks to
  `@peterjc`_).
  `Pull Request 1068`_
* Fixes for CLI when ``external_galaxy`` is used as the engine (thanks to
  `@simonbray`_).
  `Pull Request 1072`_
* Updating base image to 20.05 for training topics
  (thanks to `@bedroesb`_).
  `Pull Request 1074`_
* Changes to update_test_data testing mode (thanks to `@simonbray`_).
  `Pull Request 1079`_
* Fix docker options when filling ``job_conf.xml`` template.
  `Pull Request 1086`_
* Explicit tests for Galaxy 20.09. `Pull Request 1093`_
* Minor fix for ``ci_find_repos`` command. `Pull Request 1094`_
* Fix a couple of Cheetah_ urls in Galaxy tool documentation (thanks to `@martenson`_).
  `Pull Request 1096`_
* Fix doc link from a redirect loop to a section (thanks to `@martenson`_).
  `Pull Request 1110`_
* Clarify ``tutorial.md`` usage of citations (thanks to `@blankenberg`_).
  `Pull Request 1114`_
* Fix ``ZeroDivisionError`` when no tests are executed (thanks to `@simonbray`_).
  `Pull Request 1120`_

---------------------
0.72.0 (2020-08-04)
---------------------

* More documentation/support around running workflows including new command
  to initialize workflow jobs ``workflow_init_job``.
  `Pull Request 1052`_
* Workflow tests and documentation for tagging input