JuliaLang / JuliaLang/juliaup

Remove more stuff at uninstall

Open
#47 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
1.3k
Forks
116
Avg merge
12h 34m
Merged PRs (30d)
19

Description

If we could get the `customInstallActions` permission for our store submission, we could use [this](https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-desktop6-custominstall) to remove arbitrary stuff at uninstall, for example all the Julia versions that were installed with `juliaup`.

In my mind this would make most sense as part of a more generic redesign of storage locations. At the moment, a Julia depot is really a mix of stuff that in an ideal world would automatically be uninstalled when Julia is uninstalled, and stuff that should stay around even after Julia is uninstalled. In particular, it seems to me that in an ideal world, the following things would all be uninstalled with Julia itself: `~/.julia/packages`, `~/.julia/compiled`, `~/.julia/registries` (at least if they are really, truly read-only cache copies from a server), `~/.julia/artifacts` and `~/.julia/juliaup`. I think ideally all those things would actually no longer be stored in `~/.julia`, but instead in say `%APPDATA%/Julia`, and then that folder gets removed at uninstall. The principle then would be that everything in `~/.julia` stays around at uninstall, but we have a new location for files that get removed when Julia is uninstalled. At some level this would be a split of the Julia depot system into two different kinds of files.

I think at the end of the day this change would have to happen in Julia itself first.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked Windows customInstallActions documentation and the Julia depot and storage design; no repository files or tests are named. Determine whether the storage split belongs in Julia or juliaup, define which paths are removed at uninstall, and establish acceptance criteria for the redesign before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.