-
Notifications
You must be signed in to change notification settings - Fork 842
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
Extensible snapshots #3249
Merged
Merged
Extensible snapshots #3249
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This came in automatically at the inception of Stack, by copying data types from stackage-curator. In reality, we don't need all of this information within Stack. As we move towards extensible snapshots, we want to make sure we have the bare minimum of information to allow a shared data type for parsing all kinds of snapshots. Additionally, we probably want to move away from depending on extra information present in the build plan, in case there are mistakes in it.
Because (1) we don't necessarily trust it (may be wrong upstream, or using a different GHC install locally), and (2) custom snapshots don't want to provide this. This patch is not complete on its own. In particular, it's possible (such as with the script command) to try to load up the global package information before GHC is installed. Next step is to have a proper separation between a resolved and unresolved build plan.
This is still a WIP, with lots of commented out code and the naming still up in the air. But it compiles.
Not yet complete; ultimate goal would be to unify a huge amount of the logic between these two modules so that the shadowing behavior and similar is identical between "within snapshots" and "local on top of snapshots".
This was referenced Jul 5, 2017
Just to clarify, when you mention in the write-up that
do you mean the |
I didn't, but I do now after reading through the previous issues. I'll be pushing a commit for that (and updating the writeup). EDIT Both the code and the writeup have been updated. |
This was referenced Jul 5, 2017
Discussed with @mgsloan. This seems to fit ergonomics a bit better, as well as opening up the possibility of specifying custom snapshots on the command line.
2 tasks
This was referenced Jul 2, 2018
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a significant change touching large parts of the code base and relating to many issues. I'm going to do a write-up of what ended up getting covered here (I'll link to it from this issue when ready), as well as try to collect issues that I believe are related.
At the time of opening this PR, all tests and integration tests pass on my OS X machine, and I'm currently using this branch for my main development. Nonetheless, there are still some outstanding issues, such as a Store hash mismatch on GHC 7.10, a few FIXMEs scattered through the PR that I'd like to improve upon. Also, additional real world testing is needed.
There's not really any kind of logical grouping of these commits that I could rebase to. The best I could do is split off the first two commits if desired and squash the rest down into one mega-commit. If people prefer that, let me know.
EDIT Here's a work in progress write-up about the new feature: https://fpcomplete-site-extensible-snapshots.review.gitlab.fpcomplete.com/blog/2017/07/stacks-new-extensible-snapshots
Related issues:
Failure to locate binary while installing cabal-helper Failure to locate binary while installing cabal-helper #3202