Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revisit uninstallers #642

Open
2 tasks done
jaimergp opened this issue Feb 1, 2023 · 4 comments
Open
2 tasks done

Revisit uninstallers #642

jaimergp opened this issue Feb 1, 2023 · 4 comments
Assignees
Labels
type::feature request for a new feature or capability

Comments

@jaimergp
Copy link
Contributor

jaimergp commented Feb 1, 2023

Checklist

  • I added a descriptive title
  • I searched open requests and couldn't find a duplicate

What is the idea?

Research the best way to implement uninstallers. Currently, only Windows provides some, and they do not do all tasks in the conda-canonical way:

The uninstallation logic is not present on Linux or macOS either.

Why is this needed?

Better uninstallation processes.

What should happen?

The system should be left in a functional state, with no lingering files or configuration.

Additional Context

Uninstallation times have been previously reported as slow, so we might need to balance speed and correctness. See #168. It's mostly UI related, so as long as the output is kept in check, we should be ok. Nevertheless, timings should be analyzed.

@jaimergp jaimergp added the type::feature request for a new feature or capability label Feb 1, 2023
@marcoesters
Copy link
Contributor

A viable path for Linux and MacOS uninstallers could be to add that feature to conda-standalone. menuinst has gotten pretty good about removing its shortcuts and the standalone binary can be used to run conda init --reverse.

Essentially, it could try and remove the base environment using default conda commands and clean up whatever needs to be cleaned up afterwards. The user would then just have to remove the standalone binary in the end.

@jaimergp jaimergp self-assigned this Jun 18, 2024
@marcoesters
Copy link
Contributor

I just found that the uninstaller won't remove shortcuts for packages created in a new environment on Windows since the uninstaller doesn't know about theses prefixes. The solution here is to remove them for each environment it can find, but recursive searches in NSIS aren't ideal.

Python/conda-standalone using pathlib's glob functionality would be a much better tool.

@jaimergp
Copy link
Contributor Author

jaimergp commented Aug 7, 2024

Aren't we doing conda remove --all for those?

@marcoesters
Copy link
Contributor

We only do conda remove --all for environments that were shipped with installers: https://github.com/conda/constructor/blob/main/constructor/winexe.py#L195-L210

This does not account for user-created environments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type::feature request for a new feature or capability
Projects
Status: No status
Development

No branches or pull requests

2 participants