-
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
Start using the pantry package #4254
Conversation
This will be a new library for storing package information. This first bit overhauls the Hackage index update code, and stores information in a SQLite database instead of the old caches. This turns out to be significantly faster for `stack update` calls. Fixes #3586 Note that it would be nicer to just resume the caching from where we'd last left off, or to parse the revision numbers from the cabal files themselves. See the discussion in haskell/hackage-server#779 to see why that isn't possible.
Thanks to @phadej for the inspiration for this in his comment: haskell/hackage-server#779 (comment)
Ideally, fixes #4247. Instead of immediately failing on the database being busy (via usage by another process), Stack will now have a 2 second pause and then try again. The vast majority of interactions with the database are much faster than 2 seconds. The only exception is the population of the Hackage index cache, but that's hopefully rare enough, and touching few enough tables, to not be a problem.
Use a hacked version of store which hopefully requires much less memory.
Pantry doesn't support archives and repos without cabal files. I'm generally opposed to checking in generated files, but it may be the best choice here. The alternative would end up with some crazy hacks to support the non-deterministic nature of generating cabal files from package.yaml files.
Thanks, the changes look good. I'm grateful for the explanation of the cache-breaking behaviour. |
I'm very grateful for the great review, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Skimmed over much of src/ changes, they look good to me but I'm still not 100% up to date with the entire codebase
doc/yaml_configuration.md
Outdated
|
||
Since 1.6.0 | ||
This flag was introduced in Stack 1.6, and removed in Stack 1.11 with | ||
hte move to Pantry. You will receive a warning if this configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the instead of hte
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch, thanks!
I'd say we should merge this first, it's already quite large. |
Discovered via breaking integration test 1884-url-to-tarball
Integration tests are passing, so this is ready to merge. There are some merge conflicts with master, which I'm resolving. Once that's done and CI is green, anyone should feel free to merge this. |
This is a massive diff. Any reviews people have are most welcome. The basic idea is:
pantry
curator
package present as well.)For those looking to review, I'd recommend:
doc
directory andChangeLog.md
firstsubs/pantry
nextsrc