Skip to content

Commit

Permalink
removed Qt <6.4 support since TinyORM v0.39.0 πŸŽ‰πŸ•Ί
Browse files Browse the repository at this point in the history
Minimum required Qt version is now v6.4!

Day of celebration is today 😁 as I can drop all QStringLiteral()-s and
can start using u""_s and ''_L1 from now, everywhere! πŸ™ŒπŸ•Ί

 - used the QVERIFY_THROWS_EXCEPTION() everywhere
  • Loading branch information
silverqx committed Aug 30, 2024
1 parent 2be0012 commit 0264aac
Show file tree
Hide file tree
Showing 27 changed files with 131 additions and 143 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ set(minRecGCCVersion 10.2)
set(minRecClangVersion 12)
set(minReqClangClVersion 14.0.3)
# Packages
set(minReqQtVersion 6.2)
set(minReqQtVersion 6.4)
# Unused
# As the range-v3 uses exact version policy in the package config file so passing version
# makes real problems on CI pipelines where different OS images can have installed
Expand Down
2 changes: 1 addition & 1 deletion TinyORM.pro
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ TEMPLATE = subdirs

# 16.10/16.11 (1929) - to support #pragma system_header
tinyMinReqMsvc = 19.29
tinyMinReqQt = 6.2
tinyMinReqQt = 6.4
tinyMinReqClangCl = 14.0.3
tinyMinRecClang = 12
tinyMinRecGCC = 10.2
Expand Down
15 changes: 8 additions & 7 deletions docs/dependencies.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
sidebar_position: 1
sidebar_label: πŸ”§ Dependencies
hide_table_of_contents: true
description: Library dependencies are MySQL Connector/C 8, range-v3 >=0.11.0, tabulate and the Qt framework version used during development was 5.15.2 and >=6.2. The code was developed on MSVC 16.9-16.11, MSVC 17.2-17.9, GCC 11.2-14.2, and Clang 11-18.
description: Library dependencies are MySQL Connector/C 8, range-v3 >=0.11.0, tabulate and the Qt framework version used during development was >=6.4. The code was developed on MSVC 16.9-16.11, MSVC 17.2-17.9, GCC 11.2-14.2, and Clang 11-18.
keywords: [c++ orm, dependencies, tinyorm]
---

Expand All @@ -11,18 +11,19 @@ import Link from '@docusaurus/Link'
# Dependencies

The code was developed on MSVC 16.9-16.11, MSVC 17.2-17.9, GCC 11.2-14.2, and Clang 11-18, so may be assumed it will work on future releases of these compilers. Minimum required ISO C++ standard is C++20.
The Qt framework version used during development was ~5.15.2~ and >=6.2.
The Qt framework version used during development was `>=6.4`.

##### Required

- minimum ISO C++ standard is C++20
- &gt;= [Qt Framework 6.2](https://www.qt.io/download-qt-installer) - [`QtCore`](https://doc.qt.io/qt/qtcore-module.html) and [`QtSql`](https://doc.qt.io/qt/qtsql-index.html) modules
- minimum ISO C++ standard is [C++20](https://en.cppreference.com/w/cpp/20) <small>[[1](https://en.wikipedia.org/wiki/C++20)]</small>
- &gt;= [Qt Framework v6.4](https://www.qt.io/download-qt-installer) - [`QtCore`](https://doc.qt.io/qt/qtcore-module.html) and [`QtSql`](https://doc.qt.io/qt/qtsql-index.html) modules
- &gt;= [range-v3 0.11.0](https://github.com/ericniebler/range-v3)
- [tabulate](https://github.com/p-ranav/tabulate)

:::danger
Support for __Qt v5.15__ was removed since __TinyORM v0.38.0__. πŸŽ‰πŸ™Œ
:::
##### Removed Support

- __Qt &lt;6.4__ since __TinyORM v0.39.0__
- __Qt v5.15__ since __TinyORM v0.38.0__ πŸŽ‰πŸ™Œ

:::warning
Be aware that the standard support for the last release of the __Qt v5__ series ended on __26. May 2023__. [[1](https://endoflife.date/qt)][[2](https://www.qt.io/blog/qt-5.15-support-ends)]
Expand Down
2 changes: 1 addition & 1 deletion qmake/TinyOrm.pri
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ include($$TINYORM_SOURCE_TREE/qmake/support/variables.pri)
# Req - requirement, throws error
# Rec - recommended, shows info message

tinyMinReqQt = 6.2
tinyMinReqQt = 6.4
# Unused
#tinyMinReqRangeV3Version = 0.12.0
#tinyMinReqTabulateVersion = 1.5.0
Expand Down
1 change: 1 addition & 0 deletions qmake/common/common.pri
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ load(private/tiny_dotenv)
# Common Configuration ( also for tests )
# ---

# Don't remove even after Qt <6.4 support is removed
versionAtLeast(QT_VERSION, 6.2.4): \
CONFIG *= c++20
else: \
Expand Down
2 changes: 1 addition & 1 deletion qmake/tom.pri
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ include($$TINYORM_SOURCE_TREE/qmake/support/variables.pri)
# Req - requirement, throws error
# Rec - recommended, shows info message

tinyMinReqQt = 6.2
tinyMinReqQt = 6.4
# Unused
#tinyMinReqRangeV3Version = 0.12.0
#tinyMinReqTabulateVersion = 1.5.0
Expand Down
14 changes: 0 additions & 14 deletions tests/TinyUtils/src/macros.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,9 @@
#ifndef TINYUTILS_MACROS_HPP
#define TINYUTILS_MACROS_HPP

#include <QtGlobal>

#ifndef sl
/*! Alias for the QStringLiteral(). */
# define sl(str) QStringLiteral(str)
#endif

#ifndef TVERIFY_THROWS_EXCEPTION
# if QT_VERSION >= QT_VERSION_CHECK(6, 3, 0)
/*! Alias for QVERIFY_THROWS_EXCEPTION() (temporary workaround for Qt v6.8). */
# define TVERIFY_THROWS_EXCEPTION(exceptiontype, ...) \
QVERIFY_THROWS_EXCEPTION(exceptiontype, __VA_ARGS__)
# else
/*! Alias for QVERIFY_EXCEPTION_THROWN(). */
# define TVERIFY_THROWS_EXCEPTION(exceptiontype, expression) \
QVERIFY_EXCEPTION_THROWN(expression, exceptiontype)
# endif
#endif

#endif // TINYUTILS_MACROS_HPP
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ void tst_SqlDatabaseManager::MySQL_addExistingConnection_ThrowException() const
QCOMPARE(Databases::driversConnectionNames().size(), 1);
QVERIFY(Databases::driversOpenedConnectionNames().isEmpty());

TVERIFY_THROWS_EXCEPTION(
QVERIFY_THROWS_EXCEPTION(
InvalidArgumentError,
Databases::createDriversConnectionTemp(
Databases::MYSQL_DRIVERS,
Expand Down Expand Up @@ -464,7 +464,7 @@ void tst_SqlDatabaseManager::MySQL_enableOptionalMetadata_ThrowException() const
u"CLIENT_OPTIONAL_RESULTSET_METADATA"_s}) // Must support option without the value (=ON/OFF; w/o value == ON)
.join(SEMICOLON));

TVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());
QVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());

// Restore
/* This will generate expected warning about the connection is still in use
Expand Down Expand Up @@ -497,7 +497,7 @@ void tst_SqlDatabaseManager::MySQL_enableOptionalMetadata_ThrowException() const
u"MYSQL_OPT_OPTIONAL_RESULTSET_METADATA=ON"_s})
.join(SEMICOLON));

TVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());
QVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());

// Restore
/* This will generate expected warning about the connection is still in use
Expand Down Expand Up @@ -541,7 +541,7 @@ void tst_SqlDatabaseManager::MySQL_disableOptionalMetadata_CLIENT_OPTIONAL() con
u"CLIENT_OPTIONAL_RESULTSET_METADATA=OFF"_s}) // Must support option without the value (=ON/OFF; w/o value == ON)
.join(SEMICOLON));

TVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());
QVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());

// Restore
/* This will generate expected warning about the connection is still in use
Expand Down Expand Up @@ -629,7 +629,7 @@ void tst_SqlDatabaseManager::MySQL_MariaDB_disableOptionalMetadata_MYSQL_OPT() c
u"MYSQL_OPT_OPTIONAL_RESULTSET_METADATA=OFF"_s})
.join(SEMICOLON));

TVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());
QVERIFY_THROWS_EXCEPTION(InvalidArgumentError, connection.open());

// Restore
/* This will generate expected warning about the connection is still in use
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1035,12 +1035,12 @@ void tst_SqlQuery_Normal::finish_And_detachFromResultSet() const
QVERIFY(users.isSelect());
QVERIFY(!users.isValid());
QCOMPARE(users.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QCOMPARE(users.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(users.executedQuery(), query);
TVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());

QVERIFY(!users.next());
QVERIFY(!users.previous());
Expand Down Expand Up @@ -1308,12 +1308,12 @@ void tst_SqlQuery_Normal::select_reExecute_SameQuery_AfterFinish() const
QVERIFY(users.isSelect());
QVERIFY(!users.isValid());
QCOMPARE(users.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QCOMPARE(users.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(users.executedQuery(), query);
TVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());

QVERIFY(!users.next());
QVERIFY(!users.previous());
Expand Down Expand Up @@ -1425,12 +1425,12 @@ void tst_SqlQuery_Normal::select_executeAnotherQuery_OnSameInstance_AfterFinish(
QVERIFY(query.isSelect());
QVERIFY(!query.isValid());
QCOMPARE(query.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, query.size());
QVERIFY_THROWS_EXCEPTION(LogicError, query.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, query.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, query.numRowsAffected());
QCOMPARE(query.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(query.executedQuery(), queryString);
TVERIFY_THROWS_EXCEPTION(LogicError, query.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, query.lastInsertId());

QVERIFY(!query.next());
QVERIFY(!query.previous());
Expand Down Expand Up @@ -1510,7 +1510,7 @@ void tst_SqlQuery_Normal::insert_update_delete() const
QVERIFY(users.isActive());
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QCOMPARE(users.numRowsAffected(), 1);
QCOMPARE(users.executedQuery(), query);

Expand Down Expand Up @@ -1576,7 +1576,7 @@ void tst_SqlQuery_Normal::insert_update_delete() const
QVERIFY(users.isActive());
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QCOMPARE(users.numRowsAffected(), 1);
QCOMPARE(users.executedQuery(), query);
}
Expand Down Expand Up @@ -1634,7 +1634,7 @@ void tst_SqlQuery_Normal::insert_update_delete() const
QVERIFY(users.isActive());
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QCOMPARE(users.numRowsAffected(), 1);
QCOMPARE(users.executedQuery(), query);
}
Expand Down Expand Up @@ -1725,12 +1725,12 @@ void tst_SqlQuery_Normal::clear() const
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
QCOMPARE(users.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, users.isEmpty());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
TVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, users.isEmpty());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QCOMPARE(users.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(users.executedQuery(), QString());
TVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());

QVERIFY(users.boundValues().isEmpty());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -856,7 +856,7 @@ void tst_SqlQuery_Prepared::select_BoundLessValues() const
QCOMPARE(boundValues.size(), 1);
QCOMPARE(boundValues, QVariantList {1});

TVERIFY_THROWS_EXCEPTION(QueryError, users.exec());
QVERIFY_THROWS_EXCEPTION(QueryError, users.exec());
}

namespace
Expand Down Expand Up @@ -1201,12 +1201,12 @@ void tst_SqlQuery_Prepared::finish_And_detachFromResultSet() const
QVERIFY(users.isSelect());
QVERIFY(!users.isValid());
QCOMPARE(users.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QCOMPARE(users.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(users.executedQuery(), query);
TVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());

// Test bound values
{
Expand Down Expand Up @@ -1496,12 +1496,12 @@ void tst_SqlQuery_Prepared::select_reExecute_SameQuery_AfterFinish() const
QVERIFY(users.isSelect());
QVERIFY(!users.isValid());
QCOMPARE(users.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QCOMPARE(users.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(users.executedQuery(), query);
TVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());

// Test bound values
QVERIFY(users.boundValues().isEmpty());
Expand Down Expand Up @@ -1619,12 +1619,12 @@ void tst_SqlQuery_Prepared::select_executeAnotherQuery_OnSameInstance_AfterFinis
QVERIFY(query.isSelect());
QVERIFY(!query.isValid());
QCOMPARE(query.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, query.size());
QVERIFY_THROWS_EXCEPTION(LogicError, query.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, query.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, query.numRowsAffected());
QCOMPARE(query.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(query.executedQuery(), queryString);
TVERIFY_THROWS_EXCEPTION(LogicError, query.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, query.lastInsertId());

// Test bound values
QVERIFY(query.boundValues().isEmpty());
Expand Down Expand Up @@ -1990,12 +1990,12 @@ void tst_SqlQuery_Prepared::
QVERIFY(users.isSelect());
QVERIFY(!users.isValid());
QCOMPARE(users.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QCOMPARE(users.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(users.executedQuery(), query);
TVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());

QVERIFY(!users.next());
QVERIFY(!users.previous());
Expand Down Expand Up @@ -2121,12 +2121,12 @@ void tst_SqlQuery_Prepared::
QVERIFY(query.isSelect());
QVERIFY(!query.isValid());
QCOMPARE(query.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, query.size());
QVERIFY_THROWS_EXCEPTION(LogicError, query.size());
// Behaves the same as the size() for SELECT queries
TVERIFY_THROWS_EXCEPTION(LogicError, query.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, query.numRowsAffected());
QCOMPARE(query.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(query.executedQuery(), queryString);
TVERIFY_THROWS_EXCEPTION(LogicError, query.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, query.lastInsertId());

// Test bound values
const auto boundValues = query.boundValues();
Expand Down Expand Up @@ -2238,7 +2238,7 @@ void tst_SqlQuery_Prepared::insert_update_delete() const
QVERIFY(users.isActive());
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QCOMPARE(users.numRowsAffected(), 1);
QCOMPARE(users.executedQuery(), query);

Expand Down Expand Up @@ -2324,7 +2324,7 @@ void tst_SqlQuery_Prepared::insert_update_delete() const
QVERIFY(users.isActive());
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QCOMPARE(users.numRowsAffected(), 1);
QCOMPARE(users.executedQuery(), query);
}
Expand Down Expand Up @@ -2402,7 +2402,7 @@ void tst_SqlQuery_Prepared::insert_update_delete() const
QVERIFY(users.isActive());
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QCOMPARE(users.numRowsAffected(), 1);
QCOMPARE(users.executedQuery(), query);
}
Expand Down Expand Up @@ -2511,12 +2511,12 @@ void tst_SqlQuery_Prepared::clear() const
QVERIFY(!users.isSelect());
QVERIFY(!users.isValid());
QCOMPARE(users.at(), BeforeFirstRow);
TVERIFY_THROWS_EXCEPTION(LogicError, users.isEmpty());
TVERIFY_THROWS_EXCEPTION(LogicError, users.size());
TVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QVERIFY_THROWS_EXCEPTION(LogicError, users.isEmpty());
QVERIFY_THROWS_EXCEPTION(LogicError, users.size());
QVERIFY_THROWS_EXCEPTION(LogicError, users.numRowsAffected());
QCOMPARE(users.numericalPrecisionPolicy(), LowPrecisionDouble);
QCOMPARE(users.executedQuery(), QString());
TVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());
QVERIFY_THROWS_EXCEPTION(LogicError, users.lastInsertId());

QVERIFY(users.boundValues().isEmpty());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ void tst_DatabaseManager::SQLite_CheckDatabaseExists_True() const
.toUtf8().constData(), );

// Verify
TVERIFY_THROWS_EXCEPTION(
QVERIFY_THROWS_EXCEPTION(
SQLiteDatabaseDoesNotExistError,
m_dm->connection(*connectionName)
.statement(sl("create table tbl1 (one varchar(10), two smallint)")));
Expand Down
Loading

0 comments on commit 0264aac

Please sign in to comment.