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.
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.