Skip to content

Update non-major dependencies - #228

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/non-major
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/non-major

Conversation

@renovate

@renovate renovate Bot commented Oct 17, 2026 •

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 ==1.43.114 → ==1.43.120 age confidence
bump-my-version ==1.6.0 → ==1.6.7 age confidence
coverage ==7.16.2 → ==7.17.0 age confidence
pytest (changelog) ==9.1.1 → ==9.2.0 age confidence
pytest-mock (changelog) ==3.16.0 → ==3.17.0 age confidence

Release Notes

boto/boto3 (boto3)

v1.43.120

Compare Source

========

  • api-change:bedrock-agentcore-control: [botocore] Adds the ResetTokenVaultKeyMaterial API, which restores a token vault whose customer managed key was deleted by moving it to an AWS owned key. The reset permanently deletes the stored OAuth 2.0 tokens, users must consent again. Adds on-behalf-of token exchange client authentication override option.
  • api-change:ec2: [botocore] EC2 AMIs can now show vulnerability data and be targeted directly for scanning.
  • api-change:ecs: [botocore] ECS now supports GPU sharing via NVIDIA Multi-Process Service (MPS) on ECS Managed Instances and ECS EC2, allowing multiple ECS tasks to share a single Nvidia GPU for improved utilization.
  • api-change:inspector2: [botocore] Adding support for Machine Image scan
  • api-change:license-manager: [botocore] AWS License Manager now supports delegate grants for read-only visibility into license distributions. CreateGrant accepts a new GrantType (BuyerGrant or DelegateGrant) and a desired status at distribution time.
  • api-change:lightsail: [botocore] Added the attributeUpdates parameter to the Lightsail StartInstance API, which allows customers to update the attributes of a stopped instance when starting it.

v1.43.119

Compare Source

========

  • api-change:appstream: [botocore] Add Windows 11 to PlatformType enum
  • api-change:billing: [botocore] Adds support for managing private pricing contracts and contractual investments including listing and associating contracts, retrieving contractual investments and their summaries, and creating, listing, and canceling contractual investment attestations
  • api-change:connect: [botocore] Amazon Connect now automatically saves agents' in-progress email drafts preserving the message, recipients, and subject during browser or network interruptions so agents can return to the mail and continue instead of starting over.
  • api-change:deadline: [botocore] fix the sdk documenation issue only
  • api-change:ecr: [botocore] Add support for ECR replication backfill
  • api-change:eks: [botocore] This release adds support for EKS management of Gateway API CRDs (Custom Resource Definitions)
  • api-change:ivs: [botocore] The release adds failover slate configurations, which show viewers a slate during temporary broadcaster network disruptions to reduce viewer drop-off and refresh storms.
  • api-change:kms: [botocore] This release adds support for ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism) keys in AWS KMS. ML-KEM, as specified in NIST FIPS 203, is a post-quantum key encapsulation mechanism that can be used to establish a shared secret between two parties.
  • api-change:lightsail: [botocore] This release adds Web Application Firewall (WAF) support for Lightsail distribution.
  • api-change:marketplace-catalog: [botocore] This release adds support for the SubsidiaryAuthorization entity type in the ListEntities operation, including entity-type filters with partial name search, sort options, and a summary returned for each subsidiary authorization.
  • api-change:mediaconnect: [botocore] This release adds support for managing and sharing endpoint across accounts in AWS Elemental MediaConnect. You can now register endpoints to represent external or service-managed sources and destinations, and share them across AWS accounts.
  • api-change:medialive: [botocore] AWS Elemental MediaLive now lets you control whether explicit weighted prediction is applied to H.264 outputs. It also introduces Perceptual Filter, a new noise reduction filter designed to improve video quality by increasing VMAF scores, now with Auto, None, and strength options.
  • api-change:odb: [botocore] Adds support for Exascale storage with Oracle Exadata Database Service on Dedicated Infrastructure
  • api-change:sagemaker: [botocore] Amazon SageMaker HyperPod adds the MultiNodeTrainingValidation deep health check for clusters orchestrated by Amazon EKS. It validates NVIDIA GPU instances by running a short multi-node training workload and flags instances that produce numerical errors or fall behind expected training time.
  • api-change:signin: [botocore] Adds support for the OAuth 2.0 Token Exchange grant (RFC 8693), enabling applications to exchange identity provider issued JSON Web Tokens (JWTs) for short-lived OAuth access tokens to access supported AWS services without managing separate AWS credentials.
  • api-change:sso-admin: [botocore] Added support for the RegionScope parameter on ListInstances, allowing you to list IAM Identity Center instances in the current Region or across all Regions.
  • api-change:taxsettings: [botocore] Add Mexico Additional Info changes

v1.43.118

Compare Source

========

  • api-change:bedrock-agentcore: [botocore] Adds the dimension name to evaluation results and batch evaluation summaries. For multi-dimensional LLM-as-a-Judge evaluators, each result and summary now identifies which dimension it corresponds to.
  • api-change:bedrock-agentcore-control: [botocore] Adds model-based routing and fallback to AgentCore Gateway rules. Rules can match the requested model, route to a specific model, and fall back across inference targets with an optional circuit breaker. Adds multi-dimensional rating scales for AgentCore Evaluations LLM-as-a-Judge evaluators.
  • api-change:connect: [botocore] Adds support for customer queryable replication errors.
  • api-change:continuum: [botocore] Releasing Continuum for Code Vulnerabilities APIs for SDKs
  • api-change:ec2: [botocore] AWS Transit Gateway now provides managed one-to-one NAT directly on its attachments, through integration with Regional Private NAT Gateway. Use ModifyTransitGatewayAttachmentNatConfiguration to enable NAT and configure NAT rules, and GetTransitGatewayAttachmentNatConfiguration to view them.
  • api-change:elementalinference: [botocore] Elemental Inference now supports feed scheduling, letting you apply feed configuration changes at a time you choose instead of building your own automation.
  • api-change:endpoint-rules: [botocore] Update endpoint-rules client to latest version
  • api-change:glue: [botocore] Add support for large worker types in AWS Glue
  • api-change:ivs-realtime: [botocore] Adds RevokeConnectionToken operation for Amazon IVS Real-Time Streaming.
  • api-change:kafkaconnect: [botocore] Amazon MSK Connect now supports pausing and resuming connectors via the asynchronous PauseConnector and ResumeConnector APIs. Paused connectors keep their configuration and committed offsets and resume where they left off. Each call returns an operation ARN to track with DescribeConnectorOperation.
  • api-change:lambda: [botocore] AWS Lambda durable functions now supports payloads up to 1 MB for checkpoints, callback completion, and error details.
  • api-change:networkmanager: [botocore] AWS Cloud WAN now provides managed one-to-one NAT directly on it's core network attachments, through integration with Regional Private NAT Gateway. Use UpdateAttachmentNatConfiguration to enable NAT and configure NAT rules, and ListAttachmentNatConfigurations to view them.
  • api-change:opensearchserverless: [botocore] Adds APIs to create, get, list, and cancel ingestion jobs, and to create, get, list, and delete ingestion streams, for ingesting data from Amazon S3 into OpenSearch Serverless collections.

v1.43.117

Compare Source

========

  • api-change:autoscaling: [botocore] EC2 Auto Scaling now supports account settings, letting you manage account-level configuration for Auto Scaling.
  • api-change:connect: [botocore] Added support for AWS-managed security profiles.
  • api-change:datazone: [botocore] Added custom designations support with new CRUD APIs. The designation field in project membership and policy grant APIs supports a new enum for custom designations. These APIs also support a new field for custom designation id.
  • api-change:devops-agent: [botocore] Adds support for Microsoft Teams as a notification service. Associations can now be created and updated with a Microsoft Teams team and channel configuration using the DevOps Agent API and SDKs.
  • api-change:ec2: [botocore] Adds new response fields to DescribeInstanceStatus and Network Insights analysis results.
  • api-change:finspace: [botocore] The finspace and finspace-data clients have been removed following the deprecation of the service.
  • api-change:healthlake: [botocore] Update the UpdateProfileWithAgent API to return a streaming response to provide more frequent updates on what the agent is doing.
  • api-change:lexv2-models: [botocore] Adds support for Assisted NLU - Dialog Manager mode allowing usage of LLMs as the default NLU system and dialog management
  • api-change:lightsail: [botocore] This release adds support for metrics related to system-disk performance.
  • api-change:mediaconvert: [botocore] Adds AV1 CBR rate control and scene change detection. New sliding window peak bitrate setting for all codecs. DASH adaptation set grouping update. Option to disable the AV1 perceptual quality filter. Support for vertical (portrait) AV1 encoding.
  • api-change:network-firewall: [botocore] Adds support for Network Firewall Resolved IP validation.
  • api-change:polly: [botocore] Added support for the new voices - Kenneth (en-US), Nate (en-US), Tina (de-DE), Carlos (es-US), Carolina (pt-BR), Leo (pt-BR), Curtis (en-AU), Kiara (en-IN), Arjun (en-IN) and Hyunduk (ko-KR). They are available as a Generative voices only.
  • api-change:quicksight: [botocore] Adds support for SharePoint and OneDrive two-legged OAuth certificate credentials and Google Workspace service account credentials when creating data sources
  • api-change:redshift-data: [botocore] Add Redshift QueryUUID field to DescribeStatement response
  • api-change:stepfunctions: [botocore] Release minor updates to API model
  • api-change:tnb: [botocore] The tnb client has been removed following the deprecation of the service.
  • bugfix:TLS: [botocore] Removes the AAA Certificate Services root from botocore's vendored CA bundle in response to the eMudhra/emSign CA incident. Sectigo used this root to cross-sign eMudhra intermediate CAs whose private keys were compromised. The vendored bundle is only used when certifi isn't installed; certifi users should upgrade to certifi>=2026.10.19. See #&#8203;3838 <https://github.com/boto/botocore/pull/3838>__.

v1.43.116

Compare Source

========

  • api-change:bedrock: [botocore] Amazon Bedrock Guardrails now supports a configurable tier for the contextual grounding policy via a new tier option. Select the Standard tier for grounding that better supports conversations and reasoning, with expanded language coverage.
  • api-change:cleanrooms: [botocore] This release allows customers and their partners to easily collaborate with data stored in Databricks, without having to move or share their underlying data among collaborators.
  • api-change:cloudwatch: [botocore] Amazon CloudWatch now supports two new anomaly detector settings. AdaptationSpeed (FAST, NORMAL, SLOW) controls how fast the model adapts to baseline changes, and OutlierFilteringStrength (MINIMAL, MODERATE, STRICT) controls how aggressively outliers are filtered.
  • api-change:cloudwatchomni: [botocore] Updating max value for maxResults in SearchPrincipals API
  • api-change:dynamodb: [botocore] Adds support for disassociating a replica from an Amazon DynamoDB multi-Region eventual consistency global table, so you can keep it as a single-Region table with its existing data. Also adds disassociation protection, on by default, to help prevent accidental disassociation.
  • api-change:ecs: [botocore] ECS Service Gateway makes it easier for developers to deploy ECS services without having to worry about complex ingress networking constructs.
  • api-change:elasticache: [botocore] LiveMigration enables customers to migrate from self-hosted EC2 Redis and Valkey clusters to ElastiCache Serverless with near-zero downtime. Customers control the migration through three API-driven phases (prepare, start, complete) that handle traffic proxying, data replication, and cutover.
  • api-change:marketplace-catalog: [botocore] Adds ListEntities filter, sort, and summary support for the ExpressPrivateOfferConfiguration entity type, including filtering by ProductId.
  • api-change:rds: [botocore] Amazon RDS now supports On-Demand Capacity Reservations for DB instances.
  • api-change:s3files: [botocore] S3 Files adds support for the "Misconfigured" file system status.
  • api-change:workspaces-instances: [botocore] Documentation update release for AWS service

v1.43.115

Compare Source

========

  • api-change:amplify: [botocore] Documentation update release for AWS service
  • api-change:bedrock-agent: [botocore] Adds Retrieval Instructions for Amazon Bedrock Knowledge Bases. Create, get, update, delete, list, and version customer-authored instructions that guide how a knowledge base retrieves and answers, with content review before use.
  • api-change:bedrock-agentcore: [botocore] Adds the Builtin.FailureAnalysis evaluator for batch evaluations. GetBatchEvaluation now returns insightResults that group session failures into insights with root causes and suggested fixes.
  • api-change:bedrock-agent-runtime: [botocore] Adds support for applying a Retrieval Instruction, optionally by version, to AgenticRetrieveStream requests for Amazon Bedrock Knowledge Bases, and reports the applied instruction and version on the trace.
  • api-change:cloudwatch: [botocore] This release adds ActionConfiguration to PutMetricAlarm, PutCompositeAlarm and PutLogAlarm. It allows customers to include an alarm's tags in its notifications and alarm state change events
  • api-change:codecommit: [botocore] Documentation update release for AWS service
  • api-change:codeconnections: [botocore] Documentation update release for AWS service
  • api-change:codedeploy: [botocore] Adds support for suspending Amazon EC2 Auto Scaling processes during CodeDeploy EC2 in-place deployments. Use ec2DeploymentOptions to choose which processes are suspended and resumed.
  • api-change:codepipeline: [botocore] Documentation update release for AWS service
  • api-change:codestar-notifications: [botocore] Documentation update release for AWS service
  • api-change:connect: [botocore] Amazon Connect GetAttachedFile API now supports an optional UrlContentDisposition parameter. Set it to INLINE to get a pre-signed URL that displays the file in the browser, so agents can preview email attachments without downloading them. ATTACHMENT (download) remains the default.
  • api-change:controltower: [botocore] Documentation update release for AWS service
  • api-change:databrew: [botocore] Documentation update release for AWS service
  • api-change:datazone: [botocore] Adds SDK and CLI support for the Iceberg REST catalog connection types already available in Amazon SageMaker Unified Studio - ICEBERGRESTCATALOG, SNOWFLAKEICEBERGRESTCATALOG, and DATABRICKSICEBERGRESTCATALOG.
  • api-change:devops-agent: [botocore] Documentation update release for AWS service
  • api-change:drs: [botocore] Documentation update release for AWS service
  • api-change:dynamodb: [botocore] Enable account endpoint generation for existing CN and GovCloud regions
  • api-change:ecs: [botocore] Adds support for configurable envoy application log levels. Customers can now debug network connectivity issues with their task's sidecar envoys.
  • api-change:emr-containers: [botocore] Documentation update release for AWS service
  • api-change:endpoint-rules: [botocore] Update endpoint-rules client to latest version
  • api-change:grafana: [botocore] Documentation update release for AWS service
  • api-change:guardduty: [botocore] Adding a new Expected Bucket Owner optional field for GuardDuty publishing destination APIs
  • api-change:iotwireless: [botocore] Documentation update release for AWS service
  • api-change:logs: [botocore] Amazon CloudWatch Logs now supports filtering DescribeDeliverySources by resourceArns, DescribeDeliveryDestinations by names, and DescribeDeliveries by deliverySourceNames.
  • api-change:observabilityadmin: [botocore] Adding support for EKS Container Insights Telemetry Rules
  • api-change:opensearch: [botocore] Amazon OpenSearch Service adds a new TLS security policy to support FIPS policy and post-quantum cryptography
  • api-change:socialmessaging: [botocore] Adding support for WhatsApp Direct Send.
  • api-change:timestream-influxdb: [botocore] Adds four new parameters to the InfluxDBv3Enterprise parameter group for Amazon Timestream for InfluxDB. The new parameters are upgradePachaTree, walBufferSize, snapshotSize, and snapshotDuration.
  • api-change:workspaces: [botocore] Adds optional imageValidationMode enum to ImportCustomWorkspaceImageRequest. This allows customers to opt-in to having prevalidation run in the service account instead of customer account.
  • api-change:workspaces-instances: [botocore] ModifyVolume is a new public API for WorkSpaces Core Managed Instances. Customers can change the size, type, IOPS, or throughput of an existing managed volume online, with no stop required. Customers track progress by calling EC2 DescribeVolumesModifications directly.
  • api-change:xray: [botocore] Adds support for encrypting the Transaction Search spans log group with a customer managed AWS KMS key. Pass the key ARN in the new CloudWatchLogsConfiguration.SpansLogGroupKmsKeyId field of UpdateTraceSegmentDestination. X-Ray applies the key when it creates the log group.
  • bugfix:HTTP: [botocore] Fixes a regression with urllib3 v2 where truncated response bodies read in chunks raised ResponseStreamingError before botocore could validate Content-Length. These reads now raise IncompleteReadError again.
  • bugfix:credentials: [botocore] Fixes #&#8203;3827 <https://github.com/boto/botocore/issues/3827>__, a race condition where concurrent calls to get_frozen_credentials() could return expired credentials while a refresh was in progress.
  • enhancement:SigV4: [botocore] Add W3C traceparent, tracestate and baggage headers to the list of headers excluded from SigV4 signing.
callowayproject/bump-my-version (bump-my-version)

v1.6.7

Compare Source

Compare the full difference.

New
  • Add docstrings to pyproject discovery tests. 39b2f2c
Other
  • Document pyproject.toml discovery by parsing and PEP 621 fallback (#​363). 1db7c46

  • Discover pyproject.toml by parsing; fall back to PEP 621 project.version (#​363). 168a7d9

v1.6.6

Compare Source

Compare the full difference.

New
  • Add docstrings to pyproject discovery tests. 39b2f2c
Other
  • Document pyproject.toml discovery by parsing and PEP 621 fallback (#​363). 1db7c46

  • Discover pyproject.toml by parsing; fall back to PEP 621 project.version (#​363). 168a7d9

v1.6.5

Compare Source

Compare the full difference.

Fixes
  • Refactor: clean up line formatting and improve spelling. 07ada6f

  • Fix a failing bump leaving some files already changed. a8a9403

    All the file changes are made in memory first and written only when every file could be changed;
    several changes to one file still chain. Part of #​381.

    co-authored-by: Claude Opus 5.5 noreply@anthropic.com

Other
  • Test the restore-failure, no-new-version and on-disk search paths. ea9a033

    Covers the lines Codecov reported as missing in files.py for #​454.

  • Restore files when a write fails in modify_files. 1b69816

    Follow-ups to #​432 (part of #​381): drop the stale coverage pragma on
    make_file_change and document it, replace the tuple dict in modify_files
    with two dicts, restore already-written files when a later write raises
    OSError, and add tests for ignored files, write failure, make_file_change
    writes and do_bump leaving config untouched.

v1.6.4

Compare Source

Compare the full difference.

Fixes
  • Fix: don't enable pip caching in the GitHub Action. 3245d15

    setup-python's pip cache looks for requirements.txt or pyproject.toml in
    the caller's checkout and fails when neither exists. The action installs
    bump-my-version from PyPI and doesn't need the cache.

    Fixes #​320

Other
  • docs: add Python testing guidelines and examples. 5ad4106

    • Introduce comprehensive testing documentation for Python using pytest.
    • Include docs on fixtures, parametrized tests, mocking, temporary files, async testing, and exception handling.
    • Provide TDD best practices and docstring conventions.
    • Add examples and patterns for common use cases to improve test coverage and maintainability.
    • Establish docs/agents/python/ for future Python-related references.

v1.6.3

Compare Source

Compare the full difference.

Fixes
  • Fix: raise FileNotFoundError when a glob matches no files. a83d288

    A glob file entry that matched nothing (or whose matches were all
    removed by glob_exclude) was silently skipped, while a missing
    filename raised FileNotFoundError. Glob entries now follow the same
    rule: raise unless ignore_missing_file (or the global

Other

v1.6.2

Compare Source

Compare the full difference.

Fixes
  • Fix: close review gaps in config discovery and file resolution. aff2341

    • recognise POSIX and Windows absolute paths on every platform
    • raise ConfigurationError for non-mapping 'files' entries
    • resolve each filemap key once in files_to_modify
    • use find_repo_root for scm repository_root (git and hg)
    • strengthen symlink tests, add symlinked config case
    • narrow broad pytest.raises(Exception) to ValidationError
  • Fix: don't re-add CLI files already configured; limit '!' handling to glob_exclude. ce16247

  • Fix: compare CLI and configured file paths as resolved paths. f36ef5d

    Also handle '!' glob_exclude negation when rebasing paths, ignore non-mapping
    files entries, simplify config-dir walk, and document discovery and path rules.

Other
  • Test: add docstrings to discovery and resolution tests. 5001ca1

  • Test: use posix paths for resolved filenames and skip '|' path test on Windows. b1a2d20

  • Test: compare resolved filename as Path for Windows separators. ad7b894

  • Test: expect single entry for symlinked cwd. 2635f8e

  • Feat: resolve config through repo parents and anchor file paths to config dir. 276dfc4

    Search parent directories up to the git/hg repo root for a config file (#​8).
    Resolve relative filename/glob from the config file's directory and add a
    {repo_root} placeholder (#​9).

    Closes #​8, closes #​9

v1.6.1

Compare Source

Compare the full difference.

Fixes
  • Fix the BVHOOK_NEW_TAG environment variable in hook environments. 8f0d03e
Other
  • Ci: exclude uv.lock from Codacy analysis. b2732f4

  • Chore(deps): update uv.lock for Python 3.10+ compatibility and dependency upgrades. 37225f8

  • Ci: drop Python 3.9 and add Python 3.15 to test matrix. 8d46056

  • Ci: add Codacy exclusions and ignore local .codacy directory. 1217a32

  • Ci: make release work for fork PRs and skip fork-incompatible previews. 364b98c

    Trigger the release workflow on push to master so merged fork PRs get a
    version bump with full permissions. Skip the version-hint and docs-preview
    workflows for fork PRs, which only get a read-only token and no secrets.

  • Bump actions/upload-artifact to v7 and actions/setup-python to v7. ba36db7

  • Bump python from 3.14-slim-bookworm to 3.15-slim-bookworm. cfed8a8

    Bumps python from 3.14-slim-bookworm to 3.15-slim-bookworm.


    updated-dependencies: - dependency-name: python
    dependency-version: 3.15-slim-bookworm
    dependency-type: direct:production

    signed-off-by: dependabot[bot] support@github.com

  • [pre-commit.ci] pre-commit autoupdate. 0640b3e

    updates: - github.com/astral-sh/ruff-pre-commit: v0.16.10 → v0.17.0

  • Bump build-and-inspect-python-package action to version 3.0.1. 8b42383

coveragepy/coveragepy (coverage)

v7.17.0

Compare Source

  • Dropped support for Python 3.10.

  • Binary wheels are now provided for iOS and Android. This allows the use of
    the optimized C tracer on mobile platforms.

  • Fix: three or more levels of nested with statements could make a with
    line look like a branch with an exit that can never happen. Using the
    sys.monitoring core, these phantom branches were reported as partial. Other
    cores hid the problem but still counted the phantom branches in the total.
    Closes issue 1987_.

  • Fix: a comment or string that merely mentioned if True: or
    while True: could mark its line as a branch that is known to be partial,
    so a branch that never ran was reported as taken. These built-in patterns
    now only match at the start of the statement. Closes issue 2314_.

  • Fix: region detection missed functions defined in unusual places, such as
    else and except clauses. This is now fixed.

  • Fix: recent versions of the lcov tool complain if the same function name
    appears more than once in a report. Python can have multiple same-named
    functions in a few ways, for example, getters/setters or conditionally
    defined functions. These are now disambiguated by adding a @<line number>
    suffix to the function name. Fixes issue 2335.

  • Fix: The "Can't combine statement coverage data with branch data" error now
    names the two data files it couldn't combine. The :ref:error description <error_cant_combine> in the docs now lists common causes and how to find the
    process that wrote the file.

  • Fix: at coverage totals close to 0 or 100, the XML report could get incorrect
    line-rate values like 8.333e-05 or 1. This is now fixed, closing
    issue 2293_ and issue 2294_.

  • Fix: a parallel data file saved more than once kept the hash of its first
    save in its file name. Combining could then skip it as a duplicate of another
    file that had the same data at that point, and delete it, losing the data
    recorded after the first save. Each save now updates the hash. This had been
    a problem since 7.13.1. Fixes issue 2338_.

  • Fixes for obscure but legal file names:

    • File names (and plugin names) can contain control characters, which are
      legal in POSIX paths but unsafe in reports: in XML 1.0 they make the
      document non-well-formed, and in a terminal they act as escape sequences
      (colors, title/clipboard sequences, cursor moves that forge output). Now
      the XML report, the text and Markdown summary reports, and coverage debug data replace non-printable characters in names. Printable names are
      unchanged.

    • A file pattern (from include, omit, or a [paths] alias)
      containing a newline sent the glob-to-regex translation into an infinite
      loop, hanging the process. Newlines in patterns are now handled like any
      other character.

  • Fixes in the implementation of the C tracer:

    • If a plugin's dynamic_source_filename method raised an exception, lines
      in that function could be recorded as belonging to a different file. Also
      fixed some minor memory leaks in the C tracer.

    • The refcount of None was mismanaged during function calls, including
      comprehensions. This was unlikely to cause an actual problem, but is now
      fixed. Thanks, Andrew Dalke.

    • The C tracer held borrowed references to dictionary values, which was
      unsafe on free-threaded Python. Now it takes its own references.

    • An internal error while recording a new file could be reported as a
      confusing SystemError instead of the actual exception.

  • Performance: the text summary report (coverage report) held on to every
    file's parsed source until it finished, so its memory use grew with the size
    of the project: ten times or more what 7.14 used on large projects. Now it
    keeps only what it needs to print. Fixes issue 2277_.

  • Performance: HTML reports should be about 5% faster to produce.

  • Kept the political banner in the README. Closes issue 2344_.

.. _issue 1987: #​1987
.. _issue 2277: #​2277
.. _issue 2293: #​2293
.. _issue 2294: #​2294
.. _issue 2314: #​2314
.. _issue 2335: #​2335
.. _issue 2338: #​2338
.. _issue 2344: #​2344

.. _changes_7-16-2:

pytest-dev/pytest (pytest)

v9.2.0

Compare Source

pytest 9.2.0 (2026-10-27)
Removals and backward incompatible breaking changes
  • #​14716: -c now raises a usage error for a path that does not exist, is a directory, or is in a format pytest has no loader for. Such paths were previously either ignored or reported as an unhandled FileNotFoundError.

  • #​8593: The indirect, ids and scope arguments of Metafunc.parametrize() <pytest.Metafunc.parametrize> -- and therefore of @pytest.mark.parametrize <pytest.mark.parametrize ref> -- are now keyword-only.

    Passing them positionally was a common source of confusing errors, e.g. parametrize("arg1", "arg2", [(1, 2)]) made the argvalues land in indirect and failed with indirect fixture '(1, 2)' doesn't exist; such mistakes now fail with an understandable TypeError. The type annotations have always declared these arguments as keyword-only.

  • #​993: Plugin import failures at startup are now reported and classified instead of escaping as a raw traceback with the accidental exit code 1:

    • a plugin that cannot be found -- via -p, pytest_plugins or PYTEST_PLUGINS -- exits with pytest.ExitCode USAGE_ERROR (4), like a conftest.py that fails to import;
    • a plugin that is found but raises while importing -- including a broken pytest11 entry point or a missing plugin dependency -- exits with pytest.ExitCode INTERNAL_ERROR (3), with the traceback preserved.

    pytest.main now returns these codes instead of raising ImportError. Also fixed an IndexError from pytest's own internals when the plugin raised an exception with no arguments.

Deprecations (removal in next major release)
  • #​14742: The private _pytest.python.CallSpec2 name has been renamed to CallSpec.
    The old CallSpec2 alias remains available for now and will be removed in pytest 10 or 11.

  • #​14755: Schedule yield_fixture decorator for removal in pytest 10 or 11.

  • #​14774: Similarly to the deprecation of class-scoped fixtures defined as instance methods in pytest 9.1,
    all higher-scoped fixtures (module, package, and session) defined
    as instance methods are now deprecated.

    They suffer from the same issue the original deprecation only fixed for
    class-scoped fixtures, see 10819 and 14011.

  • #​14808: Passing a non-string value to a string-typed ini option now emits a pytest.PytestRemovedIn10Warning. This affects [tool.pytest.ini_options] in pyproject.toml. In pytest 10 this will raise a TypeError, matching the behavior of the corresponding TOML config path.

  • #​7323: Passing bytes to TerminalReporter.write_line() is now deprecated, pass a str instead.

New features
  • #​14743: Full diff: now contains a legend explaining the + & - symbols in diff output.
  • #​2781: When strict_markers is enabled, marker names used in -m expressions are now validated against registered markers.
  • #​6881: Added the parametrize_long_str_id_strategy configuration option to control how long str/bytes parameter values are handled in auto-generated test IDs. Explicit IDs set via ids=[...] or pytest.param(..., id=...) are not affected. Available strategies: short (default, values over 100 chars fall back to argname+index), sha256 (SHA-256 hex digest), legacy (keep full value), and disallow (error requesting explicit IDs).
Improvements in existing functionality
  • #​10745: A RecursionError whose recursion origin cannot be located now shows only the
    first and last 10 stack frames, matching what pytest already did when locating
    the origin failed outright. Previously the full traceback -- often around a
    thousand near-identical frames -- was rendered, which was both slow and
    unreadable. Pass --full-trace to see every frame.

  • #​10745: The line numbers of a module's statements are now computed once per traceback
    instead of once per traceback entry, which noticeably speeds up rendering
    failures raised from large test modules.

  • #​11418: The cached rewritten modules in __pycache__ are now invalidated by a hash of
    the source instead of its modification time, using the checked-hash pyc format
    from 552.

    Timestamps make the cache useless wherever source files get fresh modification
    times, most notably in CI: a checkout gives every file a new mtime, so a
    restored cache is discarded in full and every test module is rewritten again.
    Hashing the source costs roughly 15 microseconds per file and makes the cache
    survive that.

    Existing timestamp based caches are ignored and rewritten once.

  • #​12624: The pytest_plugins variable and the PYTEST_PLUGINS environment variable now also accept entry point names of installed plugins (e.g. xdist), in addition to importable module names, matching the behavior of the -p command-line option.

    As part of this change, plugins specified by entry point name through these mechanisms are now also listed in the plugins: line of the terminal header (12615).

    Based on the original implementation by Marcel Telka in 12616.

  • #​12697: Warnings emitted while importing plugins through -p, PYTEST_PLUGINS, or entry point autoloading are now captured, filtered, and reported like other warnings.

  • #​12860: Assertion diffs for dict.items() and dict.keys() comparisons (>=, <=, >, <, ==) now show which items are missing, the same way set comparisons do.

  • #​13354: Node.get_closest_marker <_pytest.nodes.Node.get_closest_marker> now also accepts a ~pytest.MarkDecorator as its default, for example item.get_closest_marker("foo", pytest.mark.foo(1)), and returns the wrapped ~pytest.Mark.

    Previously the only way to build a default was to instantiate ~pytest.Mark directly, which is private and warns.

  • #​13369: Improved the error from pytest.RunResult.assert_outcomes when a plugin changes or removes pytest's standard terminal summary, and documented how to isolate output-changing plugins.

  • #​13431: Exposed pytest.ParameterSet as the type of the return value of pytest.param().
    This can be used in type annotations and isinstance checks.

  • #​13564: Issue a warning when fixtures are wrapped with a decorator that prevents
    correct discovery, including @classmethod above @pytest.fixture and
    @staticmethod above @pytest.fixture. Put @pytest.fixture above
    those decorators on test classes.

  • #​14164: Exposed pytest.Approx as the type of the return value of pytest.approx().
    This can be used in type annotations and isinstance checks.

  • #​14463: Assertion diffs for mappings now match up keys the way the compared mappings match them themselves.

    Key comparison goes through the mappings' key views instead of plain sets of their keys, so a mapping
    with its own notion of key equivalence, such as case-insensitive header mappings, no longer
    reports its common keys as missing on either side.

  • #​14523: Large assertion comparison diffs are now built lazily and capped to the
    truncation budget, so a huge diff is no longer formatted in full just to
    be truncated. As a consequence, the truncation footer no longer
    reports the exact number of hidden lines.

  • #​14687: The default fd-level output capturing (--capture=fd) now skips reading the capture buffer for tests which produce no output, reducing per-test overhead in large test suites.

  • #​14724: --no-summary now only applies directly to pytest's own summary.

    The flag no longer skips the pytest_terminal_summary hook, so third-party
    plugins (for example coverage) can still write their terminal summaries.

  • #​14751: parser.addini <pytest.Parser.addini> now also accepts type expressions for its type argument, in addition to the existing string tags: the plain Python types str, bool, int, float, a Literal of strings, and unions of these (for example int | str or int | Literal["auto"]).

  • #​14754: pytest.approx() now rejects infinite relative tolerances for datetime.timedelta values with a clear ValueError instead of raising OverflowError.

  • #​14791: The junit_family, junit_logging, junit_duration_report, console_output_style, empty_parameter_set_mark, assertion_text_diff_style and tmp_path_retention_policy configuration options are now registered with the set of values they accept: an invalid value now fails with a clean usage error instead of being silently ignored or crashing later, and pytest --help lists the accepted values.

    config.getini <pytest.Config.getini> now raises pytest.UsageError instead of TypeError or ValueError when the value read from the configuration file does not match the registered type, so a bad value is always reported as a short usage error message instead of an internal error traceback. Asking for an option name that was never registered still raises ValueError.

  • #​15006: pytest.approx now emits pytest.PytestApproxDecimalToleranceWarning when a rel or abs tolerance is given as a float that cannot be represented exactly for a ~decimal.Decimal comparison, since such a tolerance is widened to the float's exact binary value.

  • #​14675, #​14953, #​15153, #​15132: The truncation_limit_lines, truncation_limit_chars, max_warnings, verbosity_assertions, verbosity_test_cases, verbosity_subtests, tmp_path_retention_count, log_level, log_cli_level, log_file_level,log_auto_indent and faulthandler_timeout configuration options now accept native integer (and, for log_auto_indent, boolean) values in TOML configuration files, while still accepting strings for backward compatibility.
    log_file_mode now reports invalid values as a usage error.

  • #​15254: tmp_path and TempPathFactory.mktemp <pytest.TempPathFactory.mktemp> no longer list the whole base temporary directory on every call, which made sessions with many temporary directories quadratically slow. Numbers are now handed out from a per-prefix counter, skipping names that already exist.

  • #​4569: Node.add_marker <_pytest.nodes.Node.add_marker> now stores a ~pytest.Mark in node.keywords, matching what marks applied during collection store. Previously it stored a ~pytest.MarkDecorator.

  • #​9436: Avoided formatting tracebacks for tests marked with xfail(run=False).

Bug fixes
  • #​10128: Configured warning filters now apply to warnings emitted by pytest_configure hooks.

  • #​10210: pytest.approx now raises a TypeError for any nested container, not
    only for one of the same type as its parent. Previously approx([{"k": 1}])
    and approx({"k": [1]}) were accepted and then compared unequal to every
    value, silently ignoring the tolerance, while approx([[1]]) correctly
    reported that nesting is unsupported.

  • #​10644: monkeypatch.setattr() no longer leaves a new entry in the instance __dict__ when it patches an attribute that the instance inherits from its class.

    Previously undo() assigned the inherited value onto the instance, which shadowed the class attribute -- permanently freezing the result for descriptors that resolve dynamically.

  • #​1139: Fixed tracebacks showing ??? instead of source lines for code compiled with a filename relative to a directory other than the current working directory -- e.g. compiled Cython modules, when running pytest from a subdirectory of the project root.
    The source lookup now falls back to searching sys.path for such filenames, as the standard traceback module does.

  • #​11502: The rootdir is no longer derived from a configuration file that is not a regular file, such as --config-file=/dev/null.

  • #​11783: Plugins installed in editable mode (660) are marked for assertion rewriting again.

    Such installs do not record the package's Python files in the distribution metadata, so pytest found nothing to rewrite and assertions inside the plugin lost their introspection. The plugin's entry point is now used to locate the package in that case.

  • #​11933: pytest.warns no longer re-emits unmatched warnings with module="warnings", which caused module-based warning filters to be applied to the wrong warnings. Since warnings.WarningMessage does not record the module a warning was emitted with, re-emitted warnings now use the standard warnings.warn_explicit default of deriving the module from the warning's filename.

  • #​12175: ExceptionInfo.exconly(tryshort=True) <pytest.ExceptionInfo.exconly> now strips the AssertionError: prefix of failed assert statements for ~pytest.ExceptionInfo objects created by pytest.raises, and failures inside unittest.TestCase.subTest report the same short crash line as regular tests.

  • #​12223: The message attribute of <failure> and <error> elements in --junitxml reports is now shortened to whole lines within 500 characters. When something is dropped, it ends with a note pointing to the element text, which still holds the full report. Previously, very verbose assertion output (e.g. with -vv) produced attributes tens of thousands of characters long, which some XML parsers fail on.

  • #​12307: Fixed truncation of long collections (lists, dicts, sets, etc.) in the "message" part of failed assertions (as in assert condition, msg) when using -vv: the message now uses the same unlimited repr as the rest of the assertion output, instead of eliding collection elements with ....

  • #​12824: Custom command-line options now fail with a clear error when their implicit
    destination conflicts with an existing option, avoiding silent overrides of
    built-in options such as -k.

  • #​13292: Fixed a stale rewritten module being used when a test file is modified twice
    within the same second without changing its size -- the pyc header could only
    record whole-second timestamps. The cache is now keyed on a hash of the source.

  • #​14036: __tracebackhide__ is now respected in ExceptionGroup tracebacks, both for the group itself and for its sub-exceptions.

  • #​14189: Nested usage of caplog.filtering <pytest.LogCaptureFixture.filtering> no longer removes filter

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot changed the title Update dependency bump-my-version to v1.6.1 Update non-major dependencies Oct 17, 2026
@renovate
renovate Bot force-pushed the renovate/non-major branch 9 times, most recently from 1d32d6b to 0b5ca70 Compare October 24, 2026 18:35
@renovate
renovate Bot force-pushed the renovate/non-major branch 4 times, most recently from d2f4dc9 to c55de9d Compare October 27, 2026 20:56
@renovate
renovate Bot force-pushed the renovate/non-major branch from c55de9d to cce45d0 Compare October 28, 2026 04:12
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