Changelog

Note

The change notes follow Keep a Changelog, except for the title formatting, and this project adheres to Semantic Versioning.

v2.1.1.dev2+g7a20d2b.d20220519, as of May 19, 2022 /UNRELEASED DRAFT/

Important

This version is not yet released and is under active development

Bugfixes

  • Fixed an error where config-specified volume mounts did not get mounted when using collections action and an execution environment. (#764)

  • Fixed parsing of container image names to account for port numbers in registry servers. (#863)

  • Fixed a condition where image introspection failed because of a missing /dev/mqueue/ directory when execution environment support was enabled and the container engine was set to podman by checking early and providing an error message and suggested fix. This is a condition commonly found using Ubuntu with WSL2.

    – by @cidrblock (#866)

  • Fixed presentation of unicode characters while using mode interactive. – by @cidrblock (#944)

  • Prevented high CPU utilization in mode stdout for run when a playbook is not actively producing output.

    – by @cidrblock (#968)

  • Prevented a duplicate volume mount when the user-specified path to the collection doc cache is in the playbook directory.

    – by @cidrblock (#972)

  • Prevented issues rendering collection plugin details after errors were generated when applying settings from within the TUI.

    – by @cidrblock (#1062)

  • Fixed an issue which resulted in messages about invalid arguments not being shown to the user in the TUI.

    – by @cidrblock (#1112)

  • Fixed --list, --list_files and --snippet for mode stdout calls to ansible-doc.

    – by @cidrblock (#1163)

  • Add plugin path information in collection stdout output.

    – by @ganeshrn (#1178)

  • Fixed warning message issue for run action in stdout mode – by @ganeshrm (#1220)

Features

  • Added the ability to run ansible-builder commands to create execution environment using mode stdout.

    Here is an example invocation:

    ansible-navigator builder build --tag ee_image_name --workdir ~/manifest-file --container-runtime podman -v 3 --mode stdout
    

    – by @ganeshrn (#459)

  • Added the ability to run ad-hoc commands directly within an execution environment using mode stdout.

    Here is an example invocation:

    ansible-navigator exec --mode stdout
    

    – by @cidrblock (#526)

  • Added the ability to run collections command in stdout.

    Here is an example invocation:

    ansible-navigator collections --mode stdout
    

    – by @ganeshrn (#580)

  • Added a lint (:lint from main menu) subcommand for running ansible-lint (possibly in an execution environment) and displaying the results. (#596)

  • Added state notification when running a playbook during initialization. – by @cidrblock (#948)

  • Added ability to pass additional arguments to the execution environment pull command.

    – by @cidrblock (#952)

  • Added new subcommand :settings to output all current ansible-navigator settings to the menu or to standard output.

    Here is an example invocation:

    ansible-navigator settings
    

    – by @alisonlhart and @thedoubl3j (#957)

  • Added automatic mode selection based on subcommand and settings in use.

    – by @cidrblock (#1058)

  • Included roles from collections in :collections.

    – by @cidrblock (#1059)

  • Added the time zone settings entry.

    Here are some examples:

    ansible-navigator --tz local
    ansible-navigator --time-zone Japan
    
    export TZ=America/Los_Angeles
    ansible-navigator
    
    ansible-navigator:
      time-zone: Asia/Kolkata
    

    – by @cidrblock (#1080)

  • Enabled the use of the time_zone settings entry for playbook artifact file name creation. The new default playbook artifact name is:

    {playbook_dir}/{playbook_name}-artifact-{time_stamp}.json
    

    The time stamp is an ISO8601 formatted timestamp based on the user specified time zone (IANA or ‘local’), or UTC as the default.

    – by @cidrblock (#1085)

  • Enabled the use of the time_zone settings entry for time stamps within the log file.

    – by @cidrblock (#1086)

  • Added the ansible.builtin collection to the collection list including the full details of each plugin.

    – by @cidrblock (#1090)

  • Added the ability to produce a json schema file for the settings file.

    ansible-navigator settings --schema
    

    – by @cidrblock (#1093)

  • Added settings file validation against the settings file JSON Schema during application initialization.

    – by @cidrblock (#1099)

  • Updated the formatting of :config to align with :settings in the UI.

    – by @cidrblock (#1101)

  • Added the ability to produce a sample settings file.

    ansible-navigator settings --sample
    

    – by @cidrblock (#1106)

  • Added basic support for mode stdout for the images subcommand.

    – by @cidrblock (#1110)

  • Added automatic use of the inventory settings from an ansible.cfg file.

    – by @cidrblock (#1111)

  • Added the path to the effective ansible.cfg file to each :config entry.

    – by @cidrblock (#1126)

  • Added syntax highlighting when opening {{ examples }} or a {{ readme }}. Also set the file extension to either .yml or .md respectively when the content is opened.

    – by @cidrblock (#1133)

  • Upgraded default execution environment image to creator-ee:v0.4.0

    – by @cidrblock (#1135)

  • Added ability to print in color for settings --mode stdout. This includes settings --sample and settings --schema.

    – by @cidrblock (#1137)

  • Added --details parameter to ansible-navigator images in mode stdout. This produces detailed information about the currently selected image.

    Here are some examples:

    ansible-navigator images --details
    ansible-navigator images -d ansible_collections -d ansible_version
    ansible-navigator images -d python_version --eei network_archive_ee --pp never
    

    – by @cidrblock (#1138)

  • Added ability to print in color for images --mode stdout.

    – by @cidrblock (#1144)

  • Added ability to print in color for collections --mode stdout.

    – by @cidrblock (#1145)

  • Added --effective and --sources to the settings subcommand.

    Here’s an example:

    # Print out all current and default settings in settings file format.
    ansible-navigator settings --effective
    # Print out the source of each settings entry
    ansible-navigator settings --sources
    

    – by @cidrblock (#1151)

  • Added settings information to playbook artifact.

    – by @cidrblock (#1152)

  • Added in-place settings file format migration from v1 to v2.

    – by @cidrblock (#1182)

  • Added {playbook_status} as a placeholder for the artifact file name.

    – by @cidrblock (#1223)

Backward incompatible changes

  • Moved the configuration of pull-policy under the pull key in the settings file.

    Here is a sample:

    ansible-navigator
      execution-environment:
        pull:
          policy: never
    

    – by @cidrblock (#1029)

  • The environment variable for user specified execution environment mounts is now a semi-colon delimited string. e.g. ANSIBLE_NAVIGATOR_EXECUTION_ENVIRONMENT_VOLUME_MOUNTS='\p1:\p1;\p2:p2'

    – by @cidrblock (#1061)

  • Renamed label to options for execution environment volume mounts in the settings file.

    ansible-navigator:
      execution-environment:
        volume-mounts:
          - src: "/home/user/my_collections"
            dest: "/home/user/my_collections"
            options: "Z"
    

    – by @cidrblock (#1075)

  • Renamed the ts_utc variable in the playbook artifact file name to time_stamp.

    – by @cidrblock (#1085)

  • Moved ansible.playbook to ansible.playbook.path in the settings file.

    – by @cidrblock (#1100)

  • Moved ansible.config to ansible.config.path in the settings file.

    – by @cidrblock (#1102)

  • Moved ansible.inventories to ansible.inventory.entries in the settings file.

    – by @cidrblock (#1103)

  • Moved the help entries into their respective ansible command parent keys in settings file.

    ansible-navigator.help-builder => ansible-navigator.ansible-builder.help ansible-navigator.help-config => ansible-navigator.ansible.config.help ansible-navigator.help-doc => ansible-navigator.documentation.help ansible-navigator.help-inventory => ansible-navigator.ansible.inventory.help ansible-navigator.help-playbook => ansible-navigator.ansible.playbook.help

    – by @cidrblock (#1104)

  • Moved the documentation section to ansible.doc in the settings file.

    – by @cidrblock (#1106)

  • Set the inventory environment variable to reuse ANSIBLE_INVENTORY.

    – by @cidrblock (#1113)

  • Set the minimum supported python version for ansible-navigator to 3.8.

    – by @cidrblock (#1149)

Miscellaneous

  • Added changelog fragment management infrastructure using Towncrier – by @webknjaz

  • Ensure durations in the TUI are rounded consistently (half-up). – by @cidrblock (#640)

Contributor-facing changes

  • Integrated a popular community check tool pre-commit – by @webknjaz

  • Started maintaining pre-existing flake8 exclusions per file – by @webknjaz (#662, #664)

  • Added an additional manually triggered slow flake8 check to pre-commit – by @ssbarnea and @webknjaz (#668)

  • Added an security guideline to the repository – by @webknjaz (#680)

  • Added an initial contributing guidelines infrastructure to the documentation – by @webknjaz (#680)

  • Added Code Of Conduct pointers to the repository – by @webknjaz (#680)

  • Started maintaining a standalone flake8 linter tool configuration file at a dedicated location. It now exists in .flake8 in the repository root – by @ssbarnea and @webknjaz (#683)

  • Updated the linting tox environment names in the contributing document to match the configuration changes in the repository. It now mentions separate commands for lint and lint-vetting suites – by @ssbarnea (#708)

  • Renamed module name sentinals to sentinels, correcting an unfortunate spelling mistake – by @ssbarnea (#710)

  • Started running the MyPy linter tool in two contexts – one for Python 3.10 and the other for Python 3.6 – by @webknjaz (#726)

  • Made code-spell tool part of accepted project linters. – by @ssbarnea (#727)

  • Bumped the wemake-python-styleguide linter suite to v0.16.0 that comes with the support for flake8 v4 – by @webknjaz