Skip to content
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

Download less of all-cabal-hashes #2487

Open
Blaisorblade opened this issue Aug 13, 2016 · 5 comments
Open

Download less of all-cabal-hashes #2487

Blaisorblade opened this issue Aug 13, 2016 · 5 comments

Comments

@Blaisorblade
Copy link
Collaborator

We can't just download the head of all-cabal-hashes, since a snapshot can request old revisions of Cabal files by hash (see #2175 and #2464).

But as mentioned, downloading the entire repo's history is a long-term problem.
Possible solution I proposed:

I imagine one could add tags for each snapshot, and stack could fetch those tags when needed, but the tags would be needed remotely.

@mgsloan
Copy link
Contributor

mgsloan commented Aug 13, 2016

Cool idea!

@Blaisorblade
Copy link
Collaborator Author

@mgsloan Thanks! But to be clear: I plan on leaving this to somebody familiar with all the projects and having the necessary rights.

@Blaisorblade
Copy link
Collaborator Author

I probably should have pinged @snoyberg on this ages ago.

@Blaisorblade
Copy link
Collaborator Author

Now we should have the info we need—it's not tags but a snapshot field:
fpco/stackage-curator@67484d7

@Blaisorblade
Copy link
Collaborator Author

@borsboom I figured this is probably too hard to fix safely for 1.2.0. The best we could do in that timeframe is revert the fix for #2175 for now—that would keep the existing unreproducibility and cause no behavior regression compared to 1.1.2.
Also, the fix would only affect new snapshots. I also confess I'm short on time, which doesn't help.

Needed steps for a fix:

  • parse extra info from snapshot (easy);
  • get the information from the parsed snapshot to the repo checkout (nontrivial for me, because I'm not familiar with the code yet);
  • in fact, this might require fetching new info for each snapshot, which requires restructuring the way this info is fetched; that might be genuinely nontrivial.
  • actually use extra info for checkout (finding the right git command is easy).

I hear @mgsloan might have more insight though?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants