Repository navigation
Refactor/overhaul - #41
Draft
michadasis wants to merge 15 commits into
Draft
michadasis wants to merge 15 commits into
michadasis wants to merge 15 commits into
Conversation
michadasis
force-pushed
the
refactor/overhaul
branch
from
October 11, 2026 22:59
da87e45 to
ebf81a6
Compare
michadasis
force-pushed
the
refactor/overhaul
branch
from
October 11, 2026 22:59
ebf81a6 to
2d9d0d3
Compare
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.
Refactors the install logic and fixes several bugs found along the way. Builds with no warnings (
-Wall -Wextra -Wpedantic, treated as errors in CI), and all unit tests pass on Qt 6.12.Refactoring
PackageManagerinterface hasPacmanBackendandAptBackendimplementations. Each backend holds its repo check, install command, environment and progress parsing. This replaces the four near-identical branches inread_package_listand the"pacman"/"apt"string checks that were spread across the code.unibackpack_core, so the tests can link against it.pacman_list.txtandapt_list.txtare replaced by a singlepackages.jsonthat lists each tool once with its package name for each manager. The current lists convert one-to-one. FreeCAD and Wireshark still have only a pacman entry, as before.MainWindowsplit up. The 100-line click handler is now split into smaller functions, the"__back__"list row is replaced by a real Back button, and the package manager is detected once at startup.universities.json. Before,lupdatewould mark the hand-added.tsentries as obsolete.tr().applyTranslatoris nowutils/language.*and handles any language, not just Greek.resources/lists/instead of being listed by hand inresources.qrc.Bug fixes
pkexec(orapt-cache/pacman) failed to start, the UI stayed disabled forever. Failures now always end the run with an error message.processEvents(). All packages are now checked in one non-blocking call.pkexecclears the environment, soDEBIAN_FRONTENDnever reached apt. Commands now run throughenv, withLC_ALL=Cso the output can be parsed on non-English systems. The polkit prompt will now show/usr/bin/envas the program. A small helper with its own polkit.policywould fix that, and is left for a follow-up PR.apt-get updatebeforeapt-get install, in the samepkexeccall so the user authorizes once. Without it, a system whose lists are out of date could fail with 404 errors while downloading. The update only refreshes the lists and upgrades nothing. pacman is unchanged: it still installs with-Sand warns the user to runpacman -Syuthemselves first.--force-confdef --force-confold. Before, upgrading a package with a locally modified config file made dpkg wait for an answer forever, while the window could not be closed.Downloaderno longer shows dialogs itself.setDesktopFileNamenow matchesunibackpack.desktop.<language>and<university>were read as HTML tags and disappeared from the generated docs. They are now escaped.Build, CI and packaging
universities.json.cteston Ubuntu (apt, Qt 6.4) and in an Arch Linux container (pacman), not just cppcheck. It also checks the install layout on Arch.-Wall -Wextra -Wpedantic -Werror(theUNIBACKPACK_WERRORCMake option, off by default for local builds).src/,include/andtests/, with Qt's macros understood (--library=qt).docs-htmlartifact. Missing@param/@returnare not reported, because most functions are documented in one line that names their parameters with@p..desktopfile and icon, so the PKGBUILD'spackage()is a singlecmake --install, and it runs the tests incheck().Qt6::Networkdependency, dead declarations, stale includes and the empty menu bar are removed..editorconfig.Testing
ctest)lupdatefinds all 34 strings with no obsolete entries, all translated to Greekapt-get update, progress, success and failure