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

Formula hashes should include "conjectured" output hashes #90

Closed
tazjin opened this issue Mar 18, 2017 · 5 comments
Closed

Formula hashes should include "conjectured" output hashes #90

tazjin opened this issue Mar 18, 2017 · 5 comments

Comments

@tazjin
Copy link

tazjin commented Mar 18, 2017

Speaking about this:

for _, spec := range f2.Outputs {
	spec.Hash = ""
	spec.Warehouses = nil
}

(also: argh mutability >.<)

This should only zero output hashes that have conjecture set to false.

@TripleDogDare
Copy link
Member

We're currently planning on having multiple hashes for formulas. The current formula hash is now described as the "setup" hash which does not include any output data. Pinned outputs would be included in a "result" hash. You need to be able to link two formulas that are otherwise equivalent but have different outputs from cat /dev/urandom.

@timthelion
Copy link
Contributor

timthelion commented May 11, 2017 via email

@tazjin
Copy link
Author

tazjin commented May 11, 2017

@timthelion This doesn't really apply anymore because @heavenlyhash removed the conjecture field.

My reasoning was that if you know that a certain output will be reproducible (this is information the user is adding into the system!) it is safe to include the hashes of those outputs in the formula hash.

@TripleDogDare
Copy link
Member

Conjectures were scrubbed in #98 actually.
Can one know if an output is reproducible? I can certainly assert that it is, but those assertions exist on a different plane than the inputs+computation.

@warpfork
Copy link
Member

warpfork commented Nov 3, 2017

... belated close ...

This whole topic is more clearly resolved in the new "r200" version of the formula. The formula structure now clearly contains only simple, deterministic values, and all things which have any user-opinionated values at all are separated (often into a 'formulaContext' object, for example, which is a sibling to the formula in practice, but keeping things like e.g. urls in that separate object makes it much clearly what is covered by the "setup hash" vs not).

+1 to @TripleDogDare 's comments about the underling philosophy -- it doesn't really matter if the author of a formula believes a system is reproducible or not. Believing doesn't make it so. This isn't to say we want to rule out ever accepting that kind of metadata anywhere in the ecosystem, but it does say it doesn't belong in the formula structure.

@warpfork warpfork closed this as completed Nov 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants