keepassxreboot / keepassxc

KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
https://keepassxc.org/
Other
20.01k stars 1.42k forks source link

Refactor: move to simple default builds #11003

Open droidmonkey opened 3 days ago

droidmonkey commented 3 days ago

This change also cleans up the main CMakeLists.txt by re-arranging some content and placing macros into a dedicated include file. The minimum CMake version was bumped to 3.16.0 to conform to our minimum Ubuntu support of Focal (20.04). This also allows us to default to C++20, we fall back to C++17 for Qt versions less than 5.15.0 due to lack of support.

Lastly this change removes the KEEPASSXC_BUILD_TYPE="PreRelease" which is never used. We only support "Snapshot" and "Release" now.

Testing strategy

Tested locally and with existing CI

Type of change

michaelk83 commented 3 days ago

Why is KeeShare considered basic? It would argue that it's an advanced niche feature. It's not needed for most single-user use, and it requires network access.

I would also argue that Secret Service is rather basic for Linux users, as it's the main method for client applications to store and retrieve their credentials. Though I agree that it's less basic than Auto-Type and Yubikey support. And I agree that it can be grouped with SSH Agent and Browser integration, since they all add an IPC layer.

I would group these features like so:

(Technically, browser integration is also rather useless without network access, but as I understand the network access isn't done by KPXC itself.)

varjolintu commented 3 days ago

Browser Integration still requires including networking to the code (even if it doesn't make any connections outside, it creates local sockets), so maybe it wouldn't fit to "no networking" category.

droidmonkey commented 3 days ago

KPXC_FEATURE_NETWORK is specifically to disable TCP/IP network traffic. So if there are guards in browser using this flag then those guards need to be removed.

droidmonkey commented 3 days ago

Why is KeeShare considered basic? It would argue that it's an advanced niche feature. It's not needed for most single-user use, and it requires network access.

It absolutely does not require network access.

KeeShare is going to be rebranded as simply "Sharing" when it gets refactored.

Don't get hung up on the Basic/Advanced wording, thought of a couple different buckets but they were all too much.

codecov[bot] commented 3 days ago

Codecov Report

Attention: Patch coverage is 74.07407% with 21 lines in your changes missing coverage. Please review.

Project coverage is 63.67%. Comparing base (166a371) to head (2569be3).

Files Patch % Lines
src/gui/reports/ReportsWidgetHibp.cpp 16.67% 5 Missing :warning:
src/core/Tools.cpp 0.00% 4 Missing :warning:
src/gui/DatabaseWidget.cpp 42.86% 4 Missing :warning:
src/gui/osutils/nixutils/NixUtils.cpp 50.00% 3 Missing :warning:
src/gui/EditWidgetIcons.cpp 60.00% 2 Missing :warning:
src/gui/MainWindow.cpp 90.48% 2 Missing :warning:
src/gui/reports/ReportsDialog.cpp 50.00% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #11003 +/- ## =========================================== - Coverage 63.77% 63.67% -0.11% =========================================== Files 362 361 -1 Lines 44755 44572 -183 =========================================== - Hits 28542 28377 -165 + Misses 16213 16195 -18 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.