Skip to content

chore(deps): update dev dependencies#38

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/dev-dependencies
Open

chore(deps): update dev dependencies#38
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/dev-dependencies

Conversation

@renovate

@renovate renovate Bot commented Oct 9, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
boto3-stubs ^1.35.57^1.43.51 age confidence
coverage ^7.6.4^7.15.2 age confidence
httpx (changelog) ^0.28.0^0.28.1 age confidence
moto (changelog) ^5.0.20^5.2.2 age confidence
mypy (changelog) ^2.1.0^2.3.0 age confidence
pytest (changelog) ^9.0.2^9.1.1 age confidence
pytest-asyncio (changelog) ^1.3.0^1.4.0 age confidence
pytest-cov (changelog) ^7.0.0^7.1.0 age confidence
pytest-mock (changelog) ^3.14.0^3.15.1 age confidence
pytest-timeout ^2.3.1^2.4.0 age confidence
ruff (source, changelog) 0.11.20.15.22 age confidence

Release Notes

coveragepy/coveragepy (coverage)

v7.15.2

Compare Source

  • Fix: one of the performance improvements in 7.15.1 (pull 2215) dramatically
    increased memory use during reporting for large projects. Now we use a
    different approach that is both faster and slimmer than 7.15.0. Fixes issue 2229_.

.. _issue 2229: #​2229

.. _changes_7-15-1:

v7.15.1

Compare Source

  • Fix: in the HTML report with show_contexts enabled, a context label
    containing </script> (for example a parametrized pytest node id) could
    close the inline <script> element in a file page early, injecting markup.
    Context labels are now fully escaped. Thanks, Rajath Mohare <pull 2224_>_.

  • A number of performance improvements thanks to Paul Kehrer, in pull requests
    2213 <pull 2213_>, 2214 <pull 2214_>, 2215 <pull 2215_>, 2216 <pull 2216_>, 2218 <pull 2218_>, 2220 <pull 2220_>, and 2221 <pull 2221_>_.

.. _pull 2213: #​2213
.. _pull 2214: #​2214
.. _pull 2215: #​2215
.. _pull 2216: #​2216
.. _pull 2218: #​2218
.. _pull 2220: #​2220
.. _pull 2221: #​2221
.. _pull 2224: #​2224

.. _changes_7-15-0:

v7.15.0

Compare Source

  • Since 7.14.0, reporting commands implicitly combine parallel data files. Now
    those commands have a new option --keep-combined to retain the data files
    after combining them instead of the default, which is to delete them.
    Finishes issue 2198_.

  • Fix: the LCOV report would incorrectly count excluded functions as uncovered,
    as described in issue 2205. This is now fixed thanks to Martin Kuntz Jacobsen <pull 2206_>.

  • When running your program, coverage now correctly sets
    yourmodule.__spec__.loader as strongly recommended <--loader--_>,
    avoiding the deprecation warning described in issue 2208
    . Thanks, A5rocks <pull 2209_>_.

  • Fix: with Python 3.10, running with the -I (isolated mode) option didn't
    correctly omit the current directory from the module search path, as
    described in issue 2103. That is now fixed thanks to Ilia Sorokin <pull 2211_>.

.. --loader--: https://docs.python.org/3/reference/datamodel.html#module.__loader_
.. _issue 2103: #​2103
.. _issue 2198: #​2198
.. _issue 2205: #​2205
.. _pull 2206: #​2206
.. _issue 2208: #​2208
.. _pull 2209: #​2209
.. _pull 2211: #​2211

.. _changes_7-14-3:

v7.14.3

Compare Source

  • Fix: the default ... exclusion rule now also matches function bodies
    whose closing return-type bracket is on its own line (for example, after a
    long -> dict[ ... ] annotation that a formatter has split over multiple
    lines). Closes issue 2185, thanks Mengjia Shang <pull 2196_>.

  • Fix: On 3.13t, we incorrectly issued Couldn't import C tracer errors.
    We can't import the C tracer because in 7.14.2 we stopped shipping compiled
    wheels for 3.13t. Thanks, Hugo van Kemenade <pull 2203_>_.

.. _issue 2185: #​2185
.. _pull 2196: #​2196
.. _pull 2203: #​2203

.. _changes_7-14-2:

v7.14.2

Compare Source

  • Fix: some messages were being written to stdout, making coverage json -o - useless for capturing JSON output. Now messages are written to stderr,
    fixing issue 2197_.

  • Fix: CoverageData kept one SQLite connection per thread that recorded
    coverage, but never closed them when those threads terminated. On long runs
    with many short-lived threads this leaked one file descriptor per dead
    thread, eventually failing with OSError: [Errno 24] Too many open files.
    Connections belonging to terminated threads are now closed and dropped.
    Fixes issue 2192_.

  • Fix: when using sys.monitoring, we were assuming we could use the
    COVERAGE_ID tool id. But other tools might also assume they could use
    that id. Pre-allocated ids don't really make sense, so now we search for a
    usable one instead. Fixes issue 2187. Thanks, Matthew Lloyd <pull 2198_>.

  • Following the advice of cibuildwheel <no-13t_>_, we no longer distribute
    wheels for Python 3.13 free-threaded.

.. _issue 2187: #​2187
.. _issue 2192: #​2192
.. _issue 2197: #​2197
.. _pull 2198: #​2198
.. _no-13t: https://py-free-threading.github.io/ci/#building-free-threaded-wheels-with-cibuildwheel

.. _changes_7-14-1:

v7.14.1

Compare Source

  • Fix: the HTML report used typographic niceties to make file paths more
    readable by adding a small amount of space around slashes. Those spaces
    interfered with searching the page for file paths of interest. Now the report
    uses CSS to accomplish the same visual tweak so that searches with slashes
    work correctly. Closes issue 2170_.

  • Add a 3.16 PyPI classifier <hugo-316_>_ since we test on the 3.16 main
    branch.

.. _issue 2170: #​2170
.. _hugo-316: https://mastodon.social/@​hugovk/116588523571204490

.. _changes_7-14-0:

v7.14.0

Compare Source

  • Feature: now when running one of the reporting commands, if there are
    parallel data files that need combining, they will be implicitly combined
    before creating the report. There is no option to avoid the combination; let
    us know if you have a use case that requires it. Thanks, Tim Hatch <pull 2162_>. Closes issue 1781.

  • Fix: the output from combine was too verbose, listing each file
    considered. Now it shows a single line with the counts of files combined,
    files skipped, and files with errors. The -q flag suppresses this line.
    The old detailed lines are available with the new --debug=combine option.

  • Fix: running a Python file through a symlink now sets the sys.path correctly,
    matching regular Python behavior. Fixes issue 2157_.

  • Fix: Collector.flush_data could fail with "RuntimeError: Set changed
    size during iteration" when a tracer in another thread added a line to the
    per-file set that add_lines (or add_arcs) was iterating. The values
    passed to CoverageData are now snapshotted via dict.copy() and
    set.copy(), which are atomic under the GIL. Thanks, Alex Vandiver <pull 2165_>_.

  • Fix: the soft keyword lazy is now bolded in HTML reports.

  • We are no longer testing eventlet support. Eventlet started issuing stern
    deprecation warnings that break our tests. Our support code is still there.

.. _issue 1781: #​1781
.. _issue 2157: #​2157
.. _pull 2162: #​2162
.. _pull 2165: #​2165

.. _changes_7-13-5:

v7.13.5

Compare Source

  • Fix: issue 2138_ describes a memory leak that happened when repeatedly
    using the Coverage API with in-memory data. This is now fixed.

  • Fix: the markdown-formatted coverage report didn't fully escape special
    characters in file paths (issue 2141). This would be very unlikely to
    cause a problem, but now it's done properly, thanks to Ellie Ayla <pull 2142_>
    .

  • Fix: the C extension wouldn't build on VS2019, but now it does (issue 2145_).

.. _issue 2138: #​2138
.. _issue 2141: #​2141
.. _pull 2142: #​2142
.. _issue 2145: #​2145

.. _changes_7-13-4:

v7.13.4

Compare Source

  • Fix: the third-party code fix in 7.13.3 required examining the parent
    directories where coverage was run. In the unusual situation that one of the
    parent directories is unreadable, a PermissionError would occur, as
    described in issue 2129_. This is now fixed.

  • Fix: in test suites that change sys.path, coverage.py could fail with
    "RuntimeError: Set changed size during iteration" as described and fixed in
    pull 2130_. Thanks, Noah Fatsi.

  • We now publish ppc64le wheels, thanks to Pankhudi Jain <pull 2121_>_.

.. _pull 2121: #​2121
.. _issue 2129: #​2129
.. _pull 2130: #​2130

.. _changes_7-13-3:

v7.13.3

Compare Source

  • Fix: in some situations, third-party code was measured when it shouldn't have
    been, slowing down test execution. This happened with layered virtual
    environments such as uv sometimes makes. The problem is fixed, closing issue 2082_. Now any directory on sys.path that is inside a virtualenv is
    considered third-party code.

.. _issue 2082: #​2082

.. _changes_7-13-2:

v7.13.2

Compare Source

  • Fix: when Python is installed via symlinks, for example with Homebrew, the
    standard library files could be incorrectly included in coverage reports.
    This is now fixed, closing issue 2115_.

  • Fix: if a data file is created with no read permissions, the combine step
    would fail completely. Now a warning is issued and the file is skipped.
    Closes issue 2117_.

.. _issue 2115: #​2115
.. _issue 2117: #​2117

.. _changes_7-13-1:

v7.13.1

Compare Source

  • Added: the JSON report now includes a "start_line" key for function and
    class regions, indicating the first line of the region in the source. Closes
    issue 2110_.

  • Added: The debug data command now takes file names as arguments on the
    command line, so you can inspect specific data files without needing to set
    the COVERAGE_FILE environment variable.

  • Fix: the JSON report used to report module docstrings as executed lines,
    which no other report did, as described in issue 2105_. This is now fixed,
    thanks to Jianrong Zhao.

  • Fix: coverage.py uses a more disciplined approach to detecting where
    third-party code is installed, and avoids measuring it. This shouldn't change
    any behavior. If you find that it does, please get in touch.

  • Performance: data files that will be combined now record their hash as part
    of the file name. This lets us skip duplicate data more quickly, speeding the
    combining step.

  • Docs: added a section explaining more about what is considered a missing
    branch and how it is reported: :ref:branch_explain, as requested in issue 1597. Thanks to Ayisha Mohammed <pull 2092_>.

  • Tests: the test suite misunderstood what core was being tested if
    COVERAGE_CORE wasn't set on 3.14+. This is now fixed, closing issue 2109_.

.. _issue 1597: #​1597
.. _pull 2092: #​2092
.. _issue 2105: #​2105
.. _issue 2109: #​2109
.. _issue 2110: #​2110

.. _changes_7-13-0:

v7.13.0

Compare Source

  • Feature: coverage.py now supports :file:.coveragerc.toml configuration
    files. These files use TOML syntax and take priority over
    :file:pyproject.toml but lower priority than :file:.coveragerc files.
    Closes issue 1643_ thanks to Olena Yefymenko <pull 1952_>_.

  • Fix: we now include a permanent .pth file which is installed with the code,
    fixing issue 2084. In 7.12.1b1 this was done incorrectly: it didn't work
    when using the source wheel (py3-none-any). This is now fixed. Thanks,
    Henry Schreiner <pull 2100_>
    .

  • Deprecated: when coverage.py is installed, it creates three command entry
    points: coverage, coverage3, and coverage-3.10 (if installed for
    Python 3.10). The second and third of these are not needed and will
    eventually be removed. They still work for now, but print a message about
    their deprecation.

.. _issue 1643: #​1643
.. _pull 1952: #​1952
.. _pull 2100: #​2100

.. _changes_7-12-1b1:

v7.12.0

Compare Source

  • The HTML report now shows separate coverage totals for statements and
    branches, as well as the usual combined coverage percentage. Thanks to Ryuta
    Otsuka for the discussion <issue 2081_>_ and the implementation <pull 2085_>_.

  • The JSON report now includes separate coverage totals for statements and
    branches, thanks to Ryuta Otsuka <pull 2090_>_.

  • Fix: except* clauses were not handled properly under the "sysmon"
    measurement core, causing KeyError exceptions as described in issue 2086_.
    This is now fixed.

  • Fix: we now defend against aggressive mocking of open() that could cause
    errors inside coverage.py. An example of a failure is in issue 2083_.

  • Fix: in unusual cases where a test suite intentionally exhausts the system's
    file descriptors to test handling errors in open(), coverage.py would
    fail when trying to open source files, as described in issue 2091_. This
    is now fixed.

  • A small tweak to the HTML report: file paths now use thin spaces around
    slashes to make them easier to read.

.. _issue 2081: #​2081
.. _issue 2083: #​2083
.. _pull 2085: #​2085
.. _issue 2086: #​2086
.. _pull 2090: #​2090
.. _issue 2091: #​2091

.. _changes_7-11-3:

v7.11.3

Compare Source

  • Fix: the 7.11.1 changes meant that conflicts between a requested measurement
    core and other settings would raise an error. This was a breaking change from
    previous behavior, as reported in issue 2076_ and issue 2078_.

    The previous behavior has been restored: when the requested core conflicts
    with other settings, another core is used instead, and a warning is issued.

  • For contributors: the repo has moved from Ned's nedbat GitHub account_ to
    the coveragepy GitHub organization_. The default branch has changed from
    master to main.

.. _issue 2076: #​2076
.. _issue 2078: #​2078
.. _nedbat GitHub account: https://github.com/nedbat
.. _coveragepy GitHub organization: https://github.com/coveragepy

.. _changes_7-11-2:

v7.11.2

Compare Source

  • Fix: using the "sysmon" measurement core in 7.11.1, if Python code was
    claimed to come from a non-Python file, a NotPython exception could be
    raised. This could happen for example with Jinja templates compiled to
    Python, as reported in issue 2077_. This is now fixed.

  • Doc: corrected the first entry in the 7.11.1 changelog.

.. _issue 2077: #​2077

.. _changes_7-11-1:

v7.11.1

Compare Source

  • Fix: some chanages to details of how the measurement core is chosen, and how
    conflicting settings are handled. The "sysmon" core cannot be used with some
    conurrency settings, with dynamic context, and in Python 3.12/3.13, with
    branch measurement.

    • If the core is not specified and defaults to "sysmon" (Python 3.14+), but
      other settings conflict with sysmon, then the "ctrace" core will be used
      instead with no warning. For concurrency conflicts, this used to produce an
      error, as described in issue 2064_.

    • If the "sysmon" core is explicitly requested in your configuration, but
      other settings conflict, an error is now raised. This used to produce a
      warning.

  • Fix: some multi-line case clauses or for loops (and probably other
    constructs) could cause incorrect claims of missing branches with the
    sys.monitoring core, as described in issue 2070_. This is now fixed.

  • Fix: when running in pytest under coverage, a breakpoint() would stop in
    the wrong frame, one level down from where it should, as described in issue 1420_. This was due to a coverage change in v6.4.1 that seemed to give a
    slight performance improvement, but I couldn't reproduce the performance
    gain, so it's been reverted, fixing the debugger problem.

  • A new debug option --debug=core shows which core is in use and why.

  • Split sqlite debugging information out of the sys :ref:coverage debug <cmd_debug> and :ref:cmd_run_debug options since it's bulky and not
    very useful.

  • Updated the :ref:howitworks page to better describe the three different
    measurement cores.

.. _issue 1420: #​1420
.. _issue 2064: #​2064
.. _issue 2070: #​2070

.. _changes_7-11-0:

v7.11.0

Compare Source

  • Dropped support for Python 3.9, declared support for Python 3.15 alpha.

.. _changes_7-10-7:

v7.10.7

Compare Source

  • Performance: with branch coverage in large files, generating HTML, JSON, or
    LCOV reports could take far too long due to some quadratic behavior when
    creating the function and class index pages. This is now fixed, closing
    issue 2048_. Thanks to Daniel Diniz for help diagnosing the problem.

  • Most warnings and a few errors now have links to a page in the docs
    explaining the specific message. Closes issue 1921_.

.. _issue 1921: #​1921
.. _issue 2048: #​2048

.. _changes_7-10-6:

getmoto/moto (moto)

v5.2.2

Compare Source

Docker Digest for 5.2.2: sha256:d8ae5edc2bf080e7e4c13f9bd4b29b53ac3b4427e92956318db3dbe23ec43eb7

New Methods:
    * DS:
        * disable_radius()
        * enable_radius()

    * KinesisAnalyticsV2:
        * untag_resource()

    * Logs:
        * start_live_tail()

    * SESv2:
        * update_contact()
        * update_contact_list()

    * SWF:
        * tag_resource()
        * untag_resource()

Miscellaneous:
    * ACM: import_certificate() now accepts certificates without a CN
    * ACM: request_certificate() now preserves the default options when not all are provided
    * CloudFormation: Created Lambda resources now take the `use_docker`-configuration into account
    * CloudFormation: update_stack_instances() now validates that a StackInstance exists
    * Events: create_partner_event_source() now returns the EventSourceArn-attribute
    * Route53: list_resource_record_sets() no longer returns a TTL for aliases
    * S3: completed_multipart_upload() is now compatible with external tools like PyArrow
    * S3: get_object() now supports all Response* headers

v5.2.1

Compare Source

Docker Digest for 5.2.1: sha256:fe6575dcd878842124f05d20e4ffde2d1126e1e38ad03e196353b9e53649bcdf

Miscellaneous:
    * DynamoDB: batch_write_item() now correctly handles PUT requests with Binary (B) attributes (broken in 5.2.0)
    * S3: Uploading files no longer fails with 'Unsupported protocol' (broken in 5.2.0)
    * S3: create_multipart_upload() is now compatible with Java SDK again (broken in 5.2.0)
    * Route53: update_health_check() now correctly updates falsy values (broken in 5.2.0)

v5.2.0

Compare Source

Docker Digest for 5.2.0: sha256:d8d063e3e704d256cbe8165072fa273c17698be91311e49fc602b7716f459bea

General:
    * Drops support for Python 3.9
    * Lambda Containers now configure the AWS_ENDPOINT_URL, automatically intercepting requests to other AWS services

New Services:
    * Bedrock-AgentCore-Control:
        * create_agent_runtime()
        * create_agent_runtime_endpoint()
        * create_gateway()
        * create_gateway_target()
        * create_memory()
        * delete_agent_runtime()
        * delete_agent_runtime_endpoint()
        * delete_gateway()
        * delete_gateway_target()
        * delete_memory()
        * get_agent_runtime()
        * get_agent_runtime_endpoint()
        * get_gateway()
        * get_gateway_target()
        * get_memory()
        * list_agent_runtimes()
        * list_agent_runtime_endpoints()
        * list_agent_runtime_versions()
        * list_gateways()
        * list_gateway_targets()
        * list_memories()
        * list_tags_for_resource()
        * tag_resource()
        * update_agent_runtime()
        * update_agent_runtime_endpoint()
        * update_gateway()
        * update_gateway_target()
        * untag_resource()

    * Bedrock-Runtime:
        * invoke_model()

    * FIS:
        * create_experiment_template()
        * delete_experiment_template()
        * list_tags_for_resource()
        * tag_resource()
        * untag_resource()

New Methods:
    * Athena:
        * get_database()
        * list_databases()

    * DAX:
        * tag_resource()
        * untag_resource()

    * EC2:
        * create_traffic_mirror_filter()
        * create_traffic_mirror_target()
        * describe_traffic_mirror_filter()
        * describe_traffic_mirror_target()

    * Kafka:
        * delete_cluster_policy()
        * get_cluster_policy()
        * put_cluster_policy()

    * Pipes:
        * start_pipe()
        * stop_pipe()

    * StepFunctions:
        * create_state_machine_alias()
        * delete_state_machine_alias()
        * describe_state_machine_alias()
        * list_state_machine_aliases()
        * update_state_machine_alias()

    * SWF:
        * list_tags_for_resource()
        * tag_resource()
        * untag_resource()

    * Transfer:
        * create_connector()
        * delete_connector()
        * describe_connector()
        * list_connectors()
        * update_connector()

    * VPC Lattice:
        * create_listener()
        * create_target_group()
        * create_service_network_resource_association()
        * create_service_network_service_association()
        * get_listener()
        * get_target_group()
        * get_service_network_resource_association()
        * get_service_network_service_association()
        * list_listeners()
        * list_target_groups()
        * list_service_network_resource_associations()
        * list_service_network_service_associations()

Miscellaneous:
    * Autoscaling: delete_auto_scaling_group() now validates that the provided AutoScalingGroup exists
    * DMS: describe_replication_tasks() now behaves correctly without any Filters supplied
    * DynamoDB: ConditionExpressions are now validated for redundant parentheses, improving parity with AWS
    * DynamoDB: describe_export() now returns additional attributes: TableArn, S3Bucket and S3Prefix
    * DynamoDB: update_continuous_backups() now returns additional attributes: RecoveryPeriodInDays
    * DynamoDB: update_item() now correctly handles byte-records when throwing a `ConditionalCheckFailedException`
    * DynamoDB-Streams: get_records() now omits empty OldImage/NewImage records, improving parity with AWS
    * EC2: run_instances() now uses the following LaunchTemplateSpec-parameters: UserData, InstanceType, KeyName, SecurityGroups, SecurityGroupIds
    * ECS: describe_services() now returns the following attributes: rolloutState, rolloutStateReason and failedTasks (defaults to 0, configurable with env var `MOTO_ECS_SERVICE_FAILED_TASKS=1`
    * Events: list_rule_names_by_target() now deduplicates the results
    * KMS: generate_mac() now supports aliases
    * KMS: update_alias() now supports a full ARN as the TargetKeyId
    * Lambda now starts containers using shogo82148's images by default (https://hub.docker.com/r/shogo82148/lambda-python)
    * Logs: get_query_results() now returns the results in the correct order (either ascending or descending)
    * Pipes: The Pipe-class now supports 
    * RAM now accepts service principals and IAM ARNs as resource share principals
    * ResourceGroupsTaggingAPI: get_resources() now supports SWF domains
    * Route53Resolver: list_resolver_query_log_configs() now supports the Id-filter
    * S3 now correctly calculates checksums for individual MultiParts
    * S3 now supports the `use_dualstack_endpoint` and `use_fips_endpoint` configuration options
    * S3: create_bucket() now supports the parameter BucketNamespace="account-regional"
    * S3: complete_multipart_upload() now returns the attributes ChecksumAlgorithm and ChecksumType
    * S3: list_buckets() now supports the parameters BucketRegion, MaxBuckets and Prefix
    * SESv2: create_email_identity() now returns additional attributes: NextSigningKeyLength and SigningAttributesOrigin
    * SES: publish() now supports the `MessageGroupId`-parameter for standard queues, allowing use of SQS fair queues
    * SNS: Creation of FIFO queues with CloudFormation is now supported
    * SQS: receive_message() now supports additional `MessageAttributeNames`-patterns: ".*" and "<prefix>.*"
    * SWF: register_domain() now supports the tags-parameter
    * WAFv2: get_web_acl() now supports the ARN-parameter

v5.1.22

Compare Source

Docker Digest for 5.1.22: sha256:1e3802c95726373544967b428201c548f0247c15b00db2d96a5ba0a77d8643b8

New Methods:
    * APIGateway:
        * delete_model()

    * Athena:
        * tag_resource()
        * untag_resource()

    * Pipes:
        * list_tags_for_resource()

    * OSIS:
        * delete_resource_policy()
        * get_resource_policy()
        * put_resource_policy()

    * RDS:
        * copy_db_cluster_parameter_group()

    * STS:
        * get_access_key_info()

    * Transfer:
        * list_servers()

Miscellaneous:
    * CloudFormation now supports the creation/update/deletion of AWS::CloudWatch::Dashboard resources
    * CloudFormation now supports the creation/update/deletion of AWS::KMS::Alias resources
    * CloudFormation now supports the creation/update/deletion of AWS::SSM::Document resources
    * EC2: create_fleet() now supports the parameters DryRun and LaunchTemplateConfigs.Overrides
    * EC2: describe_network_interfaces() now supports the 'attachment.attachment-id'-filter
    * EC2: Instances created from a LaunchTemplate now have the 'aws:ec2launchtemplate:id' and 'aws:ec2launchtemplate:version' tags
    * RDS: create_db_cluster_parameter_group() now validates the provided group name/description/familiy
    * RDS: delete_db_cluster_parameter_group() now validates that the provided group exists
    * S3: delete_object() now supports IfMatch
    * SecretsManager: create-secret() now throw ResourceExistsException for duplicate requests with different token (broken since 5.1.11)
    * SQS: send_message() now returns the SequenceNumber-attribute
    * VPCLattice: list_access_log_subscriptions() now also supports arns as resourceIdentifiers

v5.1.21

Compare Source

Docker Digest for 5.1.21: sha256:93ad54da7badce7f9c13e5e6439c93564c764663c42872d2c39f718aa484047a

General:
    * Moto now supports the new AWS partition for the EU sovereign cloud ('eusc-de-east-1')

New Services:
    * Account:
        * delete_alternate_contact()
        * get_alternate_contact()
        * put_alternate_contact()

    * Connect:
        * associate_analytics_data_set()
        * create_instance()
        * delete_instance()
        * describe_instance()
        * disassociate_analytics_data_set()
        * list_analytics_data_associations()
        * list_instances()
        * list_tags_for_resource()
        * tag_resource()
        * untag_resource()

New Methods:
    * Backup:
        * create_report_plan()
        * delete_backup_vault()
        * delete_backup_vault_lock_configuration()
        * describe_backup_vault()
        * describe_report_plan()
        * list_report_plans()
        * put_backup_vault_lock_configuration()

    * EKS:
        * update_nodegroup_config()

    * Route53Resolver:
        * get_resolver_query_log_config_association()
        * list_resolver_query_log_configs()
        * list_resolver_query_log_config_associations()

    * SecurityHub:
        * get_master_account()

Miscellaneous:
    * DynamoDB now supports multi-attribute composite key support for GSIs
    * ELBv2: Internal load balancers can now be `dualstack`
    * IAM: Policy validation now correctly validates Boolean conditions and NULL-resources
    * Lambda: put_function_event_invoke_config() no longer requires the DestinationConfig-parameter
    * ResourceGroupsTaggingAPI: tag_resources() and untag_resources() now supports CloudFront resources
    * SageMaker: describe_domain() now returns the DomainSetting-attribute

v5.1.20

Compare Source

Docker Digest for 5.1.20: sha256:d2711655244df58411ce0be34236c95736390db17886370d21e12ae2b1e36f79

New Methods:
    * EC2:
        * create_subnet_cidr_reservation()
        * delete_subnet_cidr_reservation()
        * get_instance_uefi_data() (Just a stub, no actual data is returned)
        * get_subnet_cidr_reservations()

    * IOT:
        * list_thing_principals_v2()

    * ResourceGroups:
        * cancel_tag_sync_task()
        * get_tag_sync_task()
        * list_tag_sync_tasks()
        * start_tag_sync_task()

    * Route53Resolver:
        * get_resolver_dnssec_config()
        * list_resolver_dnssec_configs()
        * update_resolver_dnssec_config()

    * S3Control:
        * create_multi_region_access_point()
        * delete_multi_region_access_point()
        * delete_storage_lens_configuration()
        * describe_multi_region_access_point_operation()
        * get_multi_region_access_point()
        * get_multi_region_access_point_policy()
        * get_multi_region_access_point_policy_status()
        * list_multi_region_access_points()
        * put_multi_region_access_point_policy()

    * SecurityHub:
        * create_members()
        * get_members()
        * list_members()

Miscellaneous:
    * ACM: import_certificate() now supports all key types, RSA and EC
    * APIGateway: update_rest_api() now supports `/endpointConfiguration/types`
    * Autoscaling: update_auto_scaling_group() now supports the MixedInstancesPolicy-parameter
    * Batch: register_job_definition() now supports the eksProperties-parameter
    * DMS: create_replication_task() now supports the Tags-parameter
    * Organizations: list_policies() now support pagination
    * Organizations now supports Resource Control Policy
    * Redshift: describe_clusters() now supports the TagKeys-parameter
    * Logs: put_subscription_filter() now supports other LogGroups

v5.1.19

Compare Source

Docker Digest for 5.1.19: sha256:1bba01d147a15d14a5816b69ee6d346ba04bd43baab4a3a27a55c368ecc2bb90

General:
    * Removed support for ElasticTranscoder, now that AWS has also deprecated this service

New Methods:
    * ACM-PCA:
        * revoke_certificate()

    * DSQL:
        * delete_cluster()
        * get_vpc_endpoint_service_name()
        * list_tags_for_resource()

    * FSX:
        * describe_backups()

    * SESv2:
        * list_tags_for_resource()
        * tag_resource()
        * untag_resource()

    * VPC Lattice:
        * delete_auth_policy()
        * delete_resource_policy()
        * get_auth_policy()
        * get_resource_policy()
        * put_auth_policy()
        * put_resource_policy()

Miscellaneous:
    * DynamoDB: put_item() now correctly validates numeric and boolean values
    * EC2: describe_instances() now returns the correct status for BlockDeviceMappings.Ebs.Status (attached, instead of in-use)
    * EC2: describe_network_acls() now supports the 'association.association-id' Filter
    * ELBv2: modify_load_balancer_attributes() no longer fails when modifying the 'health_check_logs.s3.enabled' attribute
    * ResourceGroupsTaggingAPI: get_resources() now supports the SESv2 resources: ConfigurationSets, ContactLists, DedicatedIpPool, EmailIdentity
    * Route53: change_tags_for_resource() no longer throws an error for removing a non-existing tag
    * S3: list_object_versions() now correctly calculates the IsLatest-attribute
    * Scheduler: list_schedules() and list_schedule_groups() now support pagination
    * SecretsManager: batch_get_secret_value() now returns error handling for unknown secrets
    * SSM: put_parameter() now returns the Tier-attribute

v5.1.18

Compare Source

Docker Digest for 5.1.18: sha256:c99ea4ab0881e1d95af5601c2cd42ef4dac15eefdf6597532c59d9631068818a

General:
    * Introduces two methods for enabling and disabling IAM authentication:
        from moto.core import disable_iam_authentication, enable_iam_authentication
      They behave the same as the `@set_initial_no_auth_action_count`-decorator, but can be used as a fixture/context manager

New Services:
    * Pipes:
        * create_pipe()
        * delete_pipe()
        * describe_pipe()
        * list_pipes()
        * tag_resource()
        * untag_resource()

New Methods:
    * S3Control:
        * list_tags_for_resource()
        * tag_resource()
        * untag_resource()

    * S3Vectors:
        * delete_vector_bucket_policy()
        * delete_vectors()
        * get_vector_bucket_policy()
        * get_vectors()
        * list_vectors()
        * put_vector_bucket_policy()
        * put_vectors()

Miscellaneous:
    * APIGateway: put_rest_api() now correctly creates integrations
    * AutoScaling: create_auto_scaling_group() now correctly calculates the InstancesDistribution for MixedInstancesPolicies
    * ResourceGroupsTaggingAPI: get_resources() now supports filtering by `sqs:queue`
    * SecretsManager: put_secret_value() now adds the AWSCURRENT-label if it's the first version of the Secret being added

v5.1.17

Compare Source

Docker Digest for 5.1.17: sha256:0361ac8f0cc6687dcf3835da1d60e31cf457fb0d49229d56586f2aa5c510f170

General:
    * The MotoServer dashboard (available on http://localhost:5000/moto-api) now has an new and improved look, making it easier to search for and find your resources

New Methods:
    * CloudFront:
        * tag_resource()
        * untag_resource()

    * DMS:
        * create_replication_subnet_group()
        * describe_connection()
        * describe_replication_subnet_group()
        * delete_endpoint()
        * delete_replication_instance()
        * delete_replication_subnet_group()
        * test_endpoint()

    * EC2:
        * describe_reserved_instances_offerings()

    * RDS:
        * add_role_to_db_cluster()
        * add_role_to_db_instance()

    * S3Vectors:
        * create_index()
        * delete_index()
        * get_index()
        * list_indexes()

    * ServiceCatalog:
        * create_product()
        * describe_product()
        * delete_product()

Miscellaneous:
    * ACM-PCA: get_certificate() now returns the CertificateChain-attribute, if appropriate
    * DMS: Manual control of the State Transition is now available for the `dms:connection` and `dms:replicationinstance` models.
    * Organizations: describe_account() now returns the State-attribute.
    * ResourceGroupsTaggingAPI: get_resources() now supports all Comprehend models
    * StepFunctions: create_execution() now takes the execution input into account when checking idempotency.

v5.1.16

Compare Source

Docker Digest for 5.1.16: sha256:f78c8e0370cabe2516395f351fb27e1df1aa6dc2d728d6de16d5dfbc9ccf595d

General:
    * Removed support for the RoboMaker and QLDB, now that AWS has also deprecated these services

New Services:
    * S3Vectors:
        * create_vector_bucket()
        * delete_vector_bucket()
        * get_vector_bucket()
        * list_vector_buckets()

New Methods:
    * Glue:
        * create_security_configuration()
        * delete_security_configuration()
        * get_security_configuration()
        * get_security_configurations()

    * FSx:
        * create_backup()
        * delete_backup()
        * list_tags_for_resource()

    * VPCLattice:
        * get_service()
        * get_service_network()
        * list_services()
        * list_service_networks()
        * list_tags_for_resource()
        * tag_resource()
        * untag_resource()

Miscellaneous:
    * ACM: list_certificates() now supports the 'keyTypes'-filter
    * APIGateway: get_stage() now supports stages that are URL encoded, like '$default'
    * DynamoDB now supports the WarmThroughput parameter on Tables and Indexes
    * DynamoDB: execute_statement() now supports querying indexes (both GSI and LSI)
    * EC2: create_volume() now supports the MultiAttachEnabled-parameter
    * EC2: modify_volume() now supports the parameters Iops, Throughput and MultiAttachEnabled
    * ElastiCache: create_cache_cluster() now validates that the mandatory parameter CacheNodeType is provided
    * ELBv2: describe_listener_certificates() now returns the IsDefault-field
    * Glue: create_connection() now supports the parameters ConnectionProperties, SparkProperties, AthenaProperties and PythonProperties
    * ResourceGroupsTaggingAPI: get_resources() now supports FSx resource types (Backups and FileSystems)
    * ResourceGroupsTaggingAPI: get_resources() now supports VPCLattice resource types (Services and Service Networks)
    * ResourceGroupsTaggingAPI: untag_resources() now supports RDS resource types
    * S3: put_object_tagging() now throws MethodNotAllowed when trying to tag a DeleteMarker
    * SSM: get_parameters_by_path() now validates that the maxResults-parameter is 10 at most

v5.1.15

Compare Source

Docker Digest for 5.1.15: sha256:8860b18917e1ee4d067df19a406ae95dc26037e6965d5b499e1cffd33755b914

General:
    * Python 3.14 is now officially supported

New Methods:
    * IdentityStore:
        * get_user_id()

    * SESv2:
        * delete_email_identity()

    * VPCLattice:
        * create_access_log_subscription()
        * delete_access_log_subscription()
        * get_access_log_subscription()
        * list_access_log_subscriptions()
        * update_access_log_subscription()

Miscellaneous:
    * ACM: request_certificate() now supports the Option-parameter
    * ACM: list_certificates() now supports the Includes-parameter, supporting Exportable Public Certificates
    * APIGatewayV2: get_domain_name() now returns the DomainNameArn-attribute
    * Athena: Executions can now be delayed using state transitions
    * CloudFormation: validate_template() now supports short function refs (!Sub)
    * Config: Now supports "AWS::SNS::Topic"-resources
    * EC2: create_subnet() now supports the Ipv6Native-parameter
    * EC2: create_transit_gateway_vpc_attachment() now validates that the TransitGateway exists
    * EC2: create_transit_gateway_vpc_attachment() now validates that no other attachment to this VPC exists
    * EC2: create_transit_gateway_vpc_attachment() now automatically adds the attachment to the default RouteTable
    * EC2: create_transit_gateway_vpc_attachment() now correctly creates multiple attachments if called twice (for different VPC's)
    * EC2: create_vpn_connection() now validates that only one of [VPNGateway|TransitGateway] is provided
    * EC2: create_vpn_connection() now validates that the provided CustomerGateway and TransitGateway exists
    * EC2: create/modify/describe_vpc_endpoint_service_configuration now supports the SupportedRegions-param
    * EC2: describe_transit_gateway_attachments() now returns the correct RouteTableID
    * EC2: describe_vpc_endpoints() now supports the 'vpc-endpoint-state'-filter
    * Lambda: list_layer_versions() now returns the layers in the correct order - latest version first.
    * ResourceGroupsTaggingAPI: get_resources() now supports SSM Parameters
    * ResourceGroupsTaggingAPI: get_resources() now supports the 'kms:key' type
    * SESv2: send_email() can now use an email registered by `create_email_identity()`, instead of having the SESv1:verify_domain_identity()-method

v5.1.14

Compare Source

Docker Digest for 5.1.14: sha256:800719627036dc38dc699e9f314f624f2c98ac3d8bb754db078cb2698f08ee77

New Services:
    * CloudWatch-Synthetics:
        * create_canary()
        * get_canary()
        * describe_canaries()
        * list_tags_for_resource()

    * MediaPackageV2:
        * create_channel()
        * create_channel_group()
        * delete_channel()
        * delete_channel_group()
        * get_channel()
        * get_channel_group()
        * list_channel_groups()

    * VPCLattice:
        * create_service()
        * create_service_network()
        * create_service_network_vpc_association()
        * create_rule()

New Methods:
    * Kinesis:
        * describe_limits()

    * Macie2:
        * disassociate_member()
        * enable_organization_admin_account()
        * list_organization_admin_accounts()

    * SecurityHub:
        * describe_hub()
        * disable_security_hub()
        * enable_security_hub()

    * ServiceHub-AppRegistry:
        * get_configuration()
        * put_configuration()

Miscellaneous:
    * IOTData: update_thing_shadow() now supports state=None
    * ResourceGroupsTaggingAPI: list_tags_for_resource() now returns ARN's for Athena resources, instead of names
    * ResourceGroupsTaggingAPI: list_tags_for_resource() now supports Kinesis Firehose resources
    * S3: put_object() now stores the correct (actual) content when using the Java SDK, and no longer include the checksum headers in the body
    * Shield: create_protection() now only allows ARN's of Elastic IP Addresses, instead of all EC2 resources

v5.1.13

Compare Source

Docker Digest for 5.1.13: sha256:0503bdc569e122966fc5fceef43d4a9562ed21e4091cf865801dba90cbb62ea5

New Services:
    * Macie2:
        * accept_invitation()
        * create_invitations()
        * decline_invitations()
        * delete_member()
        * disable_macie()
        * enable_macie()
        * get_administrator_account()
        * get_macie_session()
        * list_invitations()
        * list_members()

New Methods:
    * Athena:
        * list_capacity_reservation()
        * update_capacity_reservation()

Miscellaneous:
    * CloudWatch: get_metric_data() now supports the ReturnData-parameter again (broken in 5.1.12)
    * CognitoIDP: admin_respond_to_auth_challenge() now returns the scope=aws.cognito.signin.user.admin in the AccessToken
    * ELB: modify_load_balancer_attributes() now supports the `secondary_ips.auto_assigned.per_subnet` attribute
    * IAM: get_server_certificate() now returns the CertificateChain-parameter
    * S3: put_bucket_lifecycle_configuration() now correctly processes a LifeCycleConfiguration with 0 Rules
    * SNS: publish_batch() now returns the original MessageAttributes provided by the user again (broken in 5.1.12)
python/mypy (mypy)

v2.3.0

Compare Source

v2.2.0

Compare Source

pytest-dev/pytest (pytest)

v9.1.1

Compare Source

pytest 9.1.1 (2026-06-19)

Bug fixes

  • #​14220: Fixed a logic bug in pytest.RaisesGroup which would might cause it to display incorrect "It matches FooError() which was paired with BarError" messages.
  • #​14591: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect @​pytest.mark.parametrize to fail with "duplicate parametrization of '<fixture name>'".
  • #​14606: Fixed list-item typing errors from mypy in @pytest.mark.parametrize <pytest.mark.parametrize ref> argvalues parameter.
  • #​14608: Fixed a regression in pytest 9.1.0 where conftest.py files located in <invocation dir>/test* were no longer loaded as initial conftests when invoked without arguments.
    This could cause certain hooks (like pytest_addoption) in these files to not fire.

v9.1.0

Compare Source

pytest 9.1.0 (2026-06-13)
Removals and backward incompatible breaking changes
  • #​14533: When using --doctest-modules, autouse fixtures with module, package or session scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.

    If this is undesirable, move the fixture definition to a conftest.py file if possible.

    Technical explanation for those interested:
    When using --doctest-modules, pytest possibly collects Python modules twice, once as pytest.Module and once as a DoctestModule (depending on the configuration).
    Due to improvements in pytest's fixture implementation, if e.g. the DoctestModule collects a fixture, it is now visible to it only, and not to the Module.
    This means that both need to register the fixtures independently.

Deprecations (removal in next major release)
  • #​10819: Added a deprecation warning for class-scoped fixtures defined as instance methods (without @classmethod). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use @classmethod decorator instead -- by yastcher.

    See 10819 and 14011.

  • #​12882: Calling `request.getfixturevalue() <pytest.Fi

Note

PR body was truncated to here.

@renovate renovate Bot added the dependencies label Oct 9, 2025
@renovate

renovate Bot commented Oct 9, 2025

Copy link
Copy Markdown
Contributor Author

Branch automerge failure

This PR was configured for branch automerge. However, this is not possible, so it has been raised as a PR instead.


  • Branch has one or more failed status checks

@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 7 times, most recently from 1df8e11 to fa3151b Compare October 16, 2025 22:14
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 5 times, most recently from 74c687e to ed7619b Compare October 24, 2025 04:37
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 7 times, most recently from 04d7d6d to 50f214c Compare October 31, 2025 22:08
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 6 times, most recently from 8d56a5a to 4b48c82 Compare November 10, 2025 01:58
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 3 times, most recently from 7aca035 to bc7c78c Compare November 13, 2025 01:43
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 7 times, most recently from 7285002 to cb1ac42 Compare December 5, 2025 21:27
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 7 times, most recently from 73e73c7 to 415db09 Compare December 15, 2025 10:50
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 5 times, most recently from e0df8e6 to 589ee85 Compare December 20, 2025 01:56
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 6 times, most recently from 80543db to 5d168ce Compare December 29, 2025 22:07
@renovate
renovate Bot force-pushed the renovate/dev-dependencies branch 4 times, most recently from d993a90 to 007ec4f Compare January 5, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants