public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Steve Cossette <farchord@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/kdevelop-python] rawhide: 26.07.90
Date: Mon, 03 Aug 2026 12:17:21 GMT [thread overview]
Message-ID: <178575944123.1.10344397110728208970.rpms-kdevelop-python-8c532d8fa7e9@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/kdevelop-python
Branch : rawhide
Commit : 8c532d8fa7e9e4c8fe827ecf21f29f28f9cd5486
Author : Steve Cossette <farchord@gmail.com>
Date : 2026-08-03T08:17:04-04:00
Stats : +9/-411 in 4 file(s)
URL : https://src.fedoraproject.org/rpms/kdevelop-python/c/8c532d8fa7e9e4c8fe827ecf21f29f28f9cd5486?branch=rawhide
Log:
26.07.90
---
diff --git a/.gitignore b/.gitignore
index ca7e32a..07f7305 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,4 @@
/kdev-python-5.6.2.tar.xz
/kdev-python-26.04.2.tar.xz
/kdev-python-26.04.3.tar.xz
+/kdev-python-26.07.90.tar.xz
diff --git a/65.patch b/65.patch
deleted file mode 100644
index 7d90f07..0000000
--- a/65.patch
+++ /dev/null
@@ -1,403 +0,0 @@
-From b483204bb39f6691d2a5a682b295a15ac7c08c40 Mon Sep 17 00:00:00 2001
-From: Morten Danielsen Volden <mvolden2@gmail.com>
-Date: Fri, 5 Jun 2026 23:33:38 +0200
-Subject: [PATCH 1/4] Fix build for python 3.14 and forward
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4a8ee6f2..e1ea85d7 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -42,7 +42,7 @@ add_definitions( -DTRANSLATION_DOMAIN=\"kdevpython\" )
-
- set(Python3_USE_STATIC_LIBS FALSE)
- set(Python3_FIND_STRATEGY VERSION)
--find_package(Python3 3.4.3...<3.14 COMPONENTS Interpreter Development REQUIRED)
-+find_package(Python3 3.4.3 COMPONENTS Interpreter Development REQUIRED)
-
- configure_file(kdevpythonversion.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/kdevpythonversion.h" @ONLY)
-
---
-GitLab
-
-
-From 6ee5cbb3f6129470439a1a5d9b9483417ba045ac Mon Sep 17 00:00:00 2001
-From: Morten Danielsen Volden <mvolden2@gmail.com>
-Date: Sat, 27 Jun 2026 07:19:38 +0200
-Subject: [PATCH 2/4] Add support for python 3.14 AST features Fixes the
- following scenario. If a user writes t"hello {name}" in Python 3.14 code, the
- Python AST produces an ast.TemplateStr node. The transformer at
- asttransformer.cpp:816-819 will then hit the unhandled fallthrough:
-
-// asttransformer.cpp:816
-else {
- qWarning() << "Unsupported _expr AST type: " << PyUnicodeObjectToQString(PyObject_Str(node));
- Q_ASSERT(false); // crashes debug builds, skips in release
-}
----
- parser/ast.cpp | 10 ++++++
- parser/ast.h | 17 ++++++++++
- parser/astdefaultvisitor.cpp | 11 +++++++
- parser/astdefaultvisitor.h | 4 +++
- parser/asttransformer.cpp | 24 ++++++++++++++
- parser/astvisitor.cpp | 2 ++
- parser/astvisitor.h | 2 ++
- parser/python_grammar.h | 15 +++++++++
- parser/tests/pyasttest.cpp | 64 ++++++++++++++++++++++++++++++++++++
- parser/tests/pyasttest.h | 3 ++
- 10 files changed, 152 insertions(+)
-
-diff --git a/parser/ast.cpp b/parser/ast.cpp
-index b10fcb11..3a5f95e0 100644
---- a/parser/ast.cpp
-+++ b/parser/ast.cpp
-@@ -676,6 +676,16 @@ FormattedValueAst::FormattedValueAst(Ast* parent): ExpressionAst(parent, Ast::Fo
-
- }
-
-+TemplateStringAst::TemplateStringAst(Ast* parent): ExpressionAst(parent, Ast::TemplateStringAstType), values()
-+{
-+
-+}
-+
-+InterpolationAst::InterpolationAst(Ast* parent): ExpressionAst(parent, Ast::InterpolationAstType), value(nullptr), expr(), conversion(0), formatSpec(nullptr)
-+{
-+
-+}
-+
- SubscriptAst::SubscriptAst(Ast* parent): ExpressionAst(parent, Ast::SubscriptAstType), value(nullptr), slice(nullptr)
- {
-
-diff --git a/parser/ast.h b/parser/ast.h
-index ba64ad23..0c029c9b 100644
---- a/parser/ast.h
-+++ b/parser/ast.h
-@@ -108,6 +108,8 @@ public:
- StringAstType,
- JoinedStringAstType,
- FormattedValueAstType,
-+ TemplateStringAstType,
-+ InterpolationAstType,
- BytesAstType,
- SubscriptAstType,
- StarredAstType,
-@@ -694,6 +696,21 @@ public:
- ExpressionAst* formatSpec;
- };
-
-+class KDEVPYTHONPARSER_EXPORT TemplateStringAst : public ExpressionAst {
-+public:
-+ TemplateStringAst(Ast* parent);
-+ QList<ExpressionAst*> values;
-+};
-+
-+class KDEVPYTHONPARSER_EXPORT InterpolationAst : public ExpressionAst {
-+public:
-+ InterpolationAst(Ast* parent);
-+ ExpressionAst* value;
-+ QString expr; // raw source text of the interpolated expression
-+ int conversion;
-+ ExpressionAst* formatSpec;
-+};
-+
- class KDEVPYTHONPARSER_EXPORT BytesAst : public ConstantAst {
- public:
- BytesAst(Ast* parent) : ConstantAst(parent, Ast::BytesAstType) {};
-diff --git a/parser/astdefaultvisitor.cpp b/parser/astdefaultvisitor.cpp
-index 5aaeaed7..9a60d989 100644
---- a/parser/astdefaultvisitor.cpp
-+++ b/parser/astdefaultvisitor.cpp
-@@ -45,6 +45,17 @@ void AstDefaultVisitor::visitFormattedValue(FormattedValueAst* node) {
- visitNode(node->formatSpec);
- }
-
-+void AstDefaultVisitor::visitTemplateString(TemplateStringAst* node) {
-+ for (Ast* value : std::as_const(node->values)) {
-+ visitNode(value);
-+ }
-+}
-+
-+void AstDefaultVisitor::visitInterpolation(InterpolationAst* node) {
-+ visitNode(node->value);
-+ visitNode(node->formatSpec);
-+}
-+
- void AstDefaultVisitor::visitStarred(StarredAst* node) {
- visitNode(node->value);
- }
-diff --git a/parser/astdefaultvisitor.h b/parser/astdefaultvisitor.h
-index 458fead0..c6811a16 100644
---- a/parser/astdefaultvisitor.h
-+++ b/parser/astdefaultvisitor.h
-@@ -67,6 +67,8 @@ public:
- void visitString(StringAst* node) override;
- void visitJoinedString(JoinedStringAst* node) override;
- void visitFormattedValue(FormattedValueAst* node) override;
-+ void visitTemplateString(TemplateStringAst* node) override;
-+ void visitInterpolation(InterpolationAst* node) override;
- void visitBytes(BytesAst* node) override;
- void visitYield(YieldAst* node) override;
- void visitYieldFrom(YieldFromAst* node) override;
-@@ -149,6 +151,8 @@ public:
- void visitString(StringAst* node) override { AstDefaultVisitor::visitString(node); delete node; }
- void visitJoinedString(JoinedStringAst* node) override { AstDefaultVisitor::visitJoinedString(node); delete node; }
- void visitFormattedValue(FormattedValueAst* node) override { AstDefaultVisitor::visitFormattedValue(node); delete node; }
-+ void visitTemplateString(TemplateStringAst* node) override { AstDefaultVisitor::visitTemplateString(node); delete node; }
-+ void visitInterpolation(InterpolationAst* node) override { AstDefaultVisitor::visitInterpolation(node); delete node; }
- void visitBytes(BytesAst* node) override { AstDefaultVisitor::visitBytes(node); delete node; }
- void visitYield(YieldAst* node) override { AstDefaultVisitor::visitYield(node); delete node; }
- void visitYieldFrom(YieldFromAst* node) override { AstDefaultVisitor::visitYieldFrom(node); delete node; }
-diff --git a/parser/asttransformer.cpp b/parser/asttransformer.cpp
-index 462f7975..0e42b346 100644
---- a/parser/asttransformer.cpp
-+++ b/parser/asttransformer.cpp
-@@ -618,6 +618,30 @@ Ast* AstTransformer::visitExprNode(PyObject* node, Ast* parent)
- result = v;
- }
- #endif
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 14, 0)
-+ else if (PyObject_IsInstance(node, grammar.ast_TemplateStr)) {
-+ TemplateStringAst* v = new TemplateStringAst(parent);
-+ {
-+ PyObjectRef values = getattr<PyObjectRef>(node, "values");
-+ v->values = visitNodeList<ExpressionAst>(values, v);
-+ }
-+ result = v;
-+ }
-+ else if (PyObject_IsInstance(node, grammar.ast_Interpolation)) {
-+ InterpolationAst* v = new InterpolationAst(parent);
-+ {
-+ PyObjectRef value = getattr<PyObjectRef>(node, "value");
-+ v->value = static_cast<ExpressionAst*>(visitExprNode(value, v));
-+ }
-+ v->expr = getattr<QString>(node, "str");
-+ v->conversion = getattr<int>(node, "conversion");
-+ {
-+ PyObjectRef format_spec = getattr<PyObjectRef>(node, "format_spec");
-+ v->formatSpec = static_cast<ExpressionAst*>(visitExprNode(format_spec, v));
-+ }
-+ result = v;
-+ }
-+#endif
- #if PYTHON_VERSION < QT_VERSION_CHECK(3, 8, 0)
- else if (PyObject_IsInstance(node, grammar.ast_Bytes)) {
- BytesAst* v = new BytesAst(parent);
-diff --git a/parser/astvisitor.cpp b/parser/astvisitor.cpp
-index df21cddf..0f96922a 100644
---- a/parser/astvisitor.cpp
-+++ b/parser/astvisitor.cpp
-@@ -65,6 +65,8 @@ void AstVisitor::visitNode(Ast* node)
- case Ast::StringAstType: this->visitString(static_cast<StringAst*>(node)); break;
- case Ast::FormattedValueAstType: this->visitFormattedValue(static_cast<FormattedValueAst*>(node)); break;
- case Ast::JoinedStringAstType: this->visitJoinedString(static_cast<JoinedStringAst*>(node)); break;
-+ case Ast::TemplateStringAstType: this->visitTemplateString(static_cast<TemplateStringAst*>(node)); break;
-+ case Ast::InterpolationAstType: this->visitInterpolation(static_cast<InterpolationAst*>(node)); break;
- case Ast::BytesAstType: this->visitBytes(static_cast<BytesAst*>(node)); break;
- case Ast::YieldAstType: this->visitYield(static_cast<YieldAst*>(node)); break;
- case Ast::NameAstType: this->visitName(static_cast<NameAst*>(node)); break;
-diff --git a/parser/astvisitor.h b/parser/astvisitor.h
-index aa4d8015..9ac05ced 100644
---- a/parser/astvisitor.h
-+++ b/parser/astvisitor.h
-@@ -80,6 +80,8 @@ public:
- virtual void visitString(StringAst* node) { Q_UNUSED(node); };
- virtual void visitFormattedValue(FormattedValueAst* node) { Q_UNUSED(node); };
- virtual void visitJoinedString(JoinedStringAst* node) { Q_UNUSED(node); };
-+ virtual void visitTemplateString(TemplateStringAst* node) { Q_UNUSED(node); };
-+ virtual void visitInterpolation(InterpolationAst* node) { Q_UNUSED(node); };
- virtual void visitBytes(BytesAst* node) { Q_UNUSED(node); };
- virtual void visitYield(YieldAst* node) { Q_UNUSED(node); };
- virtual void visitName(NameAst* node) { Q_UNUSED(node); };
-diff --git a/parser/python_grammar.h b/parser/python_grammar.h
-index 88c68f70..a908da3b 100644
---- a/parser/python_grammar.h
-+++ b/parser/python_grammar.h
-@@ -187,6 +187,12 @@ public:
- PyObject* ast_Bytes;
- #endif
-
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 14, 0)
-+ // PEP 750 t-strings
-+ PyObject* ast_TemplateStr;
-+ PyObject* ast_Interpolation;
-+#endif
-+
- Grammar() {
- PyObject* mod = PyImport_ImportModule("ast");
-
-@@ -338,6 +344,11 @@ public:
- Py_GRAMMAR_GET(mod, TypeAlias);
- #endif
-
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 14, 0)
-+ Py_GRAMMAR_GET(mod, TemplateStr);
-+ Py_GRAMMAR_GET(mod, Interpolation);
-+#endif
-+
- Py_DECREF(mod);
- }
-
-@@ -486,6 +497,10 @@ public:
- #endif
- #if PYTHON_VERSION >= QT_VERSION_CHECK(3, 12, 0)
- Py_XDECREF(ast_TypeAlias);
-+#endif
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 14, 0)
-+ Py_XDECREF(ast_TemplateStr);
-+ Py_XDECREF(ast_Interpolation);
- #endif
- }
- };
-diff --git a/parser/tests/pyasttest.cpp b/parser/tests/pyasttest.cpp
-index 16852f8d..442fa16b 100644
---- a/parser/tests/pyasttest.cpp
-+++ b/parser/tests/pyasttest.cpp
-@@ -243,6 +243,12 @@ void PyAstTest::testExpressions_data()
- QTest::newRow("ExtSlice") << "A[1:3,3:5]";
- QTest::newRow("FString") << "f\"hi {a.b}\"";
- QTest::newRow("Formatted") << "'%s %s' % ('one', 'two')";
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 14, 0)
-+ QTest::newRow("TString") << "t\"hello {name}\"";
-+ QTest::newRow("TString_conversion") << "t\"{value!r}\"";
-+ QTest::newRow("TString_format_spec") << "t\"{value:.2f}\"";
-+ QTest::newRow("TString_nested_expr") << "t\"{a + b}\"";
-+#endif
-
- #if PYTHON_VERSION >= QT_VERSION_CHECK(3, 6, 0)
- QTest::newRow("async_generator") << "async def foo(): result = [i async for i in aiter() if i % 2]";
-@@ -321,4 +327,62 @@ void PyAstTest::testClass()
- testCode(QStringLiteral("class c: pass"));
- }
-
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 14, 0)
-+void PyAstTest::testTemplateStrings()
-+{
-+ // t"hello {name}" -> TemplateStringAst with [StringAst, InterpolationAst]
-+ {
-+ CodeAst::Ptr ast = getAst(QStringLiteral("t\"hello {name}\""));
-+ QVERIFY(ast);
-+ QCOMPARE(ast->body.size(), 1);
-+ QCOMPARE(ast->body.first()->astType, Ast::ExpressionAstType);
-+ ExpressionAst* expr = static_cast<ExpressionAst*>(ast->body.first());
-+ QCOMPARE(expr->value->astType, Ast::TemplateStringAstType);
-+ TemplateStringAst* tstr = static_cast<TemplateStringAst*>(expr->value);
-+ QCOMPARE(tstr->values.size(), 2);
-+ QCOMPARE(tstr->values.at(0)->astType, Ast::StringAstType);
-+ QCOMPARE(tstr->values.at(1)->astType, Ast::InterpolationAstType);
-+ InterpolationAst* interp = static_cast<InterpolationAst*>(tstr->values.at(1));
-+ QCOMPARE(interp->expr, QStringLiteral("name"));
-+ QCOMPARE(interp->conversion, -1); // no conversion
-+ QVERIFY(!interp->formatSpec);
-+ QVERIFY(interp->value);
-+ QCOMPARE(interp->value->astType, Ast::NameAstType);
-+ }
-+
-+ // t"{value!r}" -> InterpolationAst with conversion == 'r' (114)
-+ {
-+ CodeAst::Ptr ast = getAst(QStringLiteral("t\"{value!r}\""));
-+ QVERIFY(ast);
-+ ExpressionAst* expr = static_cast<ExpressionAst*>(ast->body.first());
-+ TemplateStringAst* tstr = static_cast<TemplateStringAst*>(expr->value);
-+ QCOMPARE(tstr->values.size(), 1);
-+ QCOMPARE(tstr->values.first()->astType, Ast::InterpolationAstType);
-+ InterpolationAst* interp = static_cast<InterpolationAst*>(tstr->values.first());
-+ QCOMPARE(interp->conversion, 114); // 'r'
-+ QVERIFY(!interp->formatSpec);
-+ }
-+
-+ // t"{value:.2f}" -> InterpolationAst with non-null formatSpec
-+ {
-+ CodeAst::Ptr ast = getAst(QStringLiteral("t\"{value:.2f}\""));
-+ QVERIFY(ast);
-+ ExpressionAst* expr = static_cast<ExpressionAst*>(ast->body.first());
-+ TemplateStringAst* tstr = static_cast<TemplateStringAst*>(expr->value);
-+ QCOMPARE(tstr->values.size(), 1);
-+ InterpolationAst* interp = static_cast<InterpolationAst*>(tstr->values.first());
-+ QCOMPARE(interp->conversion, -1);
-+ QVERIFY(interp->formatSpec);
-+ }
-+
-+ // VerifyVisitor walks the entire tree without asserting
-+ {
-+ CodeAst::Ptr ast = getAst(QStringLiteral("x = t\"sum={a+b:.2f} items={items!s}\""));
-+ QVERIFY(ast);
-+ VerifyVisitor v;
-+ v.visitCode(ast.data());
-+ }
-+}
-+#endif
-+
- #include "moc_pyasttest.cpp"
-diff --git a/parser/tests/pyasttest.h b/parser/tests/pyasttest.h
-index 9a37822b..401f13eb 100644
---- a/parser/tests/pyasttest.h
-+++ b/parser/tests/pyasttest.h
-@@ -40,6 +40,9 @@ private Q_SLOTS:
- void testExceptionHandlers();
- void testCorrectedFuncRanges();
- void testCorrectedFuncRanges_data();
-+#if PYTHON_VERSION >= QT_VERSION_CHECK(3, 14, 0)
-+ void testTemplateStrings();
-+#endif
- };
-
- }
---
-GitLab
-
-
-From 2164bb8ad9fbb70a822bdbf762232c8dfa4af618 Mon Sep 17 00:00:00 2001
-From: Morten Danielsen Volden <mvolden2@gmail.com>
-Date: Sat, 27 Jun 2026 07:31:25 +0200
-Subject: [PATCH 3/4] Bring back upper requirements for python Also bump to
- include 3.14
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e1ea85d7..cd8346c5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -42,7 +42,7 @@ add_definitions( -DTRANSLATION_DOMAIN=\"kdevpython\" )
-
- set(Python3_USE_STATIC_LIBS FALSE)
- set(Python3_FIND_STRATEGY VERSION)
--find_package(Python3 3.4.3 COMPONENTS Interpreter Development REQUIRED)
-+find_package(Python3 3.4.3...<3.15 COMPONENTS Interpreter Development REQUIRED)
-
- configure_file(kdevpythonversion.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/kdevpythonversion.h" @ONLY)
-
---
-GitLab
-
-
-From c71b0ecad3e7d3184cb88ab0659580298b0d8f0e Mon Sep 17 00:00:00 2001
-From: Morten Danielsen Volden <mvolden2@gmail.com>
-Date: Sun, 28 Jun 2026 07:40:56 +0200
-Subject: [PATCH 4/4] Update python to include version 3.15
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cd8346c5..35bf830b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -42,7 +42,7 @@ add_definitions( -DTRANSLATION_DOMAIN=\"kdevpython\" )
-
- set(Python3_USE_STATIC_LIBS FALSE)
- set(Python3_FIND_STRATEGY VERSION)
--find_package(Python3 3.4.3...<3.15 COMPONENTS Interpreter Development REQUIRED)
-+find_package(Python3 3.4.3...<3.16 COMPONENTS Interpreter Development REQUIRED)
-
- configure_file(kdevpythonversion.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/kdevpythonversion.h" @ONLY)
-
---
-GitLab
-
diff --git a/kdevelop-python.spec b/kdevelop-python.spec
index 2581ba1..ac1a527 100644
--- a/kdevelop-python.spec
+++ b/kdevelop-python.spec
@@ -1,17 +1,14 @@
%global upstream_name kdev-python
Name: kdevelop-python
-Version: 26.04.3
-Release: 3%{?dist}
+Version: 26.07.90
+Release: 1%{?dist}
Summary: KDevelop Python language support
License: CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND MIT
URL: https://kdevelop.org/
Source0: https://download.kde.org/%{stable_kf6}/release-service/%{version}/src/%{upstream_name}-%{version}.tar.xz
-# Fixes to build against python 3.15
-Patch0: 65.patch
-
# kdevelop depends on qt6-qtwebengine, which is only available on some arches
ExclusiveArch: %{qt6_qtwebengine_arches}
@@ -66,14 +63,17 @@ appstream-util validate-relax --nonet %{buildroot}%{_kf6_metainfodir}/org.kde.kd
%license LICENSES/*
%doc DESIGN INSTALL README README.packagers
%{_kf6_libdir}/libkdevpython*.so
-%{_kf6_qtplugindir}/kdevplatform/65/kdevpdb.so
-%{_kf6_qtplugindir}/kdevplatform/65/kdevpythonlanguagesupport.so
+%{_kf6_qtplugindir}/kdevplatform/*/kdevpdb.so
+%{_kf6_qtplugindir}/kdevplatform/*/kdevpythonlanguagesupport.so
%{_kf6_datadir}/kdevappwizard/templates/*.tar.bz2
%{_kf6_datadir}/kdevpythonsupport/
%{_kf6_metainfodir}/org.kde.kdev-python.metainfo.xml
%{_kf6_datadir}/qlogging-categories6/kdevpythonsupport.categories
%changelog
+* Mon Aug 03 2026 Steve Cossette <farchord@gmail.com> - 26.07.90-1
+- 26.07.90
+
* Wed Jul 22 2026 Python Maint <python-maint@redhat.com> - 26.04.3-3
- Rebuilt for Python 3.15.0b4 ABI change
diff --git a/sources b/sources
index ddcef13..4f22b06 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (kdev-python-26.04.3.tar.xz) = de9121ef720eb1e72c46a865c5281b6320ae66440db4bb3bfcb74ef409eaa8cf27962aa6dce6eebee7a82ad79fcc91e05ff6c49daab438f2685fec1fad549309
+SHA512 (kdev-python-26.07.90.tar.xz) = 064e037e6b50f80bc4241bfb4dd83b41ebe50d2cae4a74780bcb429e96a0648c726b0a657eb4f741091dd78b3dad4465e2c237134aab3fd1e4480f46de783995
reply other threads:[~2026-08-03 12:17 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178575944123.1.10344397110728208970.rpms-kdevelop-python-8c532d8fa7e9@fedoraproject.org \
--to=farchord@gmail.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox