Repository navigation
Conversation
previous filter skipped all installed packages, preventing --needed from upgrading them.. now only packages satisfied by a different provider are excluded, preserving the upgrade path
…kage uses re.split to extract the base name for comparison, so versioned dependencies (e.g. "caelestia-shell>=2.5.0") are handled correctly Co-authored-by: dxnnv <danny@atropos.cc>
dxnnv
left a comment
There was a problem hiding this comment.
Issues with correctness seem to be resolved, the only thing I can see now is an optimization benefit from batching.
Sorry for the third requested change 😅—would just commit this directly but wanted to propose it in case you had any feedback you wanted to share prior.
Co-authored-by: Danny Atropos <danny@atropos.cc>
|
all threads resolved, ready for re review when you get a chance |
|
Sorry for dropping this after all the reviews and fixes, but with the CLI rewrite in progress, most prs (basically anything that has to do with the python code) aren't really relevant anymore since all python will be replaced. I appreciate the effort though! |
I also figured this wouldn't be merged before the rewrite, but the concept is applicable for the CLI regardless of language, so it should still be incorporated in a revised version for C++. Mainly kept this and have been making changes to establish the logic flow, as that's the primary change here for the installation method itself. |
if we're running caelestia-shell-git or caelestia-cli-git instead of the stable tagged versions,
caelestia installbreaks because pacman hits a file conflict and prompts to remove/replace the -git package, or it just aborts if --noconfirmthis also blocks the supported way to toggle optional components (using --enable-components / --disable-components flags), or by running
caelestia installagainArchInstaller.install() passes all names to
yay -S --neededbut pacman's --needed checks the literal package name in the local db and not Provides, so e.g. we have caelestia-shell-git installed, as far as it' s concerned "caelestia-shell" isn't installed (not recognizing caelestia-shell-git), yay then builds it, and pacman conflictsthe installer class already has query() which uses pacman -Q (resolves Provides) but right now it's only called after the install step for name resolution, never before to skip
this PR fixes the issue by filtering the list before handing it to the AUR helper, the resolved line still iterates the full packages list so DotsState records the real installed name e.g. caelestia-shell-git, not caelestia-shell