Skip to content
This repository has been archived by the owner on Dec 5, 2019. It is now read-only.

Add support for per-project flags #44

Open
jspahrsummers opened this issue Sep 5, 2016 · 1 comment
Open

Add support for per-project flags #44

jspahrsummers opened this issue Sep 5, 2016 · 1 comment

Comments

@jspahrsummers
Copy link
Member

ProjectIdentifiers should be able to carry information which:

  1. Doesn't participate in equality, but
  2. 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.

@jspahrsummers
Copy link
Member Author

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.

I've made a huge mistake

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

No branches or pull requests

1 participant