Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-baloo for openSUSE:Factory 
checked in at 2025-07-14 10:48:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-baloo (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-baloo.new.7373 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-baloo"

Mon Jul 14 10:48:09 2025 rev:17 rq:1292112 version:6.16.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-baloo/kf6-baloo.changes      2025-06-18 
15:55:47.355330023 +0200
+++ /work/SRC/openSUSE:Factory/.kf6-baloo.new.7373/kf6-baloo.changes    
2025-07-14 10:48:44.837331559 +0200
@@ -1,0 +2,15 @@
+Mon Jul  7 07:24:31 UTC 2025 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.16.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.16.0
+- Changes since 6.15.0:
+  * Update dependency version to 6.16.0
+  * [termgenerator] Avoid some QString is_shared/detach checks
+  * [termgeneratortest] Add benchmark for termlist
+  * Use data driven tests in more places
+  * [PostingDB] Reduce code duplication, remove DBPostingIterator
+  * Update version to 6.16.0
+
+-------------------------------------------------------------------

Old:
----
  baloo-6.15.0.tar.xz
  baloo-6.15.0.tar.xz.sig

New:
----
  baloo-6.16.0.tar.xz
  baloo-6.16.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kf6-baloo.spec ++++++
--- /var/tmp/diff_new_pack.e0Q4vf/_old  2025-07-14 10:48:45.785370969 +0200
+++ /var/tmp/diff_new_pack.e0Q4vf/_new  2025-07-14 10:48:45.785370969 +0200
@@ -19,11 +19,11 @@
 %define qt6_version 6.8.0
 
 %define rname baloo
-# Full KF6 version (e.g. 6.15.0)
+# Full KF6 version (e.g. 6.16.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-baloo
-Version:        6.15.0
+Version:        6.16.0
 Release:        0
 Summary:        Framework for searching and managing metadata
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-3.0-only

++++++ baloo-6.15.0.tar.xz -> baloo-6.16.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/baloo-6.15.0/CMakeLists.txt 
new/baloo-6.16.0/CMakeLists.txt
--- old/baloo-6.15.0/CMakeLists.txt     2025-06-06 15:28:27.000000000 +0200
+++ new/baloo-6.16.0/CMakeLists.txt     2025-07-04 17:09:01.000000000 +0200
@@ -1,8 +1,8 @@
 # set minimum version requirements
 cmake_minimum_required(VERSION 3.16)
 set(REQUIRED_QT_VERSION 6.7.0)
-set(KF_VERSION "6.15.0") # handled by release scripts
-set(KF_DEP_VERSION "6.15.0") # handled by release scripts
+set(KF_VERSION "6.16.0") # handled by release scripts
+set(KF_DEP_VERSION "6.16.0") # handled by release scripts
 
 # set up project
 project(Baloo VERSION ${KF_VERSION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/baloo-6.15.0/autotests/unit/engine/CMakeLists.txt 
new/baloo-6.16.0/autotests/unit/engine/CMakeLists.txt
--- old/baloo-6.15.0/autotests/unit/engine/CMakeLists.txt       2025-06-06 
15:28:27.000000000 +0200
+++ new/baloo-6.16.0/autotests/unit/engine/CMakeLists.txt       2025-07-04 
17:09:01.000000000 +0200
@@ -19,11 +19,21 @@
     idfilenamedbtest
     mtimedbtest
 
-    termgeneratortest
-
     # Query
     andpostingiteratortest
     orpostingiteratortest
     postingiteratortest
     phraseanditeratortest
 )
+
+add_executable(termgeneratortest_bin
+    termgeneratortest.cpp
+)
+target_link_libraries(termgeneratortest_bin
+    Qt6::Test
+    KF6::BalooEngine
+)
+ecm_mark_as_test(termgeneratortest_bin)
+
+# Run the benchmarks with just 1 iteration during CI, so we known it works
+add_test(NAME termgeneratortest COMMAND termgeneratortest_bin "-iterations" 
"1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/baloo-6.15.0/autotests/unit/engine/termgeneratortest.cpp 
new/baloo-6.16.0/autotests/unit/engine/termgeneratortest.cpp
--- old/baloo-6.15.0/autotests/unit/engine/termgeneratortest.cpp        
2025-06-06 15:28:27.000000000 +0200
+++ new/baloo-6.16.0/autotests/unit/engine/termgeneratortest.cpp        
2025-07-04 17:09:01.000000000 +0200
@@ -20,14 +20,11 @@
 
 private Q_SLOTS:
     void testWordBoundaries();
-    void testWordBoundariesCJK();
-    void testWordBoundariesCJKMixed();
-    void testUnderscoreWord();
-    void testUnderscore_splitting();
-    void testAccentCharacters();
+    void testWordBoundaries_data();
+    void benchmarkWordBoundaries();
+    void benchmarkWordBoundaries_data();
     void testUnicodeCompatibleComposition();
     void testUnicodeLowering();
-    void testEmails();
     void testWordPositions();
     void testWordPositionsCJK();
     void testNumbers();
@@ -50,75 +47,59 @@
 
 void TermGeneratorTest::testWordBoundaries()
 {
-    QString str = QString::fromLatin1("The quick (\"brown\") 'fox' can't jump 
32.3 feet, right? No-Wrong;xx.txt");
+    QFETCH(QString, input);
+    QFETCH(QList<QByteArray>, expectedWords);
 
-    QList<QByteArray> words = allWords(str);
-
-    QList<QByteArray> expectedWords;
-    expectedWords << QByteArray("32.3") << QByteArray("brown") << 
QByteArray("can't") << QByteArray("feet") << QByteArray("fox") << 
QByteArray("jump")
-                  << QByteArray("no") << QByteArray("quick") << 
QByteArray("right") << QByteArray("the") << QByteArray("txt") << 
QByteArray("wrong")
-                  << QByteArray("xx");
+    QList<QByteArray> words = allWords(input);
 
     QCOMPARE(words, expectedWords);
 }
 
-void TermGeneratorTest::testWordBoundariesCJK()
+namespace
 {
-    QString str = QString::fromUtf8("你");
-
-    QList<QByteArray> words = allWords(str);
-    QList<QByteArray> expectedWords;
-    expectedWords << QByteArray("你");
-
-    QCOMPARE(words, expectedWords);
-}
-
-void TermGeneratorTest::testWordBoundariesCJKMixed()
+void addData_WordBoundaries()
 {
-    // This is a English and CJK mixed string.
-    QString str = QString::fromUtf8("hello world!你好世界貴方元気켐ㅇㄹ?☺");
+    using namespace Qt::Literals::StringLiterals;
 
-    QList<QByteArray> words = allWords(str);
-    QList<QByteArray> expectedWords;
-    expectedWords << QByteArray("hello") << QByteArray("world") << 
QByteArray("☺") << QByteArray("你好世界貴方元気") << QByteArray("켐ᄋᄅ");
+    QTest::addColumn<QString>("input");
+    QTest::addColumn<QList<QByteArray>>("expectedWords");
 
-    QCOMPARE(words, expectedWords);
+    // clang-format off
+    QTest::newRow("latin sentence")   << u"The quick (\"brown\") 'fox' can't 
jump 32.3 feet, right? No-Wrong;xx.txt"_s
+                                      << QList<QByteArray>{"32.3", "brown", 
"can't", "feet", "fox", "jump", "no", "quick", "right", "the", "txt", "wrong", 
"xx"};
+    QTest::newRow("CJK")              << u"你"_s
+                                      << QList<QByteArray>{"你"};
+    QTest::newRow("CJK mixed")        << u"hello world!你好世界貴方元気켐ㅇㄹ?☺"_s
+                                      << QList<QByteArray>{"hello", "world", 
"☺", "你好世界貴方元気", "켐ᄋᄅ"};
+    QTest::newRow("strip underscore") << u"_plant"_s
+                                      << QList<QByteArray>{"plant"};
+    QTest::newRow("split underscore") << u"Hello_Howdy"_s
+                                      << QList<QByteArray>{"hello", "howdy"};
+    QTest::newRow("Accented")         << u"Como está Kûg"_s
+                                      << QList<QByteArray>{"como", "esta", 
"kug"};
+    QTest::newRow("Mail address")     << u"m...@vhanda.in"_s
+                                      << QList<QByteArray>{"in", "me", 
"vhanda"};
+    // clang-format on
 }
+} // namespace <anonymous>
 
-void TermGeneratorTest::testUnderscoreWord()
+void TermGeneratorTest::testWordBoundaries_data()
 {
-    QString str = QString::fromLatin1("_plant");
-
-    QList<QByteArray> words = allWords(str);
-
-    QList<QByteArray> expectedWords;
-    expectedWords << QByteArray("plant");
-
-    QCOMPARE(words, expectedWords);
+    addData_WordBoundaries();
 }
 
-void TermGeneratorTest::testUnderscore_splitting()
+void TermGeneratorTest::benchmarkWordBoundaries()
 {
-    QString str = QString::fromLatin1("Hello_Howdy");
-
-    QList<QByteArray> words = allWords(str);
+    QFETCH(QString, input);
 
-    QList<QByteArray> expectedWords;
-    expectedWords << QByteArray("hello") << QByteArray("howdy");
-
-    QCOMPARE(words, expectedWords);
+    QBENCHMARK {
+        TermGenerator::termList(input);
+    }
 }
 
-void TermGeneratorTest::testAccentCharacters()
+void TermGeneratorTest::benchmarkWordBoundaries_data()
 {
-    QString str = QString::fromUtf8("Como est\xC3\xA1 K\xC3\xBBg"); // "Como 
está Kûg"
-
-    QList<QByteArray> words = allWords(str);
-
-    QList<QByteArray> expectedWords;
-    expectedWords << QByteArray("como") << QByteArray("esta") << 
QByteArray("kug");
-
-    QCOMPARE(words, expectedWords);
+    addData_WordBoundaries();
 }
 
 void TermGeneratorTest::testUnicodeCompatibleComposition()
@@ -144,18 +125,6 @@
     QCOMPARE(words, {QByteArray("hedge")});
 }
 
-void TermGeneratorTest::testEmails()
-{
-    QString str = QString::fromLatin1("m...@vhanda.in");
-
-    QList<QByteArray> words = allWords(str);
-
-    QList<QByteArray> expectedWords;
-    expectedWords << QByteArray("in") << QByteArray("me") << 
QByteArray("vhanda");
-
-    QCOMPARE(words, expectedWords);
-}
-
 void TermGeneratorTest::testWordPositions()
 {
     Document doc;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/baloo-6.15.0/src/engine/postingdb.cpp 
new/baloo-6.16.0/src/engine/postingdb.cpp
--- old/baloo-6.15.0/src/engine/postingdb.cpp   2025-06-06 15:28:27.000000000 
+0200
+++ new/baloo-6.16.0/src/engine/postingdb.cpp   2025-07-04 17:09:01.000000000 
+0200
@@ -5,10 +5,11 @@
     SPDX-License-Identifier: LGPL-2.1-or-later
 */
 
-#include "enginedebug.h"
 #include "postingdb.h"
+#include "enginedebug.h"
 #include "orpostingiterator.h"
 #include "postingcodec.h"
+#include "vectorpostingiterator.h"
 
 using namespace Baloo;
 
@@ -136,17 +137,6 @@
     return terms;
 }
 
-class DBPostingIterator : public PostingIterator {
-public:
-    DBPostingIterator(void* data, uint size);
-    quint64 docId() const override;
-    quint64 next() override;
-
-private:
-    const QVector<quint64> m_vec;
-    int m_pos;
-};
-
 PostingIterator* PostingDB::iter(const QByteArray& term)
 {
     MDB_val key;
@@ -160,36 +150,8 @@
         return nullptr;
     }
 
-    return new DBPostingIterator(val.mv_data, val.mv_size);
-}
-
-//
-// Posting Iterator
-//
-DBPostingIterator::DBPostingIterator(void* data, uint size)
-    : m_vec(PostingCodec().decode(QByteArray(static_cast<char*>(data), size)))
-    , m_pos(-1)
-{
-}
-
-quint64 DBPostingIterator::docId() const
-{
-    if (m_pos < 0 || m_pos >= m_vec.size()) {
-        return 0;
-    }
-
-    return m_vec[m_pos];
-}
-
-quint64 DBPostingIterator::next()
-{
-    if (m_pos >= m_vec.size() - 1) {
-        m_pos = m_vec.size();
-        return 0;
-    }
-
-    m_pos++;
-    return m_vec[m_pos];
+    auto values = QByteArray::fromRawData(static_cast<char *>(val.mv_data), 
val.mv_size);
+    return new VectorPostingIterator(PostingCodec().decode(values));
 }
 
 template <typename Validator>
@@ -219,7 +181,8 @@
             break;
         }
         if (validate(arr)) {
-            termIterators << new DBPostingIterator(val.mv_data, val.mv_size);
+            auto values = QByteArray::fromRawData(static_cast<char 
*>(val.mv_data), val.mv_size);
+            termIterators << new 
VectorPostingIterator(PostingCodec().decode(values));
         }
         rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/baloo-6.15.0/src/engine/termgenerator.cpp 
new/baloo-6.16.0/src/engine/termgenerator.cpp
--- old/baloo-6.15.0/src/engine/termgenerator.cpp       2025-06-06 
15:28:27.000000000 +0200
+++ new/baloo-6.16.0/src/engine/termgenerator.cpp       2025-07-04 
17:09:01.000000000 +0200
@@ -66,7 +66,7 @@
     QTextBoundaryFinder bf(QTextBoundaryFinder::Word, text);
     for (; bf.position() != -1; bf.toNextBoundary()) {
         int end = bf.position();
-        while (start < end && isSkipChar(text[start])) {
+        while (start < end && isSkipChar(text.at(start))) {
             start++;
         }
         if (end == start) {
@@ -83,7 +83,7 @@
 
         // Also commit term if end-of-text is reached or when we find
         // any punctuation
-        if (!commit & (end == text.size() || isSkipChar(text[end]))) {
+        if (!commit & (end == text.size() || isSkipChar(text.at(end)))) {
             commit = true;
         }
 

Reply via email to