===========
Ansible 2.5
===========
**Core Engine Freeze and Module Freeze: 22 January 2018**

**Core and Curated Module Freeze: 22 January 2018**

**Community Module Freeze: 7 February 2018**

**Release Candidate 1 will be 21 February, 2018**

**Target: March 2018**

.. contents:: Topics

Engine improvements
-------------------
- Assemble module improvements
  - assemble just skips when in check mode, it should be able to test if there is a difference and changed=true/false.
  - The same with diff, it should work as template modules does
- Handle Password reset prompts cleaner
- Tasks stats for rescues and ignores
- Normalize temp dir usage across all subsystems
- Add option to set playbook dir for adhoc, inventory and console to allow for 'relative path loading'


Ansible-Config
--------------
- Extend config to more plugin types and update plugins to support the new config

Inventory
---------
- ansible-inventory option to output group variable assignment and data (--export)
- Create inventory plugins for:
  - aws

Facts
-----
- Namespacing fact variables (via a config option) implemented in ansible/ansible PR `#18445 <https://github.com/ansible/ansible/pull/18445>`_.
  Proposal found in ansible/proposals issue `#17 <https://github.com/ansible/proposals/issues/17>`_.
- Make fact collectors and gather_subset specs finer grained
- Eliminate unneeded deps between fact collectors
- Allow fact collectors to indicate if they need information from another fact collector to be gathered first.

Static Loop Keyword
-------------------

- A simpler altenative to ``with_``, ``loop:`` only takes a list
- Remove complexity from loops, lookups are still available to users
- Less confusing having a static directive vs a one that is dynamic depending on plugins loaded.

Vault
-----
- Vault secrets client inc new 'keyring' client

Runtime Check on Modules for Blacklisting
-----------------------------------------
- Filter on things like "supported_by" in module metadata
- Provide users with an option of "warning, error or allow/ignore"
- Configurable via ansible.cfg and environment variable

Windows
-------
- Implement gather_subset on Windows facts
- Fix Windows async + become to allow them to work together
- Implement Windows become flags for controlling various modes **(done)**
  - logontype
  - elevation behavior
- Convert win_updates to action plugin for auto reboot and extra features **(done)**
- Spike out changing the connection over to PSRP instead of WSMV **(done- it's possible)**
- Module updates

  - win_updates **(done)**

    - Fix win_updates to detect (or request) become
    - Add whitelist/blacklist features to win_updates
  - win_dsc further improvements **(done)**

General Cloud
-------------
- Make multi-cloud provisioning easier
- Diff mode will output provisioning task results of ansible-playbook runs
- Terraform module

AWS
---
- Focus on pull requests for various modules
- Triage existing merges for modules
- Module work

  - ec2_instance
  - ec2_vpc: Allow the addition of secondary IPv4 CIDRS to existing VPCs.
  - AWS Network Load Balancer support (NLB module, ASG support, etc)
  - rds_instance

Azure
-----
- Azure CLI auth **(done)**
- Fix Azure module results to have "high-level" output instead of raw REST API dictionary **(partial, more to come in 2.6)**
- Deprecate Azure automatic storage accounts in azure_rm_virtualmachine **(breaks on Azure Stack, punted until AS supports managed disks)**

Network Roadmap
---------------
- Refactor common network shared code into package **(done)**
- Convert various nxos modules to leverage declarative intent **(done)**
- Refactor various modules to leverage the cliconf plugin **(done)**
- Add various missing declarative modules for supported platforms and functions **(done)**
- Implement a feature that handles platform differences and feature unavailability **(done)**
- netconf-config.py should provide control for deployment strategy
- Create netconf connection plugin **(done)**
- Create netconf fact module
- Turn network_cli into a usable connection type **(done)**
- Implements jsonrpc message passing for ansible-connection **(done)**
- Improve logging for ansible-connection **(done)**
- Improve stdout output for failures whilst using persistent connection **(done)**
- Create IOS-XR NetConf Plugin and refactor iosxr modules to leverage netconf plugin **(done)**
- Refactor junos modules to use netconf plugin **(done)**
- Filters: Add a filter to convert XML response from a network device to JSON object **(done)**

Documentation
-------------
- Extend documentation to more plugins
- Document vault-password-client scripts.
- Network Documentation

  - New landing page (to replace intro_networking) **(done)**
  - Platform specific guides **(done)**
  - Walk through: Getting Started **(done)**
  - Networking and ``become`` **(done)**
  - Best practice **(done)**

Contributor Quality of Life
---------------------------
- Finish PSScriptAnalyer integration with ansible-test (for enforcing Powershell style) **(done)**
- Resolve issues requiring skipping of some integration tests on Python 3.
