0.3.x - #29
Open
demonkillerr wants to merge 27 commits into
Open
Conversation
…version reference
…:checkForUpdates() now runs this on a std::jthread member instead of QtConcurrent::run
…_killHelperThread
…it to the new one to prevent data race
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This release aims to solve some of the housekeeping tasks ahead of 0.4.x. It renames the project to Explorer, modernizes the build, replaces logging, enforces formatting, adds a test suite, and cleans up a couple of real blocking/cancellation bugs. This PR aims to work on #19 and #20 along with other things.
Few of the things this covers is as follows:
Find more information below:
Rename application:
This is the project wide effort to rename applications after HPC clusters.
Icon=actually resolves post-installBuild system modernization
Q_INIT_RESOURCE(resources)in main.cppVersioning
configure_file()from the root VERSION file (the project's single source of truth) into a generatedversion.hLogging overhaul
spdlog::info("{}", msg)), never as the format string itself, so arbitrary content (pacman/AUR output, JSON) containing {/} can't be misparsed as a fmt placeholderclang-format enforcement
Test infrastructure
AurHelper::parseAurPackage(AUR JSON parsing), newPacmanConf::isMultilibEnabled/isChaoticAurEnabled(pacman.conf section parsing, pulled out of SettingsWidget), newparseOperationProgress(pacman/yay/paru output parsing, pulled out of PackageDetailsDialog)std::jthread+ non blocking cooperative cancellationAurHelper::checkAurUpdates()now takes astd::stop_token, checked both between packages and against an in-flight AUR RPC request (viastd::stop_callbackaborting the pending reply). The AUR RPC has no client-side timeout, so this mattersstd::jthreadmember instead ofQtConcurrent::run, so a repeat click or widget teardown cancels an in-progress check instead of leaving it orphaned. Verified live (not just reviewed): completed a check successfully headless, and separately quit mid-check and confirmed shutdown completed in ~1.2s instead of hanging on the network callPackageManager::cancelRunningOperation(): the pkexec pkill calls that actually kills the privileged pacman/yay/paru process (as opposed to just the local wrapper) now runs on a backgroundstd::jthreadoverlapping with the existing wait instead of blocking the GUI thread in front of it, cutting worst-case cancel latency roughly in half