Compare commits

...
Sign in to create a new pull request.

27 commits

Author SHA1 Message Date
Benjamin A. Beasley
339c555e34 Update to 0.0.78 (close RHBZ#2527825) 2026-09-04 12:19:28 +01:00
Benjamin A. Beasley
e706d7ef0c Update to 0.0.77 (close RHBZ#2526442) 2026-09-02 11:00:42 +01:00
Benjamin A. Beasley
577c49b236 Update to 0.0.75 (close RHBZ#2524752) 2026-08-27 07:33:39 +01:00
Benjamin A. Beasley
ae34f40221 Update to 0.0.74 (close RHBZ#2521542) 2026-08-24 10:49:05 +01:00
Benjamin A. Beasley
f0ae0a0e36 Don’t explicitly lower-bound cargo-rpm-macros version
[skip changelog]
2026-08-24 07:34:01 +01:00
Benjamin A. Beasley
4d3cb6e487 Upudate to 0.0.73 (close RHBZ#2519402) 2026-08-19 15:36:35 +01:00
Benjamin A. Beasley
26f416618d Update to 0.0.72 (close RHBZ#2499544) 2026-08-16 07:50:36 +01:00
Benjamin A. Beasley
f1ba2ce5c6 Fix/update .rpmlintrc file
[skip changelog]
2026-07-18 07:47:15 +01:00
Fedora Release Engineering
9c9ce553f9 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:03:23 +00:00
Benjamin A. Beasley
5e83e0e366 Update to 0.0.58 2026-07-10 09:23:43 +01:00
Benjamin A. Beasley
c411a6f9f2 Update to 0.0.57 (close RHBZ#2498051) 2026-07-09 06:18:53 +01:00
Benjamin A. Beasley
7f0700800d Update to version 0.0.56 (close RHBZ#2496241) 2026-07-02 06:29:20 +01:00
Benjamin A. Beasley
2e73aa763a Update to 0.0.55 (close RHBZ#2493854) 2026-06-27 06:22:53 +01:00
Benjamin A. Beasley
0b0fbf981d Update to 0.0.54 (close RHBZ#2492464) 2026-06-26 10:40:19 +01:00
Benjamin A. Beasley
4537171b88 Update to 0.0.52 2026-06-23 06:39:50 +01:00
Benjamin A. Beasley
98b126098a Update to 0.0.51 (close RHBZ#2486565) 2026-06-22 06:33:14 +01:00
Benjamin A. Beasley
ec4d655e69 Update to 0.0.46 2026-06-22 06:33:11 +01:00
Benjamin A. Beasley
e9506af96b Allow get-size2 0.10 2026-06-07 08:53:34 +01:00
Benjamin A. Beasley
feda005150 Update to 0.0.44 (close RHBZ#2485369) 2026-06-05 14:32:24 +01:00
Benjamin A. Beasley
b48de7f554 Allow tikv-jemallocator 0.7 2026-06-05 12:19:04 +01:00
Benjamin A. Beasley
628ebb16c3 Stop patching the get-size2 version bound
This was left over from a previous version

[skip changelog]
2026-06-04 13:25:21 +01:00
Benjamin A. Beasley
66cb3c977e Update to 0.0.43 (close RHBZ#2482350) 2026-06-04 06:50:33 +01:00
Python Maint
92a150090c Rebuilt for Python 3.15 2026-06-04 01:36:18 +02:00
Benjamin A. Beasley
1bd7e17405 Use various long options 2026-05-24 08:36:30 +01:00
Benjamin A. Beasley
aef81d4a8e Update to version 0.0.39 (close RHBZ#2480849) 2026-05-23 08:43:30 +01:00
Benjamin A. Beasley
c9c13ededc Update to 0.0.38 (close RHBZ#2480054) 2026-05-21 07:03:24 +01:00
Benjamin A. Beasley
1db93d97d4 Rebuilt with get-size2 0.9.0 2026-05-19 17:29:32 +01:00
7 changed files with 157 additions and 186 deletions

45
.gitignore vendored
View file

@ -1,43 +1,2 @@
/lsp-types-3512a9f33eadc5402cfab1b8f7340824c8ca1439.tar.gz
/ruff-f055f39345ab85d747c3ce348e21274ee2870632.tar.gz
/salsa-e9b9ddd4bec50ac777e9353bbb8f1180e5669d89.tar.gz
/ty-0.0.15.tar.gz
/ty-0.0.16.tar.gz
/ruff-012ec6339058587319bec7d6505a085650138b8e.tar.gz
/salsa-53421c2fff87426fa0bb51cab06632b87646de13.tar.gz
/ty-0.0.17.tar.gz
/ruff-10c082f616d8296df0cd3489a98db8c5d40628d1.tar.gz
/ty-0.0.18.tar.gz
/ruff-ba95d94b6aa5d1b5a93575a0e09264fffd0eea6d.tar.gz
/ty-0.0.19.tar.gz
/ruff-0e19fc9a61477e71abc4eb76f05a129b6b9ab873.tar.gz
/ty-0.0.20.tar.gz
/ruff-313336b61bba043a636084e6047eccaea9a4e773.tar.gz
/ty-0.0.21.tar.gz
/ruff-94c0a20e3c5b1d9f221b6af800c1e9f649c77388.tar.gz
/lsp-types-e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c.tar.gz
/ty-0.0.24.tar.gz
/ruff-beb543b5c666be9fd3f13c88df818f202b63e9d0.tar.gz
/ty-0.0.26.tar.gz
/ruff-34998be22ec3a77d398bbd55234ef8740f768329.tar.gz
/salsa-2f687a17ceea8ec7aaa605561ccbde938ccef086.tar.gz
/ty-0.0.27.tar.gz
/ruff-39c3636bc9c37db2652a0123848949a459e02988.tar.gz
/ty-0.0.28.tar.gz
/ruff-c18f449803c3836a2a4ae432bec3aba04382ee39.tar.gz
/ty-0.0.29.tar.gz
/ruff-208780434ef5268928ef7180254fc95d2f45762a.tar.gz
/ty-0.0.30.tar.gz
/ruff-dc4df9c7019b9c68af25778d68edbd68f0bc74d9.tar.gz
/ty-0.0.31.tar.gz
/ruff-ee9088eebf068f4b3a14f5ee34607f72d3513186.tar.gz
/ty-0.0.32.tar.gz
/ruff-3e9ed60c72ae05871879ac56e7dd4666cfda93a3.tar.gz
/ty-0.0.34.tar.gz
/ruff-e990dfd069fceef96f797b46161ef78862608449.tar.gz
/ty-0.0.35.tar.gz
/ruff-ac6361d83e4d51ab123043b00d5285a842077b81.tar.gz
/ty-0.0.36.tar.gz
/ruff-bafd65a7c77c3c35d6e561891aaad4ee3f7c7acf.tar.gz
/ty-0.0.37.tar.gz
/ruff-a7ab646e3e2aeb138a0de9dee5d7a28e9e054a56.tar.gz
/ty-*.tar.gz
/ruff-*.tar.gz

View file

@ -1,25 +0,0 @@
From afd40e75d4d62d68447318bb1824ac0db0a58fa2 Mon Sep 17 00:00:00 2001
From: Fabio Valentini <decathorpe@gmail.com>
Date: Wed, 4 Dec 2024 17:21:47 +0100
Subject: [PATCH 2/3] drop unavailable features from uuid dependency
---
Cargo.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cargo.toml b/Cargo.toml
index cca70fbdc6..a6bb6f8219 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -202,7 +202,7 @@ unicode-normalization = { version = "0.1.23" }
unicode-width = { version = "0.2.0" }
unicode_names2 = { version = "1.2.2" }
url = { version = "2.5.0" }
-uuid = { version = "1.6.1", features = ["v4", "fast-rng", "macro-diagnostics"] }
+uuid = { version = "1.6.1", features = ["v4", "fast-rng"] }
walkdir = { version = "2.3.2" }
wasm-bindgen = { version = "0.2.92" }
wasm-bindgen-test = { version = "0.3.42" }
--
2.52.0

View file

@ -0,0 +1,113 @@
From 74842e17f726532e6faac923159c3a0b86ef577c Mon Sep 17 00:00:00 2001
From: Fabio Valentini <decathorpe@gmail.com>
Date: Wed, 12 Mar 2025 19:34:50 +0100
Subject: [PATCH 2/2] ignore vendored annotate-snippets tests that hang
indefinitely
---
crates/ruff_annotate_snippets/tests/examples.rs | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/crates/ruff_annotate_snippets/tests/examples.rs b/crates/ruff_annotate_snippets/tests/examples.rs
index d5e24f0b05..26a2371c29 100644
--- a/crates/ruff_annotate_snippets/tests/examples.rs
+++ b/crates/ruff_annotate_snippets/tests/examples.rs
@@ -1,6 +1,7 @@
use std::collections::BTreeSet;
#[test]
+#[ignore]
fn custom_error() {
let target = "custom_error";
let expected = snapbox::file!["../examples/custom_error.svg": TermSvg];
@@ -8,6 +9,7 @@ fn custom_error() {
}
#[test]
+#[ignore]
fn custom_level() {
let target = "custom_level";
let expected = snapbox::file!["../examples/custom_level.svg": TermSvg];
@@ -15,6 +17,7 @@ fn custom_level() {
}
#[test]
+#[ignore]
fn elide_header() {
let target = "elide_header";
let expected = snapbox::file!["../examples/elide_header.svg": TermSvg];
@@ -22,6 +25,7 @@ fn elide_header() {
}
#[test]
+#[ignore]
fn expected_type() {
let target = "expected_type";
let expected = snapbox::file!["../examples/expected_type.svg": TermSvg];
@@ -29,6 +33,7 @@ fn expected_type() {
}
#[test]
+#[ignore]
fn footer() {
let target = "footer";
let expected = snapbox::file!["../examples/footer.svg": TermSvg];
@@ -36,6 +41,7 @@ fn footer() {
}
#[test]
+#[ignore]
fn format() {
let target = "format";
let expected = snapbox::file!["../examples/format.svg": TermSvg];
@@ -43,6 +49,7 @@ fn format() {
}
#[test]
+#[ignore]
fn highlight_source() {
let target = "highlight_source";
let expected = snapbox::file!["../examples/highlight_source.svg": TermSvg];
@@ -50,6 +57,7 @@ fn highlight_source() {
}
#[test]
+#[ignore]
fn highlight_message() {
let target = "highlight_message";
let expected = snapbox::file!["../examples/highlight_message.svg": TermSvg];
@@ -57,6 +65,7 @@ fn highlight_message() {
}
#[test]
+#[ignore]
fn id_hyperlink() {
let target = "id_hyperlink";
let expected = snapbox::file!["../examples/id_hyperlink.svg": TermSvg];
@@ -64,6 +73,7 @@ fn id_hyperlink() {
}
#[test]
+#[ignore]
fn multislice() {
let target = "multislice";
let expected = snapbox::file!["../examples/multislice.svg": TermSvg];
@@ -71,6 +81,7 @@ fn multislice() {
}
#[test]
+#[ignore]
fn multi_suggestion() {
let target = "multi_suggestion";
let expected = snapbox::file!["../examples/multi_suggestion.svg": TermSvg];
@@ -78,6 +89,7 @@ fn multi_suggestion() {
}
#[test]
+#[ignore]
fn struct_name_as_context() {
let target = "struct_name_as_context";
let expected = snapbox::file!["../examples/struct_name_as_context.svg": TermSvg];
--
2.55.0

View file

@ -1,47 +0,0 @@
From cc6dc7a6f9ac32209d7c70258334ace8d4da17e9 Mon Sep 17 00:00:00 2001
From: Fabio Valentini <decathorpe@gmail.com>
Date: Wed, 12 Mar 2025 19:34:50 +0100
Subject: [PATCH 3/3] ignore vendored annotate-snippets tests that hang
indefinitely
---
crates/ruff_annotate_snippets/tests/examples.rs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/crates/ruff_annotate_snippets/tests/examples.rs b/crates/ruff_annotate_snippets/tests/examples.rs
index b6576629f9..b7d66af319 100644
--- a/crates/ruff_annotate_snippets/tests/examples.rs
+++ b/crates/ruff_annotate_snippets/tests/examples.rs
@@ -1,4 +1,5 @@
#[test]
+#[ignore]
fn expected_type() {
let target = "expected_type";
let expected = snapbox::file!["../examples/expected_type.svg": TermSvg];
@@ -6,6 +7,7 @@ fn expected_type() {
}
#[test]
+#[ignore]
fn footer() {
let target = "footer";
let expected = snapbox::file!["../examples/footer.svg": TermSvg];
@@ -13,6 +15,7 @@ fn footer() {
}
#[test]
+#[ignore]
fn format() {
let target = "format";
let expected = snapbox::file!["../examples/format.svg": TermSvg];
@@ -20,6 +23,7 @@ fn format() {
}
#[test]
+#[ignore]
fn multislice() {
let target = "multislice";
let expected = snapbox::file!["../examples/multislice.svg": TermSvg];
--
2.52.0

View file

@ -1,3 +1,2 @@
SHA512 (ty-0.0.37.tar.gz) = 3f310e5dff8a3d358ef02abc5b599c847944c1197ab1ac850598d6be18df87f52838f6fcaffb76a1b04183b0fdc52951f27d29d87dd1cf158fa7b1f6ac649401
SHA512 (ruff-a7ab646e3e2aeb138a0de9dee5d7a28e9e054a56.tar.gz) = 8e3fe116dcf072e6614ddffa3116879b707cf220a3cfcdc1f5e61d89b45538e77b7e80e546a5dd76440bb26fadac2e3eb8c004389b02a5d0ca098ac7d8f01ccf
SHA512 (lsp-types-e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c.tar.gz) = 097e4371ebde03c5f80e4f2c0eaf8354ce53c0472170536df5a155b33d19a4c20a498aa67684c7a764af31115cae02ec42c463044972d4dece7449ea241d6970
SHA512 (ty-0.0.78.tar.gz) = 5496432c8d73ac7ae6ca98c7dbd5454033417e88512918c8c11b93f1b6b9270cd798513206014e364de427b5f2d066c50e84e70a27cf776bfbd99e9e4a16fc02
SHA512 (ruff-827326f12bbbfc1c9cc52f6effa4033bc84ce66a.tar.gz) = 55ca9c3ded2b8ed20a8eaf724b3c4e5f28855068ba69361806bd86b1479062ea53b2671c4f5692c74bcaf9ab1be4e31d107805314661f57671b106e82778c869

View file

@ -4,6 +4,3 @@
addFilter(r" no-manual-page-for-binary ty$")
# The Python package has no dedicated documentation of its own.
addFilter(r"^python3-ty\..*: no-documentation$")
# We use ranges of patch numbers to apply patches to the corresponding sources.
# Some sources may not have corresponding patches.
addFilter(r" autopatch: no matching patches in range$")

105
ty.spec
View file

@ -8,7 +8,7 @@
%bcond check 1
Name: ty
Version: 0.0.37
Version: 0.0.78
# The ty package has a permanent exception to the Updates Policy in Fedora,
# so it can be updated in stable releases across SemVer boundaries (subject to
# good judgement and actual compatibility of any reverse dependencies). See
@ -75,9 +75,6 @@ Summary: Extremely fast Python type checker and language server
# Apache-2.0 OR MIT:
# - crates/ruff_annotate_snippets/ is a fork of the annotate-snippets crate
#
# MIT:
# - lsp-types, Source200
#
# =====
#
# A few other source files carry their own licenses but do not fit into the
@ -162,28 +159,17 @@ Source: %{url}/archive/%{version}/ty-%{version}.tar.gz
# Regarding bundling ruff, see the comments at the beginning of the spec file.
%global ruff_git https://github.com/astral-sh/ruff
%global ruff_rev a7ab646e3e2aeb138a0de9dee5d7a28e9e054a56
%global ruff_baseversion 0.15.13
%global ruff_snapdate 20260516
%global ruff_rev 827326f12bbbfc1c9cc52f6effa4033bc84ce66a
%global ruff_baseversion 0.16.6
%global ruff_snapdate 20260902
Source100: %{ruff_git}/archive/%{ruff_rev}/ruff-%{ruff_rev}.tar.gz
# Currently, ruff must use a fork of lsp-types,
# https://github.com/astral-sh/ruff/issues/20449. Upstream has not ruled out
# “unforking,” but indicates they are in no particular hurry to do so. We
# therefore bundle the fork; full details and justification are in the ruff
# package.
%global lsp_types_git https://github.com/astral-sh/lsp-types
%global lsp_types_rev e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c
%global lsp_types_baseversion 0.95.1
%global lsp_types_snapdate 20260220
Source200: %{lsp_types_git}/archive/%{lsp_types_rev}/lsp-types-%{lsp_types_rev}.tar.gz
# Get this from ruff/crates/ty_vendored/vendor/typeshed/source_commit.txt.
%global typeshed_rev e4d32e01bee44241a5e7c33298c261175b9f1bdb
%global typeshed_rev cf09d2a4d7614f648e9109dce609887499a7c6ee
# The typeshed project as a whole has never been versioned.
%global typeshed_baseversion 0
# Inspect https://github.com/python/typeshed/commit/%%{typeshed_rev}.
%global typeshed_snapdate 20260428
%global typeshed_snapdate 20260831
# Downstream patch: always find the system-wide ty executable
#
@ -194,10 +180,8 @@ Source200: %{lsp_types_git}/archive/%{lsp_types_rev}/lsp-types-%{lsp_types_
Patch: 0001-Downstream-patch-always-find-the-system-wide-ty-exec.patch
# Downstream patches for ruff, copied from the ruff package
# * drop unavailable compile-time diagnostics feature for UUIDs (non-upstreamable)
Patch102: 0002-drop-unavailable-features-from-uuid-dependency.patch
# * ignore tests in vendored annotate-snippets that hang indefinitely:
Patch103: 0003-ignore-vendored-annotate-snippets-tests-that-hang-in.patch
Patch102: 0002-ignore-vendored-annotate-snippets-tests-that-hang-in.patch
BuildSystem: pyproject
BuildOption(install): --assert-license ty
@ -208,7 +192,7 @@ ExcludeArch: %{ix86}
# Memory exhaustion can occur. Increase as needed.
%global _smp_tasksize_proc 16384
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: cargo-rpm-macros
BuildRequires: rust2rpm-helper
BuildRequires: tomcli
@ -217,11 +201,6 @@ BuildRequires: tomcli
%global ruff_version %{ruff_baseversion}^%{ruff_snapinfo}
Provides: bundled(ruff) = %{ruff_version}
# This is a fork of lsp-types; see the notes about Source200.
%global lsp_types_snapinfo %{lsp_types_snapdate}git%{sub %{lsp_types_rev} 1 7}
%global lsp_types_version %{lsp_types_baseversion}^%{lsp_types_snapinfo}
Provides: bundled(crate(lsp-types)) = %{lsp_types_version}
# This is not versioned or released as a whole, and it is normal for
# type-checkers to vendor it. See
# https://typing.python.org/en/latest/spec/distributing.html#the-typeshed-project.
@ -251,10 +230,6 @@ Provides: bundled(typeshed) = %{typeshed_version}
# [`annotate-snippets` crate]: https://github.com/rust-lang/annotate-snippets-rs
Provides: bundled(crate(annotate-snippets)) = 0.11.5
# forked from lsp-types upstream: https://github.com/gluon-lang/lsp-types
# with changes applied: https://github.com/astral-sh/lsp-types/tree/notebook-support
Provides: bundled(crate(lsp-types)) = 0.95.1
%global common_description %{expand:
An extremely fast Python type checker and language server, written in Rust.}
@ -293,27 +268,6 @@ tomcli set pyproject.toml false tool.maturin.strip
%cargo_prep
popd
# Usage: git2path SELECTOR PATH
# Replace a git dependency with a path dependency in Cargo.toml
git2path() {
tomcli set Cargo.toml del "${1}.git"
tomcli set Cargo.toml del "${1}.rev"
tomcli set Cargo.toml str "${1}.path" "${2}"
}
# See comments above Source200:
%setup -q -T -D -b 200 -n ty-%{version}
# Adding the crate to the workspace (in this case implicitly, by linking it
# under crates/) means %%cargo_generate_buildrequires can handle it correctly.
mv ../lsp-types-%{lsp_types_rev} ruff/crates/lsp-types
pushd ruff
git2path workspace.dependencies.lsp-types crates/lsp-types
pushd crates/lsp-types
%autopatch -p1 -m200 -M299
popd
popd
install -t LICENSE.bundled/lsp-types -D -p -m 0644 ruff/crates/lsp-types/LICENSE
# Loosen some version bounds. We retain this comment and the following example
# even when there are currently no dependencies that need to be adjusted.
#
@ -323,16 +277,28 @@ install -t LICENSE.bundled/lsp-types -D -p -m 0644 ruff/crates/lsp-types/LICENSE
# # https://bugzilla.redhat.com/show_bug.cgi?id=1234567
# tomcli set ruff/Cargo.toml str workspace.dependencies.foocrate.version 0.1.2
# # get-size2
# # wanted: 0.8.0
# # currently packaged: 0.9.0
# get-size2
# wanted: 0.9.0
# currently packaged: 0.10.0
# We havent suggested this upstream because we know they use renovate with
# dependency cooldowns, and we expect they will soon update without prompting.
tomcli set ruff/Cargo.toml str workspace.dependencies.get-size2.version \
'>=0.8.0, <0.10.0'
'>=0.9.0, <0.11.0'
# tikv-jemallocator
# wanted: 0.6.0
# currently packaged: 0.7.0
# We havent suggested this upstream because we know they use renovate with
# dependency cooldowns, and we expect they will soon update without prompting.
tomcli set ruff/Cargo.toml str \
workspace.dependencies.tikv-jemallocator.version '>=0.6.0, <0.8.0'
# Collect license files of vendored dependencies in the main source archive
install -t LICENSE.bundled/typeshed -D -p -m 0644 \
install -D --preserve-timestamps --mode=0644 \
--target=LICENSE.bundled/typeshed \
ruff/crates/ty_vendored/vendor/typeshed/LICENSE
install -t LICENSE.bundled/annotate_snippets -D -p -m 0644 \
install -D --preserve-timestamps --mode=0644 \
--target=LICENSE.bundled/annotate_snippets \
ruff/crates/ruff_annotate_snippets/LICENSE-*
# Patch out foreign (e.g. Windows-only) dependencies. Follow symbolic links so
@ -342,12 +308,12 @@ find -L . -type f -name Cargo.toml -print \
# Drop unused subproject crates.
# binary crate for running micro-benchmarks.
rm -rv ruff/crates/ruff_benchmark
rm --recursive --verbose ruff/crates/ruff_benchmark
# binary crate containing utilities used in the development of Ruff itself
rm -rv ruff/crates/ruff_dev
rm --recursive --verbose ruff/crates/ruff_dev
# library crate for exposing Ruff as a WebAssembly module. Powers the
# [Ruff Playground](https://play.ruff.rs/).
rm -rv ruff/crates/ruff_wasm ruff/crates/ty_wasm
rm --recursive --verbose ruff/crates/ruff_wasm ruff/crates/ty_wasm
# Verify we have the correct snapshot hash for typeshed
typeshed_rev_file='ruff/crates/ty_vendored/vendor/typeshed/source_commit.txt'
@ -398,9 +364,10 @@ then
# library is actually pure-Python, and the python3-ty subpackage can be
# noarch. We cant tell maturin to install to the appropriate site-packages
# directory, but we can fix the installation path manually.
install -d %{buildroot}%{python3_sitelib}
install --directory %{buildroot}%{python3_sitelib}
mv %{buildroot}%{python3_sitearch}/ty* %{buildroot}%{python3_sitelib}
sed -r -i 's@%{python3_sitearch}@%{python3_sitelib}@' %{pyproject_files}
sed --regexp-extended --in-place \
's@%{python3_sitearch}@%{python3_sitelib}@' %{pyproject_files}
fi
# generate and install shell completions
@ -443,6 +410,14 @@ skip="${skip-} --skip python_environment::ty_environment_is_only_environment"
# Not confirmed flaky, but the other ty_environment_* ones are, so…
skip="${skip-} --skip python_environment::ty_environment_is_system_not_virtual"
# TODO: This looks innocuous, but exactly which upstream assumption is violated
# in the build environment, and can we do anything about it?
#
# ---- unix::symlink_inside_project stdout ----
# thread 'unix::symlink_inside_project' (23715) panicked at crates/ty/tests/file_watching.rs:2036:14:
# Indexed project files contains '/tmp/.tmpxyayv9/project/bar/baz.py' which was not expected.
skip="${skip-} --skip unix::symlink_inside_project"
%ifarch s390x
# This panics consistently on s390x only; not reported upstream since it
# couldnt be reproduced in a git checkout under qemu-user-static emulation.