Compare commits

..

No commits in common. "rawhide" and "f42" have entirely different histories.

7 changed files with 186 additions and 157 deletions

45
.gitignore vendored
View file

@ -1,2 +1,43 @@
/ty-*.tar.gz
/ruff-*.tar.gz
/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

View file

@ -0,0 +1,25 @@
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

@ -1,113 +0,0 @@
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

@ -0,0 +1,47 @@
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,2 +1,3 @@
SHA512 (ty-0.0.78.tar.gz) = 5496432c8d73ac7ae6ca98c7dbd5454033417e88512918c8c11b93f1b6b9270cd798513206014e364de427b5f2d066c50e84e70a27cf776bfbd99e9e4a16fc02
SHA512 (ruff-827326f12bbbfc1c9cc52f6effa4033bc84ce66a.tar.gz) = 55ca9c3ded2b8ed20a8eaf724b3c4e5f28855068ba69361806bd86b1479062ea53b2671c4f5692c74bcaf9ab1be4e31d107805314661f57671b106e82778c869
SHA512 (ty-0.0.37.tar.gz) = 3f310e5dff8a3d358ef02abc5b599c847944c1197ab1ac850598d6be18df87f52838f6fcaffb76a1b04183b0fdc52951f27d29d87dd1cf158fa7b1f6ac649401
SHA512 (ruff-a7ab646e3e2aeb138a0de9dee5d7a28e9e054a56.tar.gz) = 8e3fe116dcf072e6614ddffa3116879b707cf220a3cfcdc1f5e61d89b45538e77b7e80e546a5dd76440bb26fadac2e3eb8c004389b02a5d0ca098ac7d8f01ccf
SHA512 (lsp-types-e15db0593f0ecbbd80599c3f5880e4bf5da1ca0c.tar.gz) = 097e4371ebde03c5f80e4f2c0eaf8354ce53c0472170536df5a155b33d19a4c20a498aa67684c7a764af31115cae02ec42c463044972d4dece7449ea241d6970

View file

@ -4,3 +4,6 @@
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.78
Version: 0.0.37
# 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,6 +75,9 @@ 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
@ -159,17 +162,28 @@ 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 827326f12bbbfc1c9cc52f6effa4033bc84ce66a
%global ruff_baseversion 0.16.6
%global ruff_snapdate 20260902
%global ruff_rev a7ab646e3e2aeb138a0de9dee5d7a28e9e054a56
%global ruff_baseversion 0.15.13
%global ruff_snapdate 20260516
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 cf09d2a4d7614f648e9109dce609887499a7c6ee
%global typeshed_rev e4d32e01bee44241a5e7c33298c261175b9f1bdb
# 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 20260831
%global typeshed_snapdate 20260428
# Downstream patch: always find the system-wide ty executable
#
@ -180,8 +194,10 @@ Source100: %{ruff_git}/archive/%{ruff_rev}/ruff-%{ruff_rev}.tar.gz
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:
Patch102: 0002-ignore-vendored-annotate-snippets-tests-that-hang-in.patch
Patch103: 0003-ignore-vendored-annotate-snippets-tests-that-hang-in.patch
BuildSystem: pyproject
BuildOption(install): --assert-license ty
@ -192,7 +208,7 @@ ExcludeArch: %{ix86}
# Memory exhaustion can occur. Increase as needed.
%global _smp_tasksize_proc 16384
BuildRequires: cargo-rpm-macros
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: rust2rpm-helper
BuildRequires: tomcli
@ -201,6 +217,11 @@ 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.
@ -230,6 +251,10 @@ 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.}
@ -268,6 +293,27 @@ 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.
#
@ -277,28 +323,16 @@ popd
# # 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.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.
# # get-size2
# # wanted: 0.8.0
# # currently packaged: 0.9.0
tomcli set ruff/Cargo.toml str workspace.dependencies.get-size2.version \
'>=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'
'>=0.8.0, <0.10.0'
# Collect license files of vendored dependencies in the main source archive
install -D --preserve-timestamps --mode=0644 \
--target=LICENSE.bundled/typeshed \
install -t LICENSE.bundled/typeshed -D -p -m 0644 \
ruff/crates/ty_vendored/vendor/typeshed/LICENSE
install -D --preserve-timestamps --mode=0644 \
--target=LICENSE.bundled/annotate_snippets \
install -t LICENSE.bundled/annotate_snippets -D -p -m 0644 \
ruff/crates/ruff_annotate_snippets/LICENSE-*
# Patch out foreign (e.g. Windows-only) dependencies. Follow symbolic links so
@ -308,12 +342,12 @@ find -L . -type f -name Cargo.toml -print \
# Drop unused subproject crates.
# binary crate for running micro-benchmarks.
rm --recursive --verbose ruff/crates/ruff_benchmark
rm -rv ruff/crates/ruff_benchmark
# binary crate containing utilities used in the development of Ruff itself
rm --recursive --verbose ruff/crates/ruff_dev
rm -rv ruff/crates/ruff_dev
# library crate for exposing Ruff as a WebAssembly module. Powers the
# [Ruff Playground](https://play.ruff.rs/).
rm --recursive --verbose ruff/crates/ruff_wasm ruff/crates/ty_wasm
rm -rv 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'
@ -364,10 +398,9 @@ 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 --directory %{buildroot}%{python3_sitelib}
install -d %{buildroot}%{python3_sitelib}
mv %{buildroot}%{python3_sitearch}/ty* %{buildroot}%{python3_sitelib}
sed --regexp-extended --in-place \
's@%{python3_sitearch}@%{python3_sitelib}@' %{pyproject_files}
sed -r -i 's@%{python3_sitearch}@%{python3_sitelib}@' %{pyproject_files}
fi
# generate and install shell completions
@ -410,14 +443,6 @@ 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.