You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 5, 2019. It is now read-only.
ProjectIdentifiers should be able to carry information which:
Doesn't participate in equality, but
Will not get dropped on the floor
Right now, this capability doesn't exist, because we treat ProjectIdentifiers like values and assume that any two which are equal can substitute for each other.
Instead, we should allow clients to attach meaningful information to a ProjectIdentifier and ask them to determine the replacement behavior.
For example, if a dependent project A specifies that it wants its dependency B built with some compile-time feature enabled, that should work even if B is a dependency elsewhere in the graph, but without accidentally building two different instances of B.
The text was updated successfully, but these errors were encountered:
It occurs to me that we should allow consumers to choose which ProjectIdentifier overrides the other in cases of conflict here.
For example, if the associated flags represent build options, and one is a superset of the other, maybe that one should be taken as the canonical ProjectIdentifier. Or, if there's a conflict, the consumer should have the ability to reject combining them.
Hmm. This is more complicated than I first thought.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
ProjectIdentifier
s should be able to carry information which:Right now, this capability doesn't exist, because we treat
ProjectIdentifier
s like values and assume that any two which are equal can substitute for each other.Instead, we should allow clients to attach meaningful information to a
ProjectIdentifier
and ask them to determine the replacement behavior.For example, if a dependent project A specifies that it wants its dependency B built with some compile-time feature enabled, that should work even if B is a dependency elsewhere in the graph, but without accidentally building two different instances of B.
The text was updated successfully, but these errors were encountered: