janet-lang / jpm

Janet Project Manager
MIT License
65 stars 21 forks source link

Update all installed packages #52

Closed tupini07 closed 2 years ago

tupini07 commented 2 years ago

It would be great to have a way to easily update all installed packages. This can more or less already be done by doing something like

jpm list-installed | xargs -I _ sudo jpm install _

However, this only works to update dependencies which are themselves listed in pkgs.janet (those in the official package listing), but not for those packages that are only possible to install directly via git (for example: jpm install https://github.com/sogaiu/jandent).

Should be pretty easy to implement, just go through the files in the .manifest dir and call install for each of them. Although I might not be considering some potential issues

bakpakin commented 2 years ago

Added the 'update-installed` command to address this. Note that there is still some question about semantics here, especially when installing some packages from the "latest master", vs a specific tag. JPM only tracks that specific git commit installed, not what the user requested to be installed. So this may update packages that a user requested to be a specific tag. Still, I think for version pinned dependencies one should use a lockfile.

tupini07 commented 2 years ago

That's great! and yes, I agree with the fact that pinned dependencies should use a lockfile. Also, I imagine globally installed packages would normally be binaries, so one normally wants to keep those up to date :)

Tagging the commit here just in case anyone is interested c886d61d170194c8e6a605658a17a078b6ab546a

Closing this issue