aboutsummaryrefslogtreecommitdiff
path: root/development/tools/cargo-workspace2/docs/ws2ql.md
diff options
context:
space:
mode:
Diffstat (limited to 'development/tools/cargo-workspace2/docs/ws2ql.md')
-rw-r--r--development/tools/cargo-workspace2/docs/ws2ql.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/development/tools/cargo-workspace2/docs/ws2ql.md b/development/tools/cargo-workspace2/docs/ws2ql.md
new file mode 100644
index 000000000000..a255a650bb50
--- /dev/null
+++ b/development/tools/cargo-workspace2/docs/ws2ql.md
@@ -0,0 +1,19 @@
+# ws2 query language
+
+The `cargo-ws2` query language (`ws2ql`) allows users to specify a
+set of inputs, and an operation to execute on it.
+
+## Basic rules
+
+* Inside `[]` are sets (meaning items de-dup), space separated
+* IF `[]` contains a `/` anywhere _but_ the beginning AND end,
+ query becomes a path glob
+* IF `[]` contains `/` at start AND end, query becomes a regex
+* An operation is parsed in the order of the fields in it's struct
+ (so publish order is `type mod devel`, etc)
+* Inside `{}` you can create dependency maps
+ * `{ foo < }` represents all crates that depend on `foo`
+ * `{ foo < bar &< }` represents all crates that depend on `foo` AND `bar`
+ * `{ foo < bar |< }` represents all crates that depend on `foo` OR `bar`
+ * `{ foo < bar &!< }` represents all crates that depend on `foo` AND NOT `bar`
+