94 Commits
Author SHA1 Message Date
Matt DavisandGitHub a5b61bc6ee New release v2.20.5 (#86873) 2026-04-21 00:44:49 +00:00
Matt DavisandGitHub 482c94a4f9 Disable ansible-test azure cloud self-test (#86866) (#86869)
* Core CI service principal pool is broken, likely new global policy. This service is not used by core.

(cherry picked from commit 7678502c77)
2026-04-20 23:45:38 +00:00
Matt DavisandGitHub c9e6f5d97e Update Ansible release version to v2.20.5rc1.post0. (#86837) 2026-04-13 20:38:31 +00:00
Matt DavisandGitHub 6e3ad7424f New release v2.20.5rc1 (#86832) 2026-04-13 12:50:55 -07:00
82d13085a2 Fix deepcopy support for imported templates (#86727) (#86829)
(cherry picked from commit 36e9711c26)

Co-authored-by: Matt Clay <matt@mystile.com>
2026-04-13 17:36:53 +00:00
Matt DavisandGitHub 8071388f61 Fix network module failures on tagged RPC responses (#86601) (#86605)
Fix network module failures on tagged RPC responses

* Zap tags in networking JsonRpcServer before pickling responses.
* Verify with unit test - suboptimal, but avoids a fake network connection plugin.

(cherry picked from commit a287389124)
2026-03-12 16:42:04 -05:00
Matt DavisandGitHub bc7b78fa9c Update Ansible release version to v2.20.3.post0. (#86590) 2026-02-24 00:07:23 +00:00
Matt DavisandGitHub 4f1576ae43 New release v2.20.3 (#86585) 2026-02-23 23:08:01 +00:00
Matt DavisandGitHub bacbb0ecde Update Ansible release version to v2.20.3rc1.post0. (#86570) 2026-02-17 20:03:27 +00:00
Matt DavisandGitHub e80674478a New release v2.20.3rc1 (#86566) 2026-02-17 18:29:44 +00:00
Matt DavisandGitHub b62c790fda Update Ansible release version to v2.20.2rc1.post0. (#86454) 2026-01-23 02:20:33 +00:00
Matt DavisandGitHub f6f6afa81e New release v2.20.2rc1 (#86450) 2026-01-23 01:25:01 +00:00
Matt DavisandGitHub bc15b10d18 Update Ansible release version to v2.20.0.post0. (#86131) 2025-11-05 00:21:29 +00:00
Matt DavisandGitHub 85a7a5ae15 New release v2.20.0 (#86126) 2025-11-04 15:27:13 -08:00
Matt DavisandGitHub 00ee6040b6 Update Ansible release version to v2.20.0b1.post0. (#85902) 2025-09-23 18:59:34 +00:00
Matt DavisandGitHub 21de43ab65 New release v2.20.0b1 (#85901) 2025-09-23 18:18:11 +00:00
Matt DavisandGitHub 5125ec797c update 2.20 release codename (#85900) 2025-09-23 17:34:21 +00:00
b1fc98c8ad Include result origin in broken conditional message instead of result (#85695)
Co-authored-by: Matt Clay <matt@mystile.com>
2025-08-18 22:35:39 +00:00
558676fcdc Fix marker handling in templating (#85690)
* allow markers to pass through template lookup
* avoid tripping markers within Jinja generated code

Co-authored-by: Matt Clay <matt@mystile.com>
2025-08-18 13:04:23 -07:00
3518d48146 ensure undefined marker access on Jinja getattr->getitem fallback (#85688)
Co-authored-by: Matt Clay <matt@mystile.com>
2025-08-18 11:42:15 -07:00
Matt DavisandGitHub 0467e1eaa9 add known_issues for Jinja set/with (#85677) 2025-08-15 22:37:40 +00:00
Matt DavisandGitHub 5345ac9911 eliminate None template nodes in _flatten_nodes (#85676)
* defers value or concat choice until Nones are gone
* fixes None -> empty string for TemplateModule cases
* add tests
2025-08-15 15:13:10 -07:00
Matt DavisandGitHub e3c9908679 Backward-compatible None handling in template concat and argspec str (#85652)
* templating coerces None to empty string on multi-node result

* avoid simple cases of embedded `None` in multi-node string concatenated template results ala <=2.18
* single-node template results preserve NoneType

* add None->empty str equivalency to argspec validation

* fix integration tests
* remove conversion error message check from apt_repository test
* remove error message check on `None` value for required str argspec in roles_arg_spec test (now logically-equivalent to empty string)

* explanatory comment for None->empty str coalesce
2025-08-13 22:05:01 +00:00
faf86ca2b3 Add temporary module result serialization hook (#85609)
* Add temporary module result serialization hook

* Sanity test fix

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-08-04 16:43:59 -07:00
2fbd7c114e Rewrite exception key on failed_when: false (#85516)
* Prevents callback handle_exception from displaying the captured exception when the task is not failed.
* Added tests.

Co-authored-by: Matt Clay <matt@mystile.com>
2025-07-22 17:39:54 +00:00
Matt DavisandGitHub 6b347bfbf7 default _ansible_tracebacks_for to [] when not specified (#85427)
* eases module unit tests that aren't using our fixture
2025-07-03 20:21:28 +00:00
Matt DavisandGitHub d6efb7db8a Short-circuit legacy network module prefix->action mapping (#85406)
* Short-circuit legacy network module prefix->action mapping

* Modified a non-short-circuit compound conditional in a legacy networking path that attempted to resolve an action for any module name containing `_`. The bug was always present, but the typical presentation (an ImportError) was ignored prior to 2.19.
* The legacy networking path should be deprecated and removed in 2.20- a module could still be run under the wrong action if one with a matching prefix is found.

* unit test fix
2025-06-30 16:33:28 -07:00
73369f53af Remove redundant vars FA on PlaybookInclude (#85395)
* The redundant FA declaration was not static, which broke a number of automatic validation behaviors.
* Added tests to assert deferred validation and lack of templating on `import_playbook.vars`.

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-26 11:34:29 -07:00
29cdba1fee unified Marker propagation for all Jinja plugin/call ops (#85391)
* Errors raised in most Jinja operations and plugin invocations are now propagated as Markers, allowing template pipeline to continue execution when a Marker-aware consumer is present.
* Added ability to inspect ExceptionMarkers to Protomatter `dump_object` filter.
* Added tests.

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-26 01:17:18 +00:00
649c9ec443 Encryptedstring redact fixes (#85390)
* misc DTFIX/docstring cleanup

* fix EncryptedString redaction, add tests

Co-authored-by: Matt Clay <matt@mystile.com>

* Fix test failures

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-26 00:42:23 +00:00
db819d2514 ensure transform_to_native_types converts keys (#85389)
* added basic key visitor support to variable visitor (off by default)
* transform_to_native_types enables new key visit/conversion
* add test

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-25 19:43:57 +00:00
11f5563895 Jinja sandbox refinement (#85385)
* DTFIX recategorize

* fix ansible-console generated task dict

* use non-deprecated task shape

* switch Jinja from ImmutableSandboxedEnvironment to SandboxedEnvironment

* Restore ability to call collection mutation methods.
* Restore ability to directly call integer bitwise operator methods.
* Adjust tests.

Co-authored-by: Matt Clay <matt@mystile.com>

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-25 03:37:21 +00:00
547c64f326 deprecate esoteric/undocumented playbook syntaxes (#85378)
Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-24 17:00:37 +00:00
1f8937b57e restore playbook import DS rewrite (#85379)
* add tests for FQ "action" aliases
* add validation for multiple directives

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-24 01:36:50 +00:00
3c52b14c9e deprecate invalid variable names in inventory (#85377)
* deprecate invalid variable names in inventory

* was previously a hard error for `Host`
* added missing check to `Group`
* swapped blanket Python keyword prohibition with Jinja singleton and `not` check

Co-authored-by: Matt Clay <matt@mystile.com>

* fix invalid variable name test

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-23 16:55:53 -07:00
dde10a9afb import_playbook validation cleanup (#85358)
* use declarative FA validation
* deleted redundant/broken imperative validation
* added test case to ensure templating

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-19 00:38:23 +00:00
fa9f286096 display wrap/format arg cleanup (#85352)
Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-18 14:50:45 -07:00
46abcfcc82 feature-flag experimental module metadata (#85351)
* added ansible-test integration env/set directive for aliases
* applied to module-serialization-profiles test to enable feature flag

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-17 23:15:55 +00:00
eec57ec396 Misc callback fixes/cleanup (#85344)
* Misc callback fixes/cleanup

* Fix v1 callback method dispatch, fully deprecate v1 methods, add missing tests.
* Clean up callback plugin init/setup code, remove redundancies, improve error messaging.
* Remove unused callback method definitions from base class.

Co-authored-by: Matt Clay <matt@mystile.com>

* switch callback bypass to instance-level from class-level

* preserves any instance-level method magic that implementations were using

* add missing handler dispatch entry

* add tests to ensure all methods are covered

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-16 20:03:06 -07:00
ed90a424a9 fix script failed_when bypass (#85326)
* fix script failed_when bypass

* misuse of AnsibleActionFail for a retryable/alterable error case
* add tests

Co-authored-by: Matt Clay <matt@mystile.com>

* type annotation fixes

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-14 00:36:59 +00:00
Matt DavisandGitHub 1d1bbe3424 Fix post-fork deadlock from early Python writers like pydevd (#85296) 2025-06-11 01:08:48 +00:00
2bed98bd20 fix Marker handling on Jinja macro invocations (#85280)
* always allow Marker args to pass through
* always disable pre-emptive trip-on-retrieval for Macro JinjaCallContext
* add macro-callable template expression result test cases

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-06 13:26:45 -07:00
43c0132caa adjust PluginInfo to use PluginType enum (#85277)
* normalization fixups

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-06 00:50:09 +00:00
Matt DavisandGitHub 9f0a8075e3 Prevent template lookup and action from masking ansible_managed value (#85075)
* deprecate DEFAULT_MANAGED_STR and prevent masking of ansible_managed var

* adjust public API behavior

* restore backward-compatible behavior on existing public API
2025-06-05 17:21:48 -07:00
2b7204527b Restore 2.18 vault tag YAML dump behavior (#85275)
* Doing conditional redaction/formatting needs other bits that aren't ready for 2.19.

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-05 19:21:46 +00:00
6198c7377f Fix incorrect behavior when a Jinja test returns Marker (#85264)
* Avoid Marker trip in plugin wrapper that causes unnecessary early template bailout.
* Remove spurious non-boolean result deprecation warning.
* Add test.

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-04 18:20:24 +00:00
bbbfbd57e2 fix key conversion on legacy JSON profiles (#85253)
* fix key conversion on legacy JSON profiles

* restore stdlib silent str conversion behavior for int/float/bool/None dict key types
* remove most conversions for non-scalar keys
* add key conversion cases to JSON profile test suite

* typo

* Fix sanity test failures

* Fix _handle_key_str_fallback implementation

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-03 15:11:27 -07:00
df0b417f2d Resolve misc DTFIX0/1 (#85247)
* complete DTFIX0 after eval

* sunder-prefix Marker.concrete_subclasses

* re-home Jinja plugin decorators public API

* low-hanging/already fixed DTFIX cases

Co-authored-by: Matt Clay <matt@mystile.com>

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-06-03 01:31:20 +00:00
Matt DavisandGitHub 0ee1c36779 local connection always passes str to Popen (#85239) 2025-05-30 14:39:45 -07:00
2a24633964 Misc ssh agent fixes (#85238)
* Misc ssh-agent fixes

* Replace manual SIGALRM handling with new alarm_timeout context manager
* Misc error handling fixes to ssh-agent startup
* Add SSH_AGENT_EXECUTABLE config to ease failure mode testing
* 100% test coverage on agent startup failure code

Co-authored-by: Matt Clay <matt@mystile.com>

* make SSH Agent support internal

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-30 13:38:59 -07:00
cbcefc53a3 Clean up TE error handling, wrap sigalrm handler (#85232)
* Clean up TE error handling, wrap sigalrm handler

* Preserve error detail on AnsibleAction and Connection exceptions.
* Remove multiple layers of unreachable or redundant error handling.
* Wrap manual alarm signal/timeout handling into a context manager, add tests.

Co-authored-by: Matt Clay <matt@mystile.com>

* update error message check in test

* update test timeout message assertions

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-30 10:45:10 -07:00
91453e30af Added _TEMPLAR_SANDBOX_MODE config (#85222)
* Added _TEMPLAR_SANDBOX_MODE config

* allows unsafe attribute checks to be disabled in Jinja sandbox

* Update lib/ansible/_internal/_templating/_jinja_bits.py

Co-authored-by: Matt Clay <matt@mystile.com>

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-30 01:37:58 +00:00
Matt DavisandGitHub b71d9aa4a5 Decouple SSH client verbosity from Ansible display (#85224)
* decouple SSH client verbosity from Ansible display

* remove failing false-coverage unit test
2025-05-29 09:58:16 -07:00
Matt DavisandGitHub 356bf336bd fix from_yaml_all filter inconsistent None handling (#85223)
* fix from_yaml_all filter inconsistent None handling

* always returns empty list for None or empty string input

* deprecate non-string inputs for from_yaml and from_yaml_all
2025-05-29 09:50:01 -07:00
Matt DavisandGitHub f5a85493c1 recategorize pass over DTFIX-MERGE entries post b4 (#85155) 2025-05-13 23:24:18 +00:00
e5476972da ensure builtin tests always return bool (#85149)
* added unit test validation and coverage enforcement

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-13 02:53:23 +00:00
7be1359841 misc changelog and docstring cleanup (#85148)
* deferred listify_lookup_plugin_terms deprecation

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-13 00:11:04 +00:00
9a426fe303 fix ensure_type to support vaulted values (#85129)
* restored parity with 2.18

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-10 05:05:56 +00:00
fc8a227647 ensure that all config return values are Origin-tagged (#85127)
Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-09 22:10:55 +00:00
9efba4f972 apply trust to declarative plugin config (#85126)
* trust strings in loaded doc fragments
* added tests
* added hard_fail_context test mechanism

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-09 19:33:33 +00:00
d33bedc48f Misc config type coercion fixes (#85119)
* remove dead config comment noise

* update `list` typed config defaults to be lists

* fix tag preservation/propagation in config
* numerous other ensure_type bugfixes
* 100% unit test coverage of ensure_type
* emit warnings on template_default failures
* fix unhandled exception in convert_bool on unhashable inputs

Co-authored-by: Matt Clay <matt@mystile.com>

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-08 13:06:18 -07:00
Matt DavisandGitHub 7e00053a30 add fuzzy matching to package_data sanity (#85103)
* add fuzzy matching to package_data sanity

* relaxes exact directory matches for license files to allow setuptools > 72 to pass

* sanity
2025-05-07 11:00:21 -07:00
ff6998f2b9 Switch to stackwalk caller ID (#85095)
* See changelog fragment for most changes.
* Defer early config warnings until display is functioning, eliminating related fallback display logic.
* Added more type annotations and docstrings.
* ansible-test - pylint sanity for deprecations improved.
* Refactored inline legacy resolutions in PluginLoader.

Co-authored-by: Matt Clay <matt@mystile.com>
2025-05-05 18:00:02 -07:00
03181ac87b Implement TaskResult backward compatibility for callbacks (#85039)
* Implement TaskResult backward compatibility for callbacks
* general API cleanup
* misc deprecations

Co-authored-by: Matt Clay <matt@mystile.com>

* fix v2_on_any deprecation exclusion for base

---------

Co-authored-by: Matt Clay <matt@mystile.com>
2025-04-24 00:59:46 +00:00
Matt DavisandGitHub 2033993d89 restore parsing/utils/jsonify.py (#85032) 2025-04-22 19:31:45 +00:00
Matt DavisandGitHub 1b6b910439 Miscellaneous fixes (#85012)
* Add help_text to play_hosts deprecation

* clean up TaskResult type handling
2025-04-17 15:14:01 -07:00
35750ed321 Templating overhaul, implement Data Tagging (#84621)
Co-authored-by: Matt Davis <mrd@redhat.com>
Co-authored-by: Matt Clay <matt@mystile.com>
2025-04-14 08:54:36 -07:00
5d7b8288f8 Fix local connection and become issues (#84700)
* Fixed various become-related issues in `local` connection plugin.
* Fixed various issues in `sudo` and `su` become plugins.
* Added unit and integration test coverage.

Co-authored-by: Matt Clay <matt@mystile.com>
Co-authored-by: Matt Davis <nitzmahone@redhat.com>
2025-02-13 09:17:57 -08:00
Matt DavisandGitHub a6b5861c53 add lightweight core issue template for bot-ignored issues (#84638) 2025-01-29 18:18:48 -08:00
Matt DavisandGitHub c9ac477e53 Preserve _ansible_no_log from action result; fix include_vars to set properly (#84143)
* fixes for CVE-2024-8775

* propagate truthy `_ansible_no_log` in action result (previously superseded by task-calculated value)
* always mask entire `include_vars` action result if any file loaded had a false `show_content` flag (previously used only the flag value from the last file loaded)

* update no_log tests for CVE-2024-8775
* include validation of _ansible_no_log preservation when set by actions
* replace static values with dynamic for increased robustness to logging/display/callback changes (but still using grep counts :( )

* changelog

* use ternary, coerce to bool explicitly
2024-10-24 22:56:54 +00:00
Matt DavisandGitHub 491a87215a zap changelogs (#83988) 2024-09-23 16:20:13 -07:00
Matt DavisandGitHub 1b8bfd40ab bump devel to 2.19 (#83985) 2024-09-23 15:29:06 -07:00
Matt DavisandGitHub 24e5b0d4fc Add DaemonThreadPoolExecutor impl (#83880)
* Add DaemonThreadPoolExecutor impl
* Provide a simple parallel execution method with the ability to abandon timed-out operations that won't block threadpool/process shutdown, and without a dependency on /dev/shm (as multiprocessing Thread/Process pools have).
* Create module_utils/_internal to ensure that this is clearly not supported for public consumption.
2024-09-03 11:23:38 -07:00
Matt DavisandGitHub c6a391c8d8 fix delegate_to integration test (#83865)
* the test was previously passing erroneously due to the `timeout` elapsing in CI, and that the `failed` test does not encompass `unreachable`
2024-08-26 17:54:08 -07:00
Matt DavisandGitHub a301ae876e try disabling negative values win_reboot test (#83735)
* hoping to improve CI stability
2024-08-06 18:34:57 -07:00
889012e29e clean up ansible-connection (#82992)
* clean up ansible-connection stuff

* eliminate unnecessary usage of pty/termios
* always use default pickle protocol
* remove unnecessary wire hashing

Co-authored-by: Kate Case <this.is@katherineca.se>
2024-05-02 21:37:19 +00:00
Matt DavisandGitHub 4aa109897f default svn URL to 127.0.0.1 for subversion integration tests (#82551)
* default svn URL to 127.0.0.1 for subversion integration tests

* svn client gives up before trying IPv4 addresses when localhost->(::1,127.0.0.1) in dual-stack envs (eg podman, most real hosts)
* svn client also requires legacy CN match on cert
* IPv6 works, but setup playbook would need a bunch more templating exceptions to conditionally manage `[::1]`

* explain IPv4 defaults
2024-01-17 09:49:47 -08:00
Matt DavisandGitHub 3ea5304a57 add pep668 note to pip module docs (#82096) 2023-10-30 23:38:36 +00:00
Matt DavisandGitHub 40263992df remove args passthru on role runme tests that use grep (#82060)
* varying verbosity was masking some first-pass test failures
2023-10-23 17:37:50 +00:00
Matt DavisandGitHub d8484f0af7 Update default test container Python to 3.12 and support for PyLint 3.0.1 (#81953)
* temporary PyLint plugin to mask 3.12 finalizer noise

* ansible-test - Default to Python 3.12 for base/default

* ansible-test - Update pylint requirements

* ansible-test - Remove obsoleted changelog entry

* Add changelog fragment for pylint work-around
2023-10-11 13:04:22 -07:00
Matt DavisandGitHub c1343cc304 switch available_hosts to frozenset from list in ansible-inventory (#81870)
* major speedup large inventories, since it's consulted iteratively
2023-10-03 17:20:14 -04:00
Matt DavisandGitHub dd79c49a4d fix various Jinja plugin caching issues (#79781)
* fix various Jinja plugin caching issues

* consolidate the wrapper plugin cache
* remove redundant cache in J2 filter/test interceptor

* intra-template loader bypass

* fix early exits swallowing some exception detail

* misc comment cleanup
2023-09-05 13:32:36 -07:00
Matt DavisandGitHub 1c765a6afc restore conditional lookup nerfing (#81460)
* a recent optimization lost the unsafe lookup disable behavior when templating conditionals with inline templates that referred to untrusted values
* added regression test to catch this case
2023-08-09 09:25:20 -07:00
Matt DavisandGitHub 6a8c51bb9c fix redis cache setup (#81329)
* use https repo
* increase default download timeout of 10s for slow/lagged connections
2023-07-25 13:09:40 -07:00
Matt DavisandGitHub 9117762358 define code owners to support branch-protection rules on docs (#81041)
* during interim docs/ (and related dirs) split to separate repo, prevent merges that might require a rebase of the target repo
2023-06-12 11:16:40 -07:00
Matt DavisandGitHub 5e131a96c0 bump devel to 2.16.0.dev0 (#80390) 2023-04-03 15:26:32 -07:00
Matt DavisandGitHub e1d298ed61 don't ignore templated _raw_params that k=v parser failed to parse (#79913)
fixes #79862
2023-02-08 17:54:46 -06:00
Matt DavisandGitHub c7c991e79d quiet default ansible-doc integration test output (#79921)
* quiet default ansible-doc integration test output 

* typical non-verbose output was exceeding 27k lines per fun
* disables `set -x` unless `-v` is passed to the script (eg when ansible-test is called with `-v` or `--retry-on-error` adds it on the second try
* added simple progress echoes
* suppress some grep output

* only enable `set -x` for >= `-vvv`

* fix shellcheck default complaint
2023-02-07 16:20:57 +01:00
Matt DavisandGitHub 1424484be0 Prevent stdio deadlock in forked children (#79522)
* background threads writing to stdout/stderr can cause children to deadlock if a thread in the parent holds the internal lock on the BufferedWriter wrapper
* prevent writes to std handles during fork by monkeypatching stdout/stderr during display startup to require a mutex lock with fork(); this ensures no background threads can hold the lock during a fork operation
* add integration test that fails reliably on Linux without this fix
2022-12-05 20:46:15 -08:00
Matt DavisandGitHub 0591efd5e6 remove Templar caching (#78419)
* source of templating bugs (and at least one CVE), only applies to single-var values anyway
2022-08-03 15:26:37 -07:00
Matt DavisandGitHub 1368bfa348 PluginLoader now installs module-to-be-imported in sys.modules before exec (as Python import does). (#78364) 2022-07-27 14:55:50 -07:00
Matt DavisandGitHub 6e78425f8d fix pip module resolution (#78000)
* `importlib.util` appears to be lazily imported and is sometimes unavailable as an attribute of `importlib` without an explicit import
2022-06-08 09:56:17 -07:00
Matt DavisandGitHub 813afcbbb4 swallow all exceptions in type annotation support shim imports (#77860)
* swallow all exceptions in type annotation support shim imports

* add changelog
2022-05-25 14:41:06 -05:00
Matt DavisandGitHub d352f2ec21 core branch descriptions (#76152) 2022-05-05 14:49:12 -04:00