Perhaps the function should be called `-reinstall', or `-reactivate', but I am uncertain about all these names too. > Ignoring the refresh woes, I suggest the following design changes: > > - allow strings in `-selected-packages' if possible Can be done. > - make `-ensure-packages' interactive for `M-x' Can be done. > - rename `-ensure-' to `-install-selected-' for consistency Can be done. > - auto-load `-install-selected-packages' for common use Not a fan of that, but I guess it can be done. > - rename `-refresh' to `-update' for consistency That would be wrong, because `package-vc-refresh' doesn't update the package. There is `package-vc-update' and `package-update' (that do the same thing for source packages). Maybe `package-vc-update' can be made interactive too and made to only prompt for source packages. > - add `-update-all' for consistency That already exists, in `package-update-all'. It will also update source packages. What you have in mind would be a `package-vc-update-all' that would only update all the source packages. > - fix the nonexistent function reference in the documentation Right, we are on that already. > Then, the existing users of `package.el' will know how to use a large > part of `package-vc.el' without needing to learn that "ensure" means > "install-selected", "refresh" means "update", and so on. I agree on these points. > Rudy