I understand leaving old versions, and their dependencies, behind with `install` of packages. Even the same package of a different version. If someone installs multiple versions, they may want to run multiple versions and/or swap between them.
However, if someone is just tracking the `stable` channel of a builder and automatically downloading updates to those packages, and their dependencies, whenever a new one becomes available, this behavior doesn't make sense. And, with leftover/unused packages, and their rather large dependencies, the /hab folder can grow in size quite significantly over a short period of time, and without limit, if iterations are made frequently and versions of dependencies are not strongly pinned. This can have a detrimental, or catastrophic, effect on server performance - especially if this leads to completely filling a drive.
I would like to see additional functionality, maybe a new pkg verb, of "upgrade", or similar, that would download the new version of the package and prune the old version and unneeded dependencies. Maybe even a meta verb that did an install of the new version, stopped the old service, starts the new service, and uninstalls the old version. If you're just tracking a channel on a builder, this should probably be the default (if not able to be specified) behavior.