merge in oc-release history after reset to oc-dev
diff --git a/context.go b/context.go
index 989711f..6793ac3 100644
--- a/context.go
+++ b/context.go
@@ -1227,10 +1227,17 @@
 		return nil
 	}
 
+	variants := make([]string, len(possibleDeps))
+	for i, mod := range possibleDeps {
+		variants[i] = c.prettyPrintVariant(mod.variant)
+	}
+	sort.Strings(variants)
+
 	return []error{&BlueprintError{
-		Err: fmt.Errorf("dependency %q of %q missing variant %q",
+		Err: fmt.Errorf("dependency %q of %q missing variant:\n  %s\navailable variants:\n  %s",
 			depName, module.Name(),
-			c.prettyPrintVariant(module.dependencyVariant)),
+			c.prettyPrintVariant(module.dependencyVariant),
+			strings.Join(variants, "\n  ")),
 		Pos: module.pos,
 	}}
 }
@@ -1256,10 +1263,17 @@
 		return m, nil
 	}
 
+	variants := make([]string, len(possibleDeps))
+	for i, mod := range possibleDeps {
+		variants[i] = c.prettyPrintVariant(mod.variant)
+	}
+	sort.Strings(variants)
+
 	return nil, []error{&BlueprintError{
-		Err: fmt.Errorf("reverse dependency %q of %q missing variant %q",
+		Err: fmt.Errorf("reverse dependency %q of %q missing variant:\n  %s\navailable variants:\n  %s",
 			destName, module.Name(),
-			c.prettyPrintVariant(module.dependencyVariant)),
+			c.prettyPrintVariant(module.dependencyVariant),
+			strings.Join(variants, "\n  ")),
 		Pos: module.pos,
 	}}
 }
@@ -1325,10 +1339,17 @@
 		}
 	}
 
+	variants := make([]string, len(possibleDeps))
+	for i, mod := range possibleDeps {
+		variants[i] = c.prettyPrintVariant(mod.variant)
+	}
+	sort.Strings(variants)
+
 	return []error{&BlueprintError{
-		Err: fmt.Errorf("dependency %q of %q missing variant %q",
+		Err: fmt.Errorf("dependency %q of %q missing variant:\n  %s\navailable variants:\n  %s",
 			depName, module.Name(),
-			c.prettyPrintVariant(newVariant)),
+			c.prettyPrintVariant(newVariant),
+			strings.Join(variants, "\n  ")),
 		Pos: module.pos,
 	}}
 }