Skip to content

Commit 727862d

Browse files
committed
Modifying schema
1 parent 3bf28b7 commit 727862d

File tree

5 files changed

+88
-23
lines changed

5 files changed

+88
-23
lines changed

crates/turborepo-api-client/src/spaces.rs

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use std::collections::HashSet;
2+
13
use async_graphql::{Enum, SimpleObject};
24
use chrono::{DateTime, Local};
35
use reqwest::Method;
@@ -53,6 +55,30 @@ pub enum CacheSource {
5355
Remote,
5456
}
5557

58+
#[derive(Debug, Serialize, SimpleObject, PartialEq, Eq, Hash)]
59+
pub struct TaskId {
60+
pub package: String,
61+
pub task: String,
62+
}
63+
64+
impl PartialOrd for TaskId {
65+
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
66+
Some(
67+
self.package
68+
.cmp(&other.package)
69+
.then_with(|| self.task.cmp(&other.task)),
70+
)
71+
}
72+
}
73+
74+
impl Ord for TaskId {
75+
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
76+
self.package
77+
.cmp(&other.package)
78+
.then_with(|| self.task.cmp(&other.task))
79+
}
80+
}
81+
5682
#[derive(Default, Debug, Serialize, SimpleObject)]
5783
#[serde(rename_all = "camelCase")]
5884
pub struct SpaceTaskSummary {
@@ -64,8 +90,8 @@ pub struct SpaceTaskSummary {
6490
pub end_time: i64,
6591
pub cache: SpacesCacheStatus,
6692
pub exit_code: Option<i32>,
67-
pub dependencies: Vec<String>,
68-
pub dependents: Vec<String>,
93+
pub dependencies: Option<HashSet<TaskId>>,
94+
pub dependents: Option<HashSet<TaskId>>,
6995
#[serde(rename = "log")]
7096
pub logs: String,
7197
}
Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CREATE TABLE IF NOT EXISTS runs (
2-
id TEXT PRIMARY KEY, -- primary key should be uuid
2+
id INTEGER PRIMARY KEY AUTOINCREMENT,
33
start_time BIGINT NOT NULL,
44
end_time BIGINT,
55
exit_code INTEGER,
@@ -13,23 +13,56 @@ CREATE TABLE IF NOT EXISTS runs (
1313
client_id TEXT NOT NULL,
1414
client_name TEXT NOT NULL,
1515
client_version TEXT NOT NULL
16+
full_turbo BOOLEAN NOT NULL
17+
);
18+
19+
CREATE TABLE IF NOT EXISTS config (
20+
id INTEGER PRIMARY KEY AUTOINCREMENT,
21+
api_url TEXT NOT NULL,
22+
login_url TEXT NOT NULL,
23+
team_slug TEXT NOT NULL,
24+
team_id TEXT NOT NULL,
25+
signature BOOLEAN NOT NULL,
26+
preflight BOOLEAN NOT NULL,
27+
timeout INTEGER NOT NULL,
28+
upload_timeout INTEGER NOT NULL,
29+
enabled BOOLEAN NOT NULL,
30+
spaces_id TEXT NOT NULL,
31+
global_dependencies TEXT NOT NULL,
32+
global_env TEXT NOT NULL,
33+
global_pass_through_env TEXT NOT NULL,
34+
tasks TEXT NOT NULL,
35+
cache_dir TEXT NOT NULL,
36+
root_turbo_json TEXT NOT NULL
37+
)
38+
39+
CREATE TABLE IF NOT EXISTS packages (
40+
id INTEGER PRIMARY KEY AUTOINCREMENT,
41+
name TEXT NOT NULL,
42+
path TEXT NOT NULL
43+
);
44+
45+
CREATE TABLE IF NOT EXISTS package_dependencies (
46+
id INTEGER PRIMARY KEY AUTOINCREMENT,
47+
dependent_id INTEGER NOT NULL,
48+
dependency_id INTEGER NOT NULL
1649
);
1750

1851
CREATE TABLE IF NOT EXISTS tasks (
19-
id TEXT PRIMARY KEY,
52+
id INTEGER PRIMARY KEY AUTOINCREMENT,
2053
run_id TEXT NOT NULL,
2154
name TEXT NOT NULL,
22-
package TEXT NOT NULL,
2355
hash TEXT NOT NULL,
56+
package_id INTEGER NOT NULL,
2457
start_time INTEGER NOT NULL,
2558
end_time INTEGER NOT NULL,
26-
cache_status TEXT NOT NULL,
59+
cache_status TEXT NOT NULL
2760
exit_code INTEGER,
2861
logs TEXT NOT NULL
2962
);
3063

3164
CREATE TABLE IF NOT EXISTS task_dependencies (
3265
id INTEGER PRIMARY KEY AUTOINCREMENT,
33-
task_id TEXT NOT NULL,
34-
dependency_id TEXT NOT NULL
66+
dependent_id INTEGER NOT NULL,
67+
dependency_id INTEGER NOT NULL
3568
);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-- Add migration script here

crates/turborepo-db/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,8 @@ mod test {
258258
time_saved: 0,
259259
},
260260
exit_code: Some(0),
261-
dependencies: vec![],
262-
dependents: vec![],
261+
dependencies: None,
262+
dependents: None,
263263
logs: "".to_string(),
264264
},
265265
)

crates/turborepo-lib/src/run/summary/spaces.rs

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -316,18 +316,23 @@ impl<'a> From<SpacesTaskInformation<'a>> for SpaceTaskSummary {
316316
exit_code,
317317
..
318318
} = execution_summary;
319-
fn stringify_nodes(deps: Option<HashSet<&crate::engine::TaskNode>>) -> Vec<String> {
320-
deps.into_iter()
321-
.flatten()
322-
.filter_map(|node| match node {
323-
crate::engine::TaskNode::Root => None,
324-
crate::engine::TaskNode::Task(dependency) => Some(dependency.to_string()),
325-
})
326-
.sorted()
327-
.collect()
319+
fn convert_nodes(
320+
deps: Option<HashSet<&crate::engine::TaskNode>>,
321+
) -> Option<HashSet<turborepo_api_client::spaces::TaskId>> {
322+
let deps = deps?;
323+
Some(
324+
deps.into_iter()
325+
.filter_map(|node| match node {
326+
TaskNode::Root => None,
327+
TaskNode::Task(dependency) => Some(turborepo_api_client::spaces::TaskId {
328+
package: dependency.package().to_string(),
329+
task: dependency.task().to_string(),
330+
}),
331+
})
332+
.sorted()
333+
.collect(),
334+
)
328335
}
329-
let dependencies = stringify_nodes(dependencies);
330-
let dependents = stringify_nodes(dependents);
331336

332337
let cache = cache_status.map_or_else(
333338
SpacesCacheStatus::default,
@@ -356,8 +361,8 @@ impl<'a> From<SpacesTaskInformation<'a>> for SpaceTaskSummary {
356361
start_time,
357362
end_time,
358363
exit_code,
359-
dependencies,
360-
dependents,
364+
dependencies: convert_nodes(dependencies),
365+
dependents: convert_nodes(dependents),
361366
logs,
362367
}
363368
}

0 commit comments

Comments
 (0)