summaryrefslogtreecommitdiff
path: root/changelogs/changelog.yaml
blob: d48213a2c9cf30433dc792a38ea3194444cca0db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
ancestor: 2.14.0
releases:
  2.15.0b1:
    changes:
      breaking_changes:
      - ansible-doc - no longer treat plugins in collections whose name starts with
        ``_`` as deprecated (https://github.com/ansible/ansible/pull/79362).
      - ansible-test - Integration tests which depend on specific file permissions
        when running in an ansible-test managed host environment may require changes.
        Tests that require permissions other than ``755`` or ``644`` may need to be
        updated to set the necessary permissions as part of the test run.
      - ansible-test - The ``vcenter`` test plugin now defaults to using a user-provided
        static configuration instead of the ``govcsim`` simulator for collections.
        Set the ``ANSIBLE_VCSIM_CONTAINER`` environment variable to ``govcsim`` to
        use the simulator. Keep in mind that the simulator is deprecated and will
        be removed in a future release.
      - ansible-test sanity - previously plugins and modules in collections whose
        name started with ``_`` were treated as deprecated, even when they were not
        marked as deprecated in ``meta/runtime.yml``. This is no longer the case (https://github.com/ansible/ansible/pull/79362).
      - ansible-test validate-modules - Removed the ``missing-python-doc`` error code
        in validate modules, ``missing-documentation`` is used instead for missing
        PowerShell module documentation.
      bugfixes:
      - Ansible.Basic.cs - Ignore compiler warning (reported as an error) when running
        under PowerShell 7.3.x.
      - BSD network facts - Do not assume column indexes, look for ``netmask`` and
        ``broadcast`` for determining the correct columns when parsing ``inet`` line
        (https://github.com/ansible/ansible/issues/79117)
      - Correctly count rescued tasks in play recap (https://github.com/ansible/ansible/issues/79711)
      - Do not crash when templating an expression with a test or filter that is not
        a valid Ansible filter name (https://github.com/ansible/ansible/issues/78912,
        https://github.com/ansible/ansible/pull/78913).
      - Fix ``MANIFEST.in`` to exclude unwanted files in the ``packaging/`` directory.
      - Fix ``MANIFEST.in`` to include ``*.md`` files in the ``test/support/`` directory.
      - Fix a traceback occuring when a task is named ``meta`` (https://github.com/ansible/ansible/issues/79459)
      - Fix an issue where the value of ``become`` was ignored when used on a role
        used as a dependency in ``main/meta.yml`` (https://github.com/ansible/ansible/issues/79777)
      - Fix bug in `vars` applied to roles, they were being incorrectly exported among
        others while only vars/main.yml was meant to be. Also adjusted the precedence
        to act the same as inline params.
      - Fix conditionally notifying ``include_tasks` handlers when ``force_handlers``
        is used (https://github.com/ansible/ansible/issues/79776)
      - Fix reusing a connection in a task loop that uses a redirected or aliased
        name - https://github.com/ansible/ansible/issues/78425
      - Fix setting become activation in a task loop - https://github.com/ansible/ansible/issues/78425
      - Fix traceback when using the ``template`` module and running with ``ANSIBLE_DEBUG=1``
        (https://github.com/ansible/ansible/issues/79763)
      - Fix using ``GALAXY_IGNORE_CERTS`` in conjunction with collections in requirements
        files which specify a specific ``source`` that isn't in the configured servers.
      - Fix using ``GALAXY_IGNORE_CERTS`` when downloading tarballs from Galaxy servers
        (https://github.com/ansible/ansible/issues/79557).
      - Fixes leftover _valid_attrs usage.
      - Fixes the password lookup to not rewrite files if they are not changed when
        using the "encrypt" parameter (#79430).
      - Module and role argument validation - include the valid suboption choices
        in the error when an invalid suboption is provided.
      - Perform type check on data passed to Display.display to enforce the requirement
        of being given a python3 unicode string
      - TaskExecutor - don't ignore templated _raw_params that k=v parser failed to
        parse (https://github.com/ansible/ansible/issues/79862)
      - Windows - Display a warning if the module failed to cleanup any temporary
        files rather than failing the task. The warning contains a brief description
        of what failed to be deleted.
      - Windows - Ensure the module temp directory contains more unique values to
        avoid conflicts with concurrent runs - https://github.com/ansible/ansible/issues/80294
      - Windows - Improve temporary file cleanup used by modules. Will use a more
        reliable delete operation on Windows Server 2016 and newer to delete files
        that might still be open by other software like Anti Virus scanners. There
        are still scenarios where a file or directory cannot be deleted but the new
        method should work in more scenarios.
      - '``ansible-galaxy search rolename`` - give a warning instead of non-zero return
        code when search results are empty. This is similar to the behavior when listing
        roles, which gives a warning if a role cannot be found and exits with a return
        code of ``0``.'
      - '``ansible_eval_concat`` - avoid redundant unsafe wrapping of templated strings
        converted to Python types'
      - ansible-config limit shorthand format to assigned values
      - ansible-doc - stop generating wrong module URLs for module see-alsos. The
        URLs for modules in ansible.builtin do now work, and URLs for modules outside
        ansible.builtin are no longer added (https://github.com/ansible/ansible/pull/80280).
      - ansible-doc now will correctly display short descriptions on listing filters/tests
        no matter the directory sorting.
      - ansible-galaxy - Improve retries for collection installs, to properly retry,
        and extend retry logic to common URL related connection errors (https://github.com/ansible/ansible/issues/80170
        https://github.com/ansible/ansible/issues/80174)
      - ansible-galaxy - fix installing collections in git repositories/directories
        which contain a MANIFEST.json file (https://github.com/ansible/ansible/issues/79796).
      - ansible-galaxy - make initial call to Galaxy server on-demand only when installing,
        getting info about, and listing roles.
      - ansible-galaxy collection install - respect symlinks when installing from
        source or local repository (https://github.com/ansible/ansible/issues/78442)
      - ansible-galaxy collection/role init - preserve symlinks (https://github.com/ansible/ansible/issues/39334).
      - ansible-galaxy role info - fix unhandled AttributeError by catching the correct
        exception.
      - ansible-inventory will no longer duplicate host entries if they were part
        of a group's childrens tree.
      - ansible-inventory will not explicitly sort groups/hosts anymore, giving a
        chance (depending on output format) to match the order in the input sources.
      - ansible-playbook -K breaks when passwords have quotes (https://github.com/ansible/ansible/issues/79836).
      - ansible-test - Add ``wheel < 0.38.0`` constraint for Python 3.6 and earlier.
      - ansible-test - Add support for ``pytest`` assertion rewriting when running
        unit tests on Python 3.5 and later. Resolves issue https://github.com/ansible/ansible/issues/68032
      - ansible-test - Added a work-around for a traceback under Python 3.11 when
        completing certain command line options.
      - ansible-test - Allow disabled, unsupported, unstable and destructive integration
        test targets to be selected using their respective prefixes.
      - ansible-test - Allow unstable tests to run when targeted changes are made
        and the ``--allow-unstable-changed`` option is specified (resolves https://github.com/ansible/ansible/issues/74213).
      - ansible-test - Always indicate the Python version being used before installing
        requirements. Resolves issue https://github.com/ansible/ansible/issues/72855
      - ansible-test - Avoid using ``exec`` after container startup when possible.
        This improves container startup performance and avoids intermittent startup
        issues with some old containers.
      - ansible-test - Connection attempts to managed remote instances no longer abort
        on ``Permission denied`` errors.
      - ansible-test - Detection for running in a Podman or Docker container has been
        fixed to detect more scenarios. The new detection relies on ``/proc/self/mountinfo``
        instead of ``/proc/self/cpuset``. Detection now works with custom cgroups
        and private cgroup namespaces.
      - ansible-test - Exclude ansible-core vendored Python packages from ansible-test
        payloads.
      - ansible-test - Fix broken documentation link for ``aws`` test plugin error
        messages.
      - ansible-test - Fix validate-modules error when retrieving PowerShell argspec
        when retrieved inside a Cmdlet
      - ansible-test - Handle server errors when executing the ``docker info`` command.
      - ansible-test - Integration test target prefixes defined in a ``tests/integration/target-prefixes.{group}``
        file can now contain an underscore (``_``) character. Resolves issue https://github.com/ansible/ansible/issues/79225
      - ansible-test - Multiple containers now work under Podman without specifying
        the ``--docker-network`` option.
      - ansible-test - Pass the ``XDG_RUNTIME_DIR`` environment variable through to
        container commands.
      - ansible-test - Perform PyPI proxy configuration after instances are ready
        and bootstrapping has been completed. Only target instances are affected,
        as controller instances were already handled this way. This avoids proxy configuration
        errors when target instances are not yet ready for use.
      - ansible-test - Prevent concurrent / repeat inspections of the same container
        image.
      - ansible-test - Prevent concurrent / repeat pulls of the same container image.
      - ansible-test - Prevent concurrent execution of cached methods.
      - ansible-test - Removed pointless comparison in diff evaluation logic.
      - ansible-test - Set ``PYLINTHOME`` for the ``pylint`` sanity test to prevent
        failures due to ``pylint`` checking for the existence of an obsolete home
        directory.
      - ansible-test - Show the exception type when reporting errors during instance
        provisioning.
      - ansible-test - Support Podman 4.4.0+ by adding the ``SYS_CHROOT`` capability
        when running containers.
      - ansible-test - Support loading of vendored Python packages from ansible-core.
      - ansible-test - The ``validate-modules`` sanity test now properly enforces
        documentation before imports for plugins. Previously this was only enforced
        for modules due to a coding error.
      - ansible-test - Update the ``pylint`` sanity test requirements to resolve crashes
        on Python 3.11. (https://github.com/ansible/ansible/issues/78882)
      - ansible-test - Update the ``pylint`` sanity test to use version 2.15.4.
      - ansible-test - Update the ``pylint`` sanity test to use version 2.15.5.
      - ansible-test - Use consistent file permissions when delegating tests to a
        container or remote host. Files with any execute bit set will use permissions
        ``755``. All other files will use permissions ``644``. (Resolves issue https://github.com/ansible/ansible/issues/75079)
      - ansible-test - fix warning message about failing to run an image to include
        the image name
      - ansible-test runtime-metadata sanity test - do not crash on YAML parsing errors
        without a context mark (https://github.com/ansible/ansible/pull/78802).
      - ansible-test sanity - correctly report invalid YAML in validate-modules (https://github.com/ansible/ansible/issues/75837).
      - ansible-vault encrypt_string - started appending a line feed at the end of
        the encrypted string output. Missing newline character caused problems identifying
        where the string ends in some shells (like bash) or accidentally copying an
        extra trailing terminator symbol (e.g., zsh prints out a ``%`` sign to signal
        where the original output stops) (https://github.com/ansible/ansible/issues/78932).
      - ansible_facts.hardware - Define all processor facts on s390x (https://github.com/ansible/ansible/issues/19755)
      - apt - set locale to fix updating the cache (https://github.com/ansible/ansible/issues/79523).
      - apt module should not traceback on invalid type given as package. issue 78663.
      - apt_repository will no longer fail to detect key when unrelated errors/warnings
        are issued by apt-key.
      - argument spec validation - again report deprecated parameters for Python-based
        modules. This was accidentally removed in ansible-core 2.11 when argument
        spec validation was refactored (https://github.com/ansible/ansible/issues/79680,
        https://github.com/ansible/ansible/pull/79681).
      - argument spec validation - ensure that deprecated aliases in suboptions are
        also reported (https://github.com/ansible/ansible/pull/79740).
      - argument spec validation - fix warning message when two aliases of the same
        option are used for suboptions to also mention the option's name they are
        in (https://github.com/ansible/ansible/pull/79740).
      - basic.py module_utils - Perform Python version check much earlier to ensure
        it runs before other errors occur.
      - connection local now avoids traceback on invalid user being used to execuet
        ansible (valid in host, but not in container).
      - copy - fix creating the dest directory in check mode with remote_src=True
        (https://github.com/ansible/ansible/issues/78611).
      - copy - fix reporting changes to file attributes in check mode with remote_src=True
        (https://github.com/ansible/ansible/issues/77957).
      - copy module will no longer move 'non files' set as src when remote_src=true.
      - copy remote_src=true - fix copying subdirs recursively when the dest exists
        and the src and dest have multiple common subdirectories in a common directory
        (https://github.com/ansible/ansible/issues/74536).
      - copy remote_src=true - fix reporting changed for copying empty directories.
      - display - reduce risk of post-fork output deadlocks (https://github.com/ansible/ansible/pull/79522)
      - file - touch action in check mode was always returning ok. Fix now evaluates
        the different conditions and returns the appropriate changed status. (https://github.com/ansible/ansible/issues/79360)
      - file lookup now handles missing files more gracefully.
      - file lookup now plays nice with generic lookup ``errors`` option.
      - get_url - Ensure we are passing ciphers to all url_get calls (https://github.com/ansible/ansible/issues/79717)
      - get_url module - Added a documentation reference to ``hashlib`` regarding
        algorithms, as well as a note about ``md5`` support on systems running in
        FIPS compliant mode.
      - get_url module - Removed out-of-date documentation stating that ``hashlib``
        is a third-party library.
      - 'handlers - fix an issue where the ``flush_handlers`` meta task could not
        be used with FQCN: ``ansible.builtin.meta`` (https://github.com/ansible/ansible/issues/79023)'
      - include_role - Inherit from role parents beyond a depth of 3 (https://github.com/ansible/ansible/issues/47023).
      - jinja2_native - fix intermittent 'could not find job' failures when a value
        of ``ansible_job_id`` from a result of an async task was inadvertently changed
        during execution; to prevent this a format of ``ansible_job_id`` was changed.
      - 'jinja2_native: preserve quotes in strings (https://github.com/ansible/ansible/issues/79083)'
      - keyword inheritance - Ensure that we do not squash keywords in validate (https://github.com/ansible/ansible/issues/79021)
      - known_hosts - do not return changed status when a non-existing key is removed
        (https://github.com/ansible/ansible/issues/78598)
      - list-tags now shows the 'never' tag, which was being excluded by default.
        To list all tasks you still need to add `--list-tasks --tags never,all`.
      - loops/delegate_to - Do not double calculate the values of loops and ``delegate_to``
        (https://github.com/ansible/ansible/issues/80038)
      - module_utils/basic.py - Fix detection of available hashing algorithms on Python
        3.x. All supported algorithms are now available instead of being limited to
        a hard-coded list. This affects modules such as ``get_url`` which accept an
        arbitrary checksum algorithm.
      - normal action plugin - remove obsolete ``if`` (https://github.com/ansible/ansible/pull/79690).
      - omit on keywords was resetting to default value, ignoring inheritance.
      - paramiko - Add a new option to allow paramiko >= 2.9 to easily work with all
        devices now that rsa-sha2 support was added to paramiko, which prevented communication
        with numerous platforms. (https://github.com/ansible/ansible/issues/76737)
      - paramiko - Add back support for ``ssh_args``, ``ssh_common_args``, and ``ssh_extra_args``
        for parsing the ``ProxyCommand`` (https://github.com/ansible/ansible/issues/78750)
      - paramiko connection was still using outdated playcontext, this should bring
        it up to date to use the 'correct' data for each task/loop.
      - password lookup now correctly reads stored ident fields.
      - password_hash - handle errors using unknown passlib hashtypes more gracefully
        (https://github.com/ansible/ansible/issues/45392).
      - plugin loader, fix detection for existing configuration before initializing
        for a plugin
      - role deduplication - Always create new role object, regardless of deduplication.
        Deduplication will only affect whether a duplicate call to a role will execute,
        as opposed to re-using the same object. (https://github.com/ansible/ansible/pull/78661)
      - roles - Fix templating ``public``, ``allow_duplicates`` and ``rolespec_validate``
        (https://github.com/ansible/ansible/issues/80304).
      - service_facts - Use python re to parse service output instead of grep (https://github.com/ansible/ansible/issues/78541)
      - strategy plugins now correctly identify bad registered variables, even on
        skip.
      - 'strategy plugins: get the correctly templated and validated run_once value
        on strategy linear (https://github.com/ansible/ansible/issues/78492)'
      - systemd - daemon-reload and daemon-reexec ignore errors when running in a
        chroot (https://github.com/ansible/ansible/pull/79643)
      - templates - Fixed ``TypeError`` when a lookup plugin has an option called
        ``name``.
      - unarchive - allow relative path for ``dest`` (https://github.com/ansible/ansible/issues/64612)
      - unarchive - log errors from commands to assist in debugging (https://github.com/ansible/ansible/issues/64612)
      - updated error messages to include 'acl' and not just mode changes when failing
        to set required permissions on remote.
      - uri - improve JSON content type detection
      - user - fix comparing group IDs to existing group names so groups are not always
        updated (https://github.com/ansible/ansible/issues/79956).
      - user module - Removed ``password_expire_max`` from the return docs, as it
        is not returned.
      - user module - Removed ``password_expire_min`` from the return docs, as it
        is not returned.
      - vault - show filename additionally if missing secrets prevents decryption
        (https://github.com/ansible/ansible/issues/79723)
      - winrm - Increase the read timeout to 10 seconds later than the operation timeout
        reducing the chances of a false read timeout
      deprecated_features:
      - The ``ConnectionBase()._new_stdin`` attribute is deprecated, use ``display.prompt_until(msg)``
        instead.
      - ansible-test - The ``foreman`` test plugin is now deprecated. It will be removed
        in a future release.
      - ansible-test - The ``govcsim`` simulator in the ``vcenter`` test plugin is
        now deprecated. It will be removed in a future release. Users should switch
        to providing their own test environment through a static configuration file.
      - password_hash - deprecate using passlib.hash.hashtype if hashtype isn't in
        the list of documented choices.
      - vars - Specifying a list of dictionaries for ``vars:`` is deprecated in favor
        of specifying a dictionary.
      known_issues:
      - ansible-test - Additional configuration may be required for certain container
        host and container combinations. Further details are available in the testing
        documentation.
      - ansible-test - Custom containers with ``VOLUME`` instructions may be unable
        to start, when previously the containers started correctly. Remove the ``VOLUME``
        instructions to resolve the issue. Containers with this condition will cause
        ``ansible-test`` to emit a warning.
      - ansible-test - Systems with Podman networking issues may be unable to run
        containers, when previously the issue went unreported. Correct the networking
        issues to continue using ``ansible-test`` with Podman.
      - ansible-test - Unit tests for collections do not support ``pytest`` assertion
        rewriting on Python 2.7.
      - ansible-test - Using Docker on systems with SELinux may require setting SELinux
        to permissive mode. Podman should work with SELinux in enforcing mode.
      - 'dnf5 - The DNF5 package manager currently does not provide all functionality
        to ensure feature parity between the existing ``dnf`` and the new ``dnf5``
        module. As a result the following ``dnf5`` options are effectively a no-op:
        ``cacheonly``, ``enable_plugin``, ``disable_plugin`` and ``lock_timeout``.'
      major_changes:
      - ansible-test - Docker Desktop on WSL2 is now supported (additional configuration
        required).
      - ansible-test - Docker and Podman are now supported on hosts with cgroup v2
        unified. Previously only cgroup v1 and cgroup v2 hybrid were supported.
      - ansible-test - Podman now works on container hosts without systemd. Previously
        only some containers worked, while others required rootfull or rootless Podman,
        but would not work with both. Some containers did not work at all.
      - ansible-test - Podman on WSL2 is now supported.
      - ansible-test - When additional cgroup setup is required on the container host,
        this will be automatically detected. Instructions on how to configure the
        host will be provided in the error message shown.
      minor_changes:
      - Add support for custom salt for vault encoding to make it deterministic (https://github.com/ansible/ansible/issues/35480).
      - Added the conditional that was False if ``when`` caused a task to skip under
        ``false_condition``.
      - Allow force deletion of a group even when it is the primary group of a user.
        (https://github.com/ansible/ansible/issues/77849)
      - Ansible.ModuleUtils.AddType - Add support for compiling ``unsafe`` code with
        the ``//AllowUnsafe`` directive
      - Cache field attributes list on the playbook classes
      - Cleaned up unused imports in core.
      - Get user input for ``pause`` and ``paramiko_ssh`` from the strategy rather
        than access ``sys.stdin`` in the WorkerProcess.
      - Introduce ``Delegatable`` and ``Notifiable`` mixin classes for playbook objects
      - Make using blocks as handlers a parser error (https://github.com/ansible/ansible/issues/79968)
      - Playbook objects - Replace deprecated stacked ``@classmethod`` and ``@property``
      - Raise an error when an incorrect ``isa`` type is passed to ``FieldAttribute``.
      - Remove fallback code for when ``defined``/``undefined`` tests were used on
        objects containing nested undefined variables; due to changes in lazy evalution
        of Jinja2 expressions it is no longer needed.
      - 'Remove unused Python stdlib imports from module_utils which were not present
        for backwards compatibility in: common.file, compat.selectors, facts.network.iscsi,
        facts.network.nvme, yumdnf

        '
      - 'Remove unused internal imports from module_utils which were not present for
        backwards compatibility in: common.file, common.parameters, facts.system.caps,
        yumdnf

        '
      - Removed ``straight.plugin`` from the build and packaging requirements.
      - 'Removed unused imports from the following action plugins: async_status, command,
        pause, set_stats, uri, validate_argument_spec'
      - 'Removed unused imports from the following lookup plugins: fileglob, template'
      - 'Removed unused imports from the following modules: apt, dnf, expect, pip,
        slurp, user, yum'
      - 'Removed unused imports from the following set of test plugins: files'
      - 'Removed unused imports from the following strategy plugins: debug'
      - 'Removed unused imports from the following vars plugins: host_group_vars'
      - Use ``ansible.module_utils.six.moves.collections_abc`` instead of ``ansible.module_utils.common._collections_compat``
        in modules and module_utils.
      - Use ``collections.abc`` instead of ``ansible.module_utils.common._collections_compat``
        in controller code.
      - '``AnsibleJ2Vars`` class that acts as a storage for all variables for templating
        purposes now uses ``collections.ChainMap`` internally.'
      - add parameter ``numeric`` to the iptables module to disable dns lookups when
        running list -action internally (https://github.com/ansible/ansible/issues/78793).
      - allow user to set ansible specific env vars for selecting pager and editor,
        but still fall back to commonly used defaults.
      - ansible-doc - support role extension for semantic markup spec so that ``O()``
        and ``RV()`` referring to role entrypoints are rendered more readable (https://github.com/ansible/ansible/pull/80305).
      - ansible-doc - support semantic markup in text output (https://github.com/ansible/ansible/pull/80242).
      - ansible-doc text output - support ``seealso`` plugin record that was added
        for filter and test plugin documentation (https://github.com/ansible/ansible/pull/80212).
      - ansible-galaxy - Add ability to specify collection versions on the CLI without
        the need for a colon. Such as ``namespace.name==1.2.3`` vs ``namespace.name:1.2.3``.
      - ansible-galaxy - Use Python's native ``raise ... from`` instead of ``six.raise_from``.
      - ansible-galaxy - support ``resolvelib >= 0.5.3, < 0.10.0``.
      - ansible-galaxy - support ``resolvelib >= 0.5.3, < 1.1.0``.
      - ansible-inventory now supports the limit command line options.
      - ansible-test - A new ``audit`` option is available when running custom containers.
        This option can be used to indicate whether a container requires the AUDIT_WRITE
        capability. The default is ``required``, which most containers will need when
        using Podman. If necessary, the ``none`` option can be used to opt-out of
        the capability. This has no effect on Docker, which always provides the capability.
      - ansible-test - A new ``cgroup`` option is available when running custom containers.
        This option can be used to indicate a container requires cgroup v1 or that
        it does not use cgroup. The default behavior assumes the container works with
        cgroup v2 (as well as v1).
      - ansible-test - Add Alpine 3.17 remote.
      - ansible-test - Add Fedora 37 container.
      - ansible-test - Add Fedora 37 remote.
      - ansible-test - Add FreeBSD 12.4 remote.
      - ansible-test - Add RHEL 8.7 remote.
      - ansible-test - Add RHEL 9.1 remote.
      - ansible-test - Add macOS 13.2 remote.
      - ansible-test - Additional log details are shown when containers fail to start
        or SSH connections to containers fail.
      - ansible-test - Connection failures to remote provisioned hosts now show failure
        details as a warning.
      - ansible-test - Containers included with ansible-test no longer disable seccomp
        by default.
      - ansible-test - Disabled the ``ansible-format-automatic-specification`` rule
        from the ``pylint`` sanity test, now that Python 2.6 is no longer supported.
      - ansible-test - Enable the ``trailing-comma-tuple`` rule in the ``pylint``
        sanity test.
      - ansible-test - Enable the ``unused-import`` rule for the ``pylint`` sanity
        test for collections.
      - ansible-test - Failure to connect to a container over SSH now results in a
        clear error. Previously tests would be attempted even after initial connection
        attempts failed.
      - ansible-test - Improve consistency of executed ``pylint`` commands by making
        the plugins ordered.
      - ansible-test - Improve consistency of version specific documentation links.
      - ansible-test - Integration tests can be excluded from retries triggered by
        the ``--retry-on-error`` option by adding the ``retry/never`` alias. This
        is useful for tests that cannot pass on a retry or are too slow to make retries
        useful.
      - ansible-test - Minor cleanup and package updates in distro containers.
      - ansible-test - More details are provided about an instance when provisioning
        fails.
      - ansible-test - Moved git handling out of the validate-modules sanity test
        and into ansible-test.
      - ansible-test - Reduce the polling limit for SSHD startup in containers from
        60 retries to 10. The one second delay between retries remains in place.
      - 'ansible-test - Removed test containers: fedora36'
      - 'ansible-test - Removed test remotes: alpine/3.16, fedora/36, freebsd/12.3,
        rhel/8.6, rhel/9.0, macos/12.0'
      - ansible-test - Removed the ``--keep-git`` sanity test option, which was limited
        to testing ansible-core itself.
      - ansible-test - SSH connections from OpenSSH 8.8+ to CentOS 6 containers now
        work without additional configuration. However, clients older than OpenSSH
        7.0 can no longer connect to CentOS 6 containers as a result. The container
        must have ``centos6`` in the image name for this work-around to be applied.
      - ansible-test - SSH shell connections from OpenSSH 8.8+ to ansible-test provisioned
        network instances now work without additional configuration. However, clients
        older than OpenSSH 7.0 can no longer open shell sessions for ansible-test
        provisioned network instances as a result.
      - 'ansible-test - Specify the configuration file location required by test plugins
        when the config file is not found. This resolves issue: https://github.com/ansible/ansible/issues/79411'
      - ansible-test - The ``ansible-test env`` command now detects and reports the
        container ID if running in a container.
      - ansible-test - The ``pep8`` sanity test rule ``E203`` is now disabled since
        it is not PEP 8 compliant. This provides compatibility with output generated
        by the ``black`` code formatter.
      - ansible-test - The ``validate-modules`` sanity test no longer limits the ``__future__``
        imports that can be used. Other sanity tests that check ``__future__`` imports
        remain unchanged. As a result, the error code ``illegal-future-imports`` is
        no longer used.
      - ansible-test - Unit tests now support network disconnect by default when running
        under Podman. Previously this feature only worked by default under Docker.
      - ansible-test - Update Alpine 3 container to 3.17.
      - ansible-test - Update Python requirements used for sanity tests.
      - ansible-test - Update ``base`` and ``default`` containers to include Python
        3.11.0.
      - ansible-test - Update ``default`` containers to include new ``docs-build``
        sanity test requirements.
      - ansible-test - Update error handling code to use Python 3.x constructs, avoiding
        direct use of ``errno``.
      - ansible-test - Update test container to ``7.4.0`` which includes the new PSScriptAnalyzer
        versions
      - ansible-test - Update the CloudStack test plugin to use a newer test container
        with CloudStack 4.18.0.
      - ansible-test - Update the NIOS test plugin to use a newer multi-arch test
        container.
      - ansible-test - Update the ``ansible-bad-import-from`` rule in the ``pylint``
        sanity test to recommend ``ansible.module_utils.six.moves.collections_abc``
        instead of ``ansible.module_utils.common._collections_compat``.
      - ansible-test - Update the ``base`` and ``default`` test containers with the
        latest requirements.
      - ansible-test - Update the ``default`` containers to include the ``package-data``
        requirements update.
      - ansible-test - Update the ``default`` containers to include the ``pylint``
        requirements update.
      - ansible-test - Updated the Azure Pipelines CI plugin to work with newer versions
        of git.
      - ansible-test - Use ``stop --time 0`` followed by ``rm`` to remove ephemeral
        containers instead of ``rm -f``. This speeds up teardown of ephemeral containers.
      - ansible-test - Warnings are now shown when using containers that were built
        with VOLUME instructions.
      - ansible-test - When setting the max open files for containers, the container
        host's limit will be checked. If the host limit is lower than the preferred
        value, it will be used and a warning will be shown.
      - ansible-test - When using Podman, ansible-test will detect if the loginuid
        used in containers is incorrect. When this occurs a warning is displayed and
        the container is run with the AUDIT_CONTROL capability. Previously containers
        would fail under this situation, with no useful warnings or errors given.
      - ansible-test acme test container - update version to update used Pebble version,
        underlying Python and Go base containers, and Python requirements (https://github.com/ansible/ansible/pull/79783).
      - ansible-test pslint - Upgrade PSScriptAnalyzer to ``1.21.0`` which enables
        the ``AvoidMultipleTypeAttributes``, ``AvoidSemicolonsAsLineTerminators``,
        and ``AvoidUsingBrokenHashAlgorithms`` rules
      - ansible-test runtime-metadata sanity test - ensure that ``redirect`` entries
        in ``meta/runtime.yml`` contain collection names, except for ``module_utils``
        plugin redirects and ``import_redirect`` redirects (https://github.com/ansible/ansible/pull/78802).
      - ansible-test sanity --test ansible-doc - now also lists documentation for
        test and filter plugins that are documented (https://github.com/ansible/ansible/pull/77737).
      - ansible-test validate-modules - Added support for validating module documentation
        stored in a sidecar file alongside the module (``{module}.yml`` or ``{module}.yaml``).
        Previously these files were ignored and documentation had to be placed in
        ``{module}.py``.
      - ansible-test validate-modules - no longer treat falsy non-``False`` values
        for defaults as ``None`` (https://github.com/ansible/ansible/pull/79267).
      - apt - add allow-change-held-packages option to apt remove (https://github.com/ansible/ansible/issues/78131)
      - apt_repository - adds ``sources_added`` and ``sources_removed`` to the return
        of the module (https://github.com/ansible/ansible/issues/79306).
      - apt_repository will use the trust repo directories in order of preference
        (more appropriate to less) as they exist on the target.
      - collections - Add additional ignores for commonly rejected file extensions
      - collections - Add additional includes for REUSE license files (https://github.com/ansible/ansible/issues/79368)
      - deb822_repository - Add new module for managing DEB822 formatted apt repositories
      - debug - Perform argspec valdiation in debug action plugin (https://github.com/ansible/ansible/issues/79862)
      - dnf5 - Add new module for managing packages and other artifacts via the next
        version of DNF (https://github.com/ansible/ansible/issues/78898)
      - galaxy - include ``license_file`` in the default manifest directives (https://github.com/ansible/ansible/pull-request/79420)
      - optimized var loading by caching results as there is no variance in input
        during run.
      - pycompat24 module_utils - Remove support for Python 2.5 and earlier.
      - sanity tests - updates the collection-deprecated-version tests to ignore the
        ``prerelease`` component of the collection version ().
      - strftime filter, additional docs and links to source of truth.
      - updated the vendored distro library to upstream version (https://github.com/ansible/ansible/pull/79227)
      - validate-modules sanity test - add support for semantic markup (https://github.com/ansible/ansible/pull/80243).
      - validate-modules sanity test - if the ``check_mode`` attribute is present,
        check that it coincides with the ``support_check_mode`` parameter of ``AnsibleModule``
        (https://github.com/ansible/ansible/pull/80090).
      - validate-modules sanity test - remove support for the never implemented ``forced_action_plugin``
        attribute (https://github.com/ansible/ansible/pull/79317).
      - validate-modules sanity test - support the ``plugin`` see-also part of the
        semantic markup specification (https://github.com/ansible/ansible/pull/80244).
      release_summary: '| Release Date: 2023-04-04

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.15/porting_guides/porting_guide_core_2.15.html>`__

        '
      removed_features:
      - Remove deprecated ``ANSIBLE_CALLBACK_WHITELIST`` configuration environment
        variable, use ``ANSIBLE_CALLBACKS_ENABLED`` instead. (https://github.com/ansible/ansible/issues/78821)
      - Remove deprecated ``ANSIBLE_COW_WHITELIST`` configuration environment variable,
        use ``ANSIBLE_COW_ACCEPTLIST`` instead. (https://github.com/ansible/ansible/issues/78819)
      - Remove deprecated ``callback_whitelist`` configuration option, use ``callbacks_enabled``
        instead. (https://github.com/ansible/ansible/issues/78822)
      - Remove deprecated ``cow_whitelist`` configuration option, use ``cowsay_enabled_stencils``
        instead. (https://github.com/ansible/ansible/issues/78820)
    codename: Ten Years Gone
    fragments:
    - 19755-ansible_processor-s390x.yml
    - 2.15.0b1_summary.yaml
    - 20221021-deprecated-sanity.yml
    - 64612-unarchive-log-command-output.yml
    - 64612-unarchive-relative-path-dest.yml
    - 71424-deterministic-vault-encode.yml
    - 75837-validate-modules-invalid-yaml.yml
    - 76578-fix-role-argspec-suboptions-error.yml
    - 76737-paramiko-rsa-sha2.yml
    - 76997-fix-copy-subdirs-with-remote-src.yml
    - 77737-ansible-doc-test-filters-tests.yml
    - 78172-allow-force-deletion-of-group.yaml
    - 78492-fix-invalid-run_once-value.yml
    - 78541-service-facts-re.yml
    - 78624-copy-remote-src-check-mode.yml
    - 78748-fix-known-hosts-wrong-changed-status.yaml
    - 78750-paramiko-ssh-args-compat.yml
    - 78802-sanity-meta-runtime.yml
    - 78819-78820-remove-deprecated-cow-options.yml
    - 78821-78822-remove-callback_whitelist.yml
    - 78828-iptables-option-to-disable-dns-lookups.yml
    - 78913-template-missing-filter-test.yml
    - 78983-fix-collection-install-from-source-respects-dir-symlinks.yaml
    - 79017-ansible-vault-string-encryption-ending-with-newline.yml
    - 79021-dont-squash-in-validate.yml
    - 79023-fix-flush_handlers-fqcn.yml
    - 79079-fix-role-dep-chain.yaml
    - 79083-jinja2_native-preserve-quotes-in-strings.yml
    - 79117-bsd-ifconfig-inet-fix.yml
    - 79134-ansible-galaxy-init-symlinks.yml
    - 79187--wheel-0.38.0.yml
    - 79227-update-vendored-distro.yaml
    - 79267-validate-modules-defaults.yml
    - 79362-validate-modules-underscore.yml
    - 79368-galaxy-manifest-reuse-licenses.yml
    - 79376-replace-valid-attrs-with-fattributes.yaml
    - 79399-resolvelib_lt_0_10_0.yml
    - 79420-galaxy-manifest-license.yaml
    - 79422-fix-file-touch-check-mode-status.yaml
    - 79431-fix-password-lookup-rewrites.yml
    - 79459-fix-meta-task-check.yml
    - 79546-apt-fix-setting-locale.yml
    - 79561-fix-a-g-global-ignore-certs-cfg.yml
    - 79643-fix-systemd-daemon-reload-in-chroot.yml
    - 79658-improving-return-and-docs.yaml
    - 79681-argspec-param-deprecation.yml
    - 79690-normal-action-undefined.yml
    - 79711-fix-play-stats-rescued.yml
    - 79717-get-url-ciphers.yml
    - 79732-filename_in_decrypt_error.yml
    - 79740-aliases-warnings-deprecations-in-suboptions.yml
    - 79763-ansible_debug_template_tb_fix.yml
    - 79776-fix-force_handlers-cond-include.yml
    - 79777-fix-inheritance-roles-meta.yml
    - 79783-acme-test-container.yml
    - 79837-unquoting-only-when-origin-is-ini.yml
    - 79839-lookup-option-name.yml
    - 79862-debug-action-args.yml
    - 79862-fix-varargs.yml
    - 79968-blocks-handlers-error.yml
    - 79981-user-fix-groups-comparison.yml
    - 80090-validate-modules-check_mode-attribute.yml
    - 80196-resolvelib_lt_1_1_0.yml
    - 80212-ansible-doc-seealso.yml
    - 80242-ansible-doc-semantic-markup.yml
    - 80243-validate-modules.yml
    - 80244-validate-modules-seealso.yml
    - 80280-ansible-doc-seealso-urls.yml
    - 80305-ansible-doc-role-semantic-markup.yml
    - AddType-unsafe.yml
    - a-g-role-fix-catching-exception.yml
    - adjust_config_list.yml
    - adoc_fix_list.yml
    - ainv_limit.yml
    - ainv_limit_fix.yml
    - always-create-new-role.yml
    - ansible-basic-tmpdir-uniqueness.yml
    - ansible-galaxy-install-delay-initial-api-call.yml
    - ansible-galaxy-install-git-src-manifest.yml
    - ansible-galaxy-role-search-rc.yml
    - ansible-test-cloudstack-plugin.yml
    - ansible-test-container-management.yml
    - ansible-test-containers-docs-build.yml
    - ansible-test-containers-python-3.11.0.yml
    - ansible-test-default-container-update.yml
    - ansible-test-docs-links.yml
    - ansible-test-errno.yml
    - ansible-test-fix-pointless-comparison.yml
    - ansible-test-fix-python-3.11-traceback.yml
    - ansible-test-fix-warning-msg.yml
    - ansible-test-foreman.yml
    - ansible-test-git-handling.yml
    - ansible-test-govcsim.yml
    - ansible-test-integration-target-prefixes.yml
    - ansible-test-integration-targets-filter.yml
    - ansible-test-nios-plugin.yml
    - ansible-test-payload-file-permissions.yml
    - ansible-test-pep8-e203.yml
    - ansible-test-podman-chroot.yml
    - ansible-test-pylint-2.15.4.yml
    - ansible-test-pylint-2.15.5.yml
    - ansible-test-pylint-command.yml
    - ansible-test-pylint-home.yml
    - ansible-test-pylint-string-format.yml
    - ansible-test-pylint-trailing-comma-tuple.yml
    - ansible-test-pypi-proxy-fix.yml
    - ansible-test-pytest-assertion-rewriting.yml
    - ansible-test-removed-old-platforms.yml
    - ansible-test-requirements-message.yml
    - ansible-test-sanity-requirements.yml
    - ansible-test-test-plugin-error-message.yml
    - ansible-test-unused-import-collections.yml
    - ansible-test-updated-platforms.yml
    - ansible-test-validate-modules-future-import.yml
    - ansible-test-vendoring-support.yml
    - ansible_eval_concat-remove-redundant-unsafe-wrap.yml
    - ansiblej2vars-chainmap.yml
    - apt-remove_allow-change-held-packages.yml
    - apt_notb.yml
    - apt_repo_fix.yml
    - apt_repo_trust_prefs.yml
    - basic-version-check.yml
    - become-loop-setting.yml
    - better-maybe-json-uri.yml
    - build-no-straight.yaml
    - cache-fa-on-pb-cls.yml
    - deb822-repository.yml
    - deprecate-non-enforced-password_hash-type-choices.yml
    - deprecate-vars-list-of-dicts.yml
    - display-display-str-only.yml
    - dnf5-module.yml
    - dont_move_non_files.yml
    - file_lookup_errors.yml
    - file_lookup_fix.yml
    - fix-manifest.yml
    - fix-templating-private-role-FA.yml
    - fix_jinja_native_async.yml
    - fix_omit_key.yml
    - fork_safe_stdio.yml
    - galaxy-improve-retries.yml
    - galaxy-install-no-colon.yml
    - hashlib-algorithms.yml
    - isa-value-check.yml
    - listalltags.yml
    - local_bad_user.yml
    - mention_acl.yml
    - new-mixins.yml
    - new_editor_pager_opts.yml
    - no-double-loop-delegate-to-calc.yml
    - no-stacked-descriptors.yaml
    - optimize_vars_loads.yml
    - paramiko_config.yml
    - password_lookup_file_fix.yml
    - plugin_loader_fix.yml
    - powershell-7.3-fix.yml
    - prompt-via-worker-queue.yml
    - psscriptanalyzer-1.21.0.yml
    - pycompat24.yml
    - remove-nested-defined-fallback-code.yml
    - role_vars_scope_fix.yml
    - skip-conditional.yml
    - strategy_badid_fix.yml
    - strftime_docs.yml
    - test-container-update.yml
    - unsorted.yml
    - unused-imports-core.yml
    - unused-imports-module-utils-internal.yml
    - unused-imports-module-utils-stdlib.yml
    - unused-imports-modules.yml
    - unused-imports-plugins.yml
    - update-collections-abc-imports.yml
    - use-native-raise-from.yml
    - user-module-return-docs.yml
    - v2.15.0-initial-commit.yaml
    - validate-module-ps-cmdlet.yml
    - validate-modules-forced_action_plugin.yml
    - validate-modules-sidecar.yml
    - win-temp-cleanup.yml
    - winrm-read-timeout.yml
    modules:
    - description: Add and remove deb822 formatted repositories
      name: deb822_repository
      namespace: lib.ansible.modules
    - description: Manages packages with the I(dnf5) package manager
      name: dnf5
      namespace: lib.ansible.modules
    plugins:
      filter:
      - description: gets the common path
        name: commonpath
        namespace: null
      - description: Normalize a pathname
        name: normpath
        namespace: null
    release_date: '2023-04-04'
  2.15.0b2:
    changes:
      bugfixes:
      - AnsibleModule.run_command - Only use selectors when needed, and rely on Python
        stdlib subprocess for the simple task of collecting stdout/stderr when prompt
        matching is not required.
      - ansible-galaxy - reduce API calls to servers by fetching signatures only for
        final candidates.
      - dnf5 - fix module and package names in the message following failed module
        respawn attempt
      - dnf5 - use the logs API to determine transaction problems
      - validate-modules sanity test - replace semantic markup parsing and validating
        code with the code from `antsibull-docs-parser 0.2.0 <https://github.com/ansible-community/antsibull-docs-parser/releases/tag/0.2.0>`__
        (https://github.com/ansible/ansible/pull/80406).
      release_summary: '| Release Date: 2023-04-10

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.15/porting_guides/porting_guide_core_2.15.html>`__

        '
    codename: Ten Years Gone
    fragments:
    - 2.15.0b2_summary.yaml
    - 80334-reduce-ansible-galaxy-api-calls.yml
    - 80406-validate-modules-semantic-markup.yml
    - dnf5-fix-interpreter-fail-msg.yml
    - dnf5-logs-api.yml
    - run-command-selectors-prompt-only.yml
    release_date: '2023-04-10'
  2.15.0b3:
    changes:
      bugfixes:
      - Fix post-validating looped task fields so the strategy uses the correct values
        after task execution.
      - Prevent running same handler multiple times when included via ``include_role``
        (https://github.com/ansible/ansible/issues/73643)
      - ansible-test - Add support for ``argcomplete`` version 3.
      - pep517 build backend - Use the documented ``import_module`` import from ``importlib``.
      - syntax check - Limit ``--syntax-check`` to ``ansible-playbook`` only, as that
        is the only CLI affected by this argument (https://github.com/ansible/ansible/issues/80506)
      release_summary: '| Release Date: 2023-04-17

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.15/porting_guides/porting_guide_core_2.15.html>`__

        '
    codename: Ten Years Gone
    fragments:
    - 2.15.0b3_summary.yaml
    - 73643-handlers-prevent-multiple-runs.yml
    - 80476-fix-loop-task-post-validation.yml
    - 80506-syntax-check-playbook-only.yml
    - ansible-test-argcomplete-3.yml
    - pep517-backend-import-fix.yml
    release_date: '2023-04-17'
  2.15.0rc1:
    changes:
      bugfixes:
      - Display - Defensively configure writing to stdout and stderr with a custom
        encoding error handler that will replace invalid characters while providing
        a deprecation warning that non-utf8 text will result in an error in a future
        version.
      - '``pkg_mgr`` - fix the default dnf version detection'
      - ansible-galaxy - fix installing collections from directories that have a trailing
        path separator (https://github.com/ansible/ansible/issues/77803).
      - ansible-test - Update ``pylint`` to 2.17.2 to resolve several possible false
        positives.
      - ansible-test - Update ``pylint`` to 2.17.3 to resolve several possible false
        positives.
      - ansible-test - When bootstrapping remote FreeBSD instances, use the OS packaged
        ``setuptools`` instead of installing the latest version from PyPI.
      - dnf5 - Use ``transaction.check_gpg_signatures`` API call to check package
        signatures AND possibly to recover from when keys are missing.
      - handlers - fix ``v2_playbook_on_notify`` callback not being called when notifying
        handlers
      - module responses - Ensure that module responses are utf-8 adhereing to JSON
        RFC and expectations of the core code.
      - module/role argument spec - validate the type for options that are None when
        the option is required or has a non-None default (https://github.com/ansible/ansible/issues/79656).
      release_summary: '| Release Date: 2023-04-25

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.15/porting_guides/porting_guide_core_2.15.html>`__

        '
    codename: Ten Years Gone
    fragments:
    - 2.15.0rc1_summary.yaml
    - 79677-fix-argspec-type-check.yml
    - 80258-defensive-display-non-utf8.yml
    - a-g-col-install-directory-with-trailing-sep.yml
    - ansible-test-freebsd-bootstrap-setuptools.yml
    - ansible-test-pylint-update.yml
    - dnf5-gpg-check-api.yml
    - fix-handlers-callback.yml
    - pkg_mgr-default-dnf.yml
    release_date: '2023-04-25'
  2.15.0rc2:
    changes:
      bugfixes:
      - ansible-galaxy - fix installing signed collections (https://github.com/ansible/ansible/issues/80648).
      - ansible-galaxy collection verify - fix verifying signed collections when the
        keyring is not configured.
      minor_changes:
      - The minimum required ``setuptools`` version is now 45.2.0, as it is the oldest
        version to support Python 3.10.
      - Use ``package_data`` instead of ``include_package_data`` for ``setup.cfg``
        to avoid ``setuptools`` warnings.
      release_summary: '| Release Date: 2023-05-01

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.15/porting_guides/porting_guide_core_2.15.html>`__

        '
    codename: Ten Years Gone
    fragments:
    - 2.15.0rc2_summary.yaml
    - 80648-fix-ansible-galaxy-cache-signatures-bug.yml
    - ansible-test-minimum-setuptools.yml
    - fix-setuptools-warnings.yml
    release_date: '2023-05-01'