hpi-swa / Squot

Squeak Object Tracker - Version control for arbitrary objects, currently with Git storage
Other
61 stars 29 forks source link

Allow to unload packages #296

Open j4yk opened 3 years ago

j4yk commented 3 years ago

As a developer I want to unload a package that was already loaded in the image and turn it into an unloaded artifact (that is still tracked by the working copy, but not checked out), so that I can reduce the number of classes in my image, to save the time of capturing of the package during comparisons, or avoid incoming breaking changes, or whatever... I can load packages that I initially let remain unloaded, so why should I not be able to unload a package that I previously loaded.

Ideally I would like to unload a package from the object menu in the Git Browser.

Split from #130.

There is a technical challenge to that: the unloading of a package cannot be done by simply unreferencing an object from the image store. Instead you have to use MCPackageLoader>>unloadPackage: or reproduce its effects. This means that unloading is basically a domain-specific operation for now. That's why this issue is labelled "unload packages" and not "unload objects". The latter would be the more general use case.