-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] upgrade (all), search, list installed? #3
Comments
We're considering it.
We keep track of package versions by adding a We're also thinking about adding support for a
I'm pretty sure adding the features above will have only a small impact on the final binary size.
GPM does not keep track of installed packages. And we have no "package metadata" file (like NodeJS' |
Hi @promethe42 , But uninstall / update seems not supported? Update should replace the old package? Would it possible to do that with a But maybe that would be to complex? |
That's a good idea. Do you know what's the content/format of GPM already relies on the |
World file ist just a Line based list of installed packages like
With the list of package names IT should be easy to implement an update / upgrade action for installed packages. Local git repo is interesting too... But I don't know if that would fit my setup. I need to take a closer look. |
I guess the "git repo" would likely just be that single file but with got-powered revisions. So for example you could tag your current packages and restore them using |
you mean Would that exampe do what you are thinking of?
Revert to would be? But how to revert the installed files to the earlier revision...? Files could be installed to system root dependent on file structure of gpm package. Or is there a |
You would not do the # install my-package1 and tag/commit the corresponding change
$ gpm install my-package1 --commit "first install"
# install my-package2 and tag/commit the corresponding change
$ gpm install my-package2 --commit "another install"
# revert to the "first install" package list, so my-package2 will be uninstalled
$ gpm checkout "first install" The |
Good Idea! So it should be possible new features update, revert / downgrade and uninstall? But disk space may bei increase dependent on archive / binary size? So clear history (delete history / .git directory?) should be an option? |
I was thinking it would be an actual user-provided commit message.
That the point:
As of today, package archives are never stored locally. So:
Each package archive is already hashed using SHA256 in order to resolve/match/check GIT LFS links. So we could use that hash to index/store package archives in cache.
I guess so. In the end, it would be:
|
Commit message could bei optional User Provider or generated by package name + version (+ date / time)? Would bei easy to search / find? Local package (contents / tar.gz) cache would bei nice for some testing / debugging Tasks, but most cases should be Install and delete cached File I think? How so you revert / uninstall the extracted files? List files / directories from archive and deleted all those files and directories (If empty)? Or is there a better way to do that? The world file just contains the package name in alpine distribution. |
All of that would be provided by the git history of the "world" file.
AFAIK we can list the files/content of the archive |
Yes, list should be |
With package list (world file) and File list (of all installed packages) and currently installed versions some cool features could bei possible.
I think all the features should be possible without to much code? Or with a "extension" script? Would that possible with the local git repository for world file? I don't know how to get the needed information from git repo. |
@promethe42 |
IMHO most (all?) of this is doable without adding new crates. So I guess it won't add much weight to the static binary. Please keep this issue about upgrade/search/list only. Please open a new issue if you have other issue requests. |
Hi @aerys ,
I found your awesome package manager and really like it! It works with a ~2MB small binary and supports multiple repositories.
What's about features like
Not all features are really needed, but would be interesting if planned or possible with a still small binary?
The text was updated successfully, but these errors were encountered: