-
Notifications
You must be signed in to change notification settings - Fork 841
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
stack rm command #133
Comments
do you mean: without arguments, list all local GHC and snapshots and ask the user to re-run the command with one or several of them after stack rm
not sure to understand
+1 |
Yes, that's what I meant. My idea is that the output will be something like:
Running any of those commands will delete the relevant directories |
+1 from me, too. |
I'm slightly uneasy about calling this "rm", it just doesn't seem like the right name for it. Maybe "clean" or "cleanup"? Feel free to ignore my bikeshedding :) |
@radix I understand it may not feel like the best name, but I think lots of people are used to this one. |
Two issues arose from #376 that are relevant here:
|
@rvion Funny, I had exactly those kinds of commands in mind, and it gave me the opposite reaction. Maybe I don't understand the goal of |
What about |
I'm open to any bikeshedding, |
Perhaps Incidentally, that assumption would be contradicted if |
I don't have strong feelings with either of the names. The reason I suggested purge was that (1) |
I was going to ask about this in #115. Good to see that it is in the plans - uncontrolled proliferation of sandboxes is an annoyance with the vanilla |
I like |
Sorry, I thought I had posted a follow-up when I realized my |
Agreed, slightly more subtlety required than I'm not familiar at all with stack's internals, but no doubt this can be done programmatically with better maintainability than some hardcoded paths… but could we enumerate here what this effectively would do? This might capture the wanted PR intent and UX in simple terms, and could help for scripting a solution in the meantime (and perhaps serve as FAQ material until it's ready—e.g. "I have old snapshots eating up GBs of disk that I'm no longer using for active projects, how can I remove them safely?"). For instance, I would assume
And
Does that appear complete? Should it operate on a local project's Aside: FWIW with reasoning shared so far, I like |
My current thought on this is to keep a timestamped log of package, project, and database usages. Not 100% sure we want to keep track of individual package usages. It would allow for more fine-grained garbage collection, but possibly for too much overhead. The overall idea is that build results which haven't been used for a while are less likely to be used in the future. Similarly to |
Is there no garbage collection for un-used GHC versions? |
@CMCDragonkai Not currently. Could probably have something similar to |
@mgsloan What does |
@CMCDragonkai I think he meant |
The garbage collection question definitely needs to be answered in some form or another. If possible, I think I might find a documentation solution preferable to a new command. It would be great if the manual discussed the directory structure of |
Moved to wishlist: https://github.com/commercialhaskell/stack/wiki/Wishlist |
As a workaround, how would you do this manually? My last attempt at purging old ghc versions manually broke my stack installation. |
@snoyberg I'm considering applying using this issue to apply for Google Summer of Code, do you have any pointers to where I could go to look at the feasibility of working on a stack rm/clean, along with other features to mend space usage? If there are other performance improvements you are thinking would specifically be useful over this one, I'd be glad to discuss those too. I've run into personal issues with stack being too large for my chromebook before, and I'm worried it would put off newcomers to |
I've deleted GHC versions by deleting
I think just the issue tracker, I don't have anything in particular. It's certainly feasible to add an |
I made a little hack today: NB this is quite experimental use at your own risk |
@qrilka Yeah I believe that but it sure can save a lot of diskspace ;-) Currently I keep 50 "snapshot" dirs per ghc-version and 4 project builds per ghc version, but it is a hack yes. Maybe something better could be done inside stack. edit: I dropped the snapshots cleaning part for now since that was quite damaging: it needs to be a lot smarter about tracking dependencies between hashes. It seems to me this approach may need a global view of all |
(BTW stack-clean-old is now on Hackage and changed a fair a bit) |
--all
flag?Thoughts on this from anyone?
The text was updated successfully, but these errors were encountered: