Skip to content

Commit 13ebffc

Browse files
authored
V2025.9.0 (#84)
* feat: Code cleanup * feat: Update vcpkg * feat: More cleanup/rewrite * feat: Better JsonFileBase * feat: `System` cleanup * fix: Build * fix: Windows tests * feat: improve manuals * feat: Remove socket * fix: Spelling
1 parent 9b6180c commit 13ebffc

File tree

126 files changed

+2852
-3944
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+2852
-3944
lines changed

.github/workflows/linux.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ jobs:
5151
with:
5252
pkgs: boost-json cpr gettext-libintl glib gtest libsecret maddy
5353
triplet: ${{ matrix.variant.triplet }}
54-
revision: 4103f46cb1ebb69ef5511cab840ecea0f441fbd7
54+
revision: b1b19307e2d2ec1eefbdb7ea069de7d4bcd31f01
5555
token: ${{ github.token }}
56-
cache-key: ${{ matrix.variant.triplet }}-4103f46cb1ebb69ef5511cab840ecea0f441fbd7
56+
cache-key: ${{ matrix.variant.triplet }}-b1b19307e2d2ec1eefbdb7ea069de7d4bcd31f01
5757
- name: "Build"
5858
working-directory: ${{github.workspace}}/build
5959
run: |

.github/workflows/macos.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ jobs:
3131
with:
3232
pkgs: boost-json cpr gettext-libintl glib gtest maddy
3333
triplet: arm64-osx
34-
revision: 4103f46cb1ebb69ef5511cab840ecea0f441fbd7
34+
revision: b1b19307e2d2ec1eefbdb7ea069de7d4bcd31f01
3535
token: ${{ github.token }}
36-
cache-key: "arm64-osx-4103f46cb1ebb69ef5511cab840ecea0f441fbd7"
36+
cache-key: "arm64-osx-b1b19307e2d2ec1eefbdb7ea069de7d4bcd31f01"
3737
- name: "Build"
3838
working-directory: ${{github.workspace}}/build
3939
run: |

.github/workflows/windows.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ jobs:
3838
with:
3939
pkgs: boost-json cpr gettext-libintl gtest maddy sqlcipher
4040
triplet: ${{ matrix.variant.triplet }}
41-
revision: 4103f46cb1ebb69ef5511cab840ecea0f441fbd7
41+
revision: b1b19307e2d2ec1eefbdb7ea069de7d4bcd31f01
4242
token: ${{ github.token }}
43-
cache-key: ${{ matrix.variant.triplet }}-4103f46cb1ebb69ef5511cab840ecea0f441fbd7
43+
cache-key: ${{ matrix.variant.triplet }}-b1b19307e2d2ec1eefbdb7ea069de7d4bcd31f01
4444
- name: "Build"
4545
working-directory: ${{github.workspace}}/build
4646
run: |

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,40 @@
11
# Changelog
22

3+
## 2025.9.0
4+
### Breaking Changes
5+
#### App
6+
- Removed `DataFileBase`
7+
- Removed `DataFileManager`
8+
- Moved `AppInfo::convertUrlMapToVector()` to `Helpers::CodeHelpers` namespace
9+
- Moved `App::CancellationToken` to `Helpers` namespace
10+
#### Database
11+
- Rewrote all classes with a more modern interface
12+
- Renamed all classes with `Sqlite` prefix
13+
#### Keyring
14+
- Rewrote `Keyring` class with a more modern interface
15+
- Moved `SystemCredentials` to `System::Credentials` namespace
16+
- Removed `CredentialCheckStatus` enum
17+
- Removed `PasswordStrength` module
18+
#### Network
19+
- Removed `DNS` module
20+
- Removed `Socket` and related classes
21+
#### Taskbar
22+
- Removed module
23+
### New APIs
24+
#### Helpers
25+
- Added `DEFINE_ENUM_FLAGS()` macro to `CodeHelpers` namespace
26+
- Added `IJsonSerializable` interface
27+
- Added `JsonFileBase` to replace `DataFileBase`
28+
- Added `quote()` function to `StringHelpers` namespace
29+
#### Keyring
30+
- Added `Space` value to `PasswordContent`
31+
#### System
32+
- Added `execAsync()` function to `Environment` namespace
33+
### Fixes
34+
- Marked functions and methods with `noexcept` where applicable
35+
#### System
36+
- Fixed `Process`'s handling of quoted strings
37+
338
## 2025.8.0
439
### Breaking Changes
540
None

CMakeLists.txt

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ endif()
2020
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
2121

2222
#libnick Definition
23-
project ("libnick" LANGUAGES C CXX VERSION 2025.8.0 DESCRIPTION "A cross-platform base for native Nickvision applications.")
23+
project ("libnick" LANGUAGES C CXX VERSION 2025.9.0 DESCRIPTION "A cross-platform base for native Nickvision applications.")
2424
include(CMakePackageConfigHelpers)
2525
include(GNUInstallDirs)
2626
include(CTest)
@@ -36,14 +36,12 @@ if(NOT WIN32)
3636
endif()
3737
add_library (${PROJECT_NAME}
3838
"include/app/appinfo.h"
39-
"include/app/cancellationtoken.h"
40-
"include/app/datafilebase.h"
41-
"include/app/datafilemanager.h"
4239
"include/app/windowgeometry.h"
43-
"include/database/sqlcontext.h"
44-
"include/database/sqldatabase.h"
45-
"include/database/sqlstatement.h"
46-
"include/database/sqlvalue.h"
40+
"include/database/sqlite.h"
41+
"include/database/sqlitedatabase.h"
42+
"include/database/sqlitefunctioncontext.h"
43+
"include/database/sqlitestatement.h"
44+
"include/database/sqlitevalue.h"
4745
"include/events/event.h"
4846
"include/events/eventargs.h"
4947
"include/events/parameventargs.h"
@@ -54,33 +52,30 @@ add_library (${PROJECT_NAME}
5452
"include/filesystem/userdirectories.h"
5553
"include/filesystem/userdirectory.h"
5654
"include/filesystem/watcherflags.h"
55+
"include/helpers/cancellationtoken.h"
5756
"include/helpers/codehelpers.h"
57+
"include/helpers/ijsonserializable.h"
58+
"include/helpers/jsonfilebase.h"
5859
"include/helpers/pairhash.h"
5960
"include/helpers/stringhelpers.h"
6061
"include/keyring/credential.h"
61-
"include/keyring/credentialcheckstatus.h"
6262
"include/keyring/keyring.h"
6363
"include/keyring/passwordcontent.h"
6464
"include/keyring/passwordgenerator.h"
65-
"include/keyring/passwordstrength.h"
66-
"include/keyring/systemcredentials.h"
6765
"include/localization/documentation.h"
6866
"include/localization/gettext.h"
69-
"include/network/addressfamily.h"
70-
"include/network/dns.h"
7167
"include/network/ipv4address.h"
7268
"include/network/macaddress.h"
7369
"include/network/networkmonitor.h"
7470
"include/network/networkstate.h"
7571
"include/network/networkstatechangedeventargs.h"
76-
"include/network/socket.h"
77-
"include/network/sockettype.h"
7872
"include/network/web.h"
7973
"include/notifications/appnotification.h"
8074
"include/notifications/notificationsenteventargs.h"
8175
"include/notifications/notificationseverity.h"
8276
"include/notifications/shellnotification.h"
8377
"include/notifications/shellnotificationsenteventargs.h"
78+
"include/system/credentials.h"
8479
"include/system/dependencysearchoption.h"
8580
"include/system/deploymentmode.h"
8681
"include/system/environment.h"
@@ -90,49 +85,42 @@ add_library (${PROJECT_NAME}
9085
"include/system/processexitedeventargs.h"
9186
"include/system/processstate.h"
9287
"include/system/suspendinhibitor.h"
93-
"include/taskbar/progressstate.h"
94-
"include/taskbar/taskbaritem.h"
9588
"include/update/updater.h"
9689
"include/update/version.h"
9790
"include/update/versiontype.h"
9891
"src/app/appinfo.cpp"
99-
"src/app/cancellationtoken.cpp"
100-
"src/app/datafilebase.cpp"
101-
"src/app/datafilemanager.cpp"
10292
"src/app/windowgeometry.cpp"
103-
"src/database/sqlcontext.cpp"
104-
"src/database/sqldatabase.cpp"
105-
"src/database/sqlstatement.cpp"
106-
"src/database/sqlvalue.cpp"
93+
"src/database/sqlitedatabase.cpp"
94+
"src/database/sqlitefunctioncontext.cpp"
95+
"src/database/sqlitestatement.cpp"
96+
"src/database/sqlitevalue.cpp"
10797
"src/filesystem/filesystemchangedeventargs.cpp"
10898
"src/filesystem/filesystemwatcher.cpp"
10999
"src/filesystem/userdirectories.cpp"
100+
"src/helpers/cancellationtoken.cpp"
110101
"src/helpers/codehelpers.cpp"
102+
"src/helpers/jsonfilebase.cpp"
111103
"src/helpers/stringhelpers.cpp"
112104
"src/keyring/credential.cpp"
113105
"src/keyring/keyring.cpp"
114106
"src/keyring/passwordgenerator.cpp"
115-
"src/keyring/passwordstrength.cpp"
116-
"src/keyring/systemcredentials.cpp"
117107
"src/localization/documentation.cpp"
118108
"src/localization/gettext.cpp"
119-
"src/network/dns.cpp"
120109
"src/network/ipv4address.cpp"
121110
"src/network/macaddress.cpp"
122111
"src/network/networkmonitor.cpp"
123112
"src/network/networkstatechangedeventargs.cpp"
124-
"src/network/socket.cpp"
125113
"src/network/web.cpp"
126114
"src/notifications/appnotification.cpp"
127115
"src/notifications/notificationsenteventargs.cpp"
128116
"src/notifications/shellnotification.cpp"
129117
"src/notifications/shellnotificationsenteventargs.cpp"
118+
"src/system/credentials.cpp"
130119
"src/system/environment.cpp"
131120
"src/system/hardwareinfo.cpp"
132121
"src/system/process.cpp"
133122
"src/system/processexitedeventargs.cpp"
134123
"src/system/suspendinhibitor.cpp"
135-
"src/taskbar/taskbaritem.cpp"
136124
"src/update/updater.cpp"
137125
"src/update/version.cpp")
138126
target_include_directories(${PROJECT_NAME} PUBLIC "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>" "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}>")
@@ -152,7 +140,7 @@ find_package(maddy CONFIG REQUIRED)
152140
target_link_libraries(${PROJECT_NAME} PUBLIC Boost::json cpr::cpr Intl::Intl maddy::maddy)
153141
if(WIN32)
154142
find_package(sqlcipher CONFIG REQUIRED)
155-
target_link_libraries(${PROJECT_NAME} PUBLIC sqlcipher::sqlcipher Advapi32 Dnsapi Dwmapi Gdiplus Kernel32 Shell32 UxTheme Ws2_32)
143+
target_link_libraries(${PROJECT_NAME} PUBLIC sqlcipher::sqlcipher Advapi32 Dnsapi Dwmapi Gdiplus Kernel32 Shell32 UxTheme)
156144
elseif(APPLE)
157145
set(THREADS_PREFER_PTHREAD_FLAG ON)
158146
find_library(CF_LIBRARY CoreFoundation)
@@ -204,11 +192,10 @@ if (BUILD_TESTING)
204192
add_executable(${PROJECT_NAME}_test
205193
"tests/codetests.cpp"
206194
"tests/databasetests.cpp"
207-
"tests/datafiletests.cpp"
208-
"tests/dnstests.cpp"
209195
"tests/eventtests.cpp"
210196
"tests/filewatchertests.cpp"
211197
"tests/hardwaretests.cpp"
198+
"tests/jsonfiletests.cpp"
212199
"tests/keyringtests.cpp"
213200
"tests/localizationtests.cpp"
214201
"tests/main.cpp"
@@ -217,9 +204,7 @@ if (BUILD_TESTING)
217204
"tests/passwordtests.cpp"
218205
"tests/processtests.cpp"
219206
"tests/stringtests.cpp"
220-
"tests/systemcredentialstests.cpp"
221207
"tests/systemtests.cpp"
222-
"tests/taskbartests.cpp"
223208
"tests/updatertests.cpp"
224209
"tests/versiontests.cpp"
225210
"tests/webtests.cpp")

Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PROJECT_NAME = "libnick"
4848
# could be handy for archiving the generated documentation or if some version
4949
# control system is used.
5050

51-
PROJECT_NUMBER = "2025.8.0"
51+
PROJECT_NUMBER = "2025.9.0"
5252

5353
# Using the PROJECT_BRIEF tag one can provide an optional one line description
5454
# for a project that appears at the top of each page and should give viewer a

0 commit comments

Comments
 (0)