Permanent Updates Policy exception for ty #3564

Closed
opened 2026-02-09 13:40:43 +00:00 by music · 13 comments

This ticket asks FESCo to consider whether the new ty package should be granted a permanent exception under the Updates Policy.

The ty Python type checker and language server is built from the same Rust sources as the ruff linter and formatter, which already has such an exception, and the implementations are tightly entangled, but the version schemes and the release schedules are independent. While ruff has been popular for some time, ty was only recently announced as ready for “beta” usage by early adopters.

Although ty is still in rapid and relatively early development, we can expect from the example set by ruff and uv (also developed by Astral) that breaking changes will be relatively small and well-considered rather than disruptive and haphazard. Indeed, from ty 0.0.1 to 0.0.15, there has so far been only one documented breaking change: a single diagnostic rule was renamed in 0.0.8, affecting people who had it in their suppression files.

It’s my opinion that the risk and inconvenience posed to Fedora users by these occasional small breaking changes will be consistently outweighed by the benefits of new features and bugfixes, including support for new Python language versions. This is especially true considering that ty will primarily be used directly by developers rather than as a dependency for other distribution packages. This is basically the same rationale as for other Python development tools that were already granted similar exceptions, like ruff, uv, and tox and black (previously, previously).

If this exception is granted, ty package maintainers may still choose to keep an old version in certain branches – for example, if the branch is near its end-of-life date, or if the breaking changes in a new version appear too disruptive – and the usual care should be taken to avoid impacting any Fedora packages that do end up depending on ty.

This ticket asks FESCo to consider whether the new [`ty` package](https://src.fedoraproject.org/rpms/ty) should be granted a [permanent exception under the Updates Policy](https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#_exceptions). The `ty` Python type checker and language server is built from the same Rust sources as the `ruff` linter and formatter, which [already has such an exception](https://pagure.io/fesco/issue/3197), and the implementations are tightly entangled, but the version schemes and the release schedules are independent. While `ruff` has been popular for some time, [`ty` was only recently announced](https://astral.sh/blog/ty) as ready for “beta” usage by early adopters. Although `ty` is still in rapid and relatively early development, we can expect from the example set by `ruff` and `uv` (also developed by [Astral](https://astral.sh/)) that breaking changes will be relatively small and well-considered rather than disruptive and haphazard. Indeed, from `ty` 0.0.1 to 0.0.15, there has so far been only one documented breaking change: a single diagnostic rule was renamed in 0.0.8, affecting people who had it in their suppression files. It’s my opinion that the risk and inconvenience posed to Fedora users by these occasional small breaking changes will be consistently outweighed by the benefits of new features and bugfixes, including support for new Python language versions. This is especially true considering that `ty` will primarily be used directly by developers rather than as a dependency for other distribution packages. This is basically the same rationale as for other Python development tools that were already granted similar exceptions, like [`ruff`](https://pagure.io/fesco/issue/3197), [`uv`](https://pagure.io/fesco/issue/3262), and [`tox` and `black`](https://pagure.io/fesco/issue/2652) ([previously](https://pagure.io/fesco/issue/2525), [previously](https://pagure.io/fesco/issue/2259)). If this exception is granted, `ty` package maintainers may still choose to keep an old version in certain branches – for example, if the branch is near its end-of-life date, or if the breaking changes in a new version appear too disruptive – and the usual care should be taken to avoid impacting any Fedora packages that do end up depending on `ty`.
Owner

Seems reasonable to me. +1

Seems reasonable to me. +1
Owner

Metadata Update from @ngompa:

  • Issue tagged with: updates policy exception
**Metadata Update from @ngompa**: - Issue tagged with: updates policy exception
Owner

+1

+1
Owner

+1 here, sounds reasonable.

+1 here, sounds reasonable.
Owner

+1

+1
Owner

+1

+1
Owner

+1

+1
Owner

After 7 days, this is APPROVED (+6, 0, -0).

Somebody please file a Pull Request against the fesco docs / Updates Policy page to document this.

After 7 days, this is APPROVED (+6, 0, -0). Somebody please file a Pull Request against the fesco docs / Updates Policy page to document this.
Owner

Metadata Update from @decathorpe:

  • Issue tagged with: document it
**Metadata Update from @decathorpe**: - Issue tagged with: document it
Owner
Announced as approved, just needs to be documented still. https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/QZDHIQUS76CVUIMUW67TRLEE62R3B4WP/
Author

Somebody please file a Pull Request against the fesco docs / Updates Policy page to document this.

https://pagure.io/fesco/fesco-docs/pull-request/123

> Somebody please file a Pull Request against the fesco docs / Updates Policy page to document this. https://pagure.io/fesco/fesco-docs/pull-request/123
Author
> https://pagure.io/fesco/fesco-docs/pull-request/123 https://forge.fedoraproject.org/fesco/docs/pulls/123
Owner

Metadata Update from @zbyszek:

  • Issue untagged with: document it
  • Issue close_status updated to: Accepted
  • Issue status updated to: Closed (was: Open)
**Metadata Update from @zbyszek**: - Issue **un**tagged with: document it - Issue close_status updated to: Accepted - Issue status updated to: Closed (was: Open)
Sign in to join this conversation.
No milestone
No project
No assignees
7 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
fesco/tickets#3564
No description provided.