Skip to content

Commit 2da6259

Browse files
authored
[Turbopack] use new backend in next-build-test (#75724)
### What? * use new backend in next-build-test * apply effects in next-build-test * fix Dockerfile
1 parent f37a454 commit 2da6259

File tree

5 files changed

+41
-15
lines changed

5 files changed

+41
-15
lines changed

.devcontainer/Dockerfile

-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,4 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
2828
# RUN su node -c "npm install -g <your-package-list-here>"
2929

3030
# Enable pnpm
31-
RUN npm i -g corepack@latest
3231
RUN corepack enable pnpm

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/next-build-test/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ tracing = "0.1"
2323
tracing-subscriber = "0.3"
2424
turbo-rcstr = { workspace = true }
2525
turbo-tasks = { workspace = true }
26+
turbo-tasks-backend = { workspace = true }
2627
turbo-tasks-env = { workspace = true }
2728
turbo-tasks-fs = { workspace = true }
2829
turbo-tasks-malloc = { workspace = true }
29-
turbo-tasks-memory = { workspace = true }
3030
turbopack = { workspace = true }
3131
turbopack-browser = { workspace = true }
3232
turbopack-cli-utils = { workspace = true }

crates/next-build-test/src/lib.rs

+30-10
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ use anyhow::{Context, Result};
99
use futures_util::{StreamExt, TryStreamExt};
1010
use next_api::{
1111
project::{ProjectContainer, ProjectOptions},
12-
route::{endpoint_write_to_disk, Route},
12+
route::{endpoint_write_to_disk, Endpoint, EndpointOutputPaths, Route},
1313
};
1414
use turbo_rcstr::RcStr;
15-
use turbo_tasks::{ReadConsistency, TransientInstance, TurboTasks, Vc};
15+
use turbo_tasks::{get_effects, ReadConsistency, ResolvedVc, TransientInstance, TurboTasks, Vc};
16+
use turbo_tasks_backend::{NoopBackingStorage, TurboTasksBackend};
1617
use turbo_tasks_malloc::TurboMalloc;
17-
use turbo_tasks_memory::MemoryBackend;
1818

1919
pub async fn main_inner(
20-
tt: &TurboTasks<MemoryBackend>,
20+
tt: &TurboTasks<TurboTasksBackend<NoopBackingStorage>>,
2121
strat: Strategy,
2222
factor: usize,
2323
limit: usize,
@@ -158,7 +158,7 @@ pub fn shuffle<'a, T: 'a>(items: impl Iterator<Item = T>) -> impl Iterator<Item
158158
}
159159

160160
pub async fn render_routes(
161-
tt: &TurboTasks<MemoryBackend>,
161+
tt: &TurboTasks<TurboTasksBackend<NoopBackingStorage>>,
162162
routes: impl Iterator<Item = (RcStr, Route)>,
163163
strategy: Strategy,
164164
factor: usize,
@@ -185,21 +185,21 @@ pub async fn render_routes(
185185
html_endpoint,
186186
data_endpoint: _,
187187
} => {
188-
endpoint_write_to_disk(*html_endpoint).await?;
188+
endpoint_write_to_disk_with_effects(*html_endpoint).await?;
189189
}
190190
Route::PageApi { endpoint } => {
191-
endpoint_write_to_disk(*endpoint).await?;
191+
endpoint_write_to_disk_with_effects(*endpoint).await?;
192192
}
193193
Route::AppPage(routes) => {
194194
for route in routes {
195-
endpoint_write_to_disk(*route.html_endpoint).await?;
195+
endpoint_write_to_disk_with_effects(*route.html_endpoint).await?;
196196
}
197197
}
198198
Route::AppRoute {
199199
original_name: _,
200200
endpoint,
201201
} => {
202-
endpoint_write_to_disk(*endpoint).await?;
202+
endpoint_write_to_disk_with_effects(*endpoint).await?;
203203
}
204204
Route::Conflict => {
205205
tracing::info!("WARN: conflict {}", name);
@@ -242,7 +242,27 @@ pub async fn render_routes(
242242
Ok(stream.len())
243243
}
244244

245-
async fn hmr(tt: &TurboTasks<MemoryBackend>, project: Vc<ProjectContainer>) -> Result<()> {
245+
#[turbo_tasks::function]
246+
async fn endpoint_write_to_disk_with_effects(
247+
endpoint: ResolvedVc<Box<dyn Endpoint>>,
248+
) -> Result<Vc<EndpointOutputPaths>> {
249+
let op = endpoint_write_to_disk_operation(endpoint);
250+
let result = op.resolve_strongly_consistent().await?;
251+
get_effects(op).await?.apply().await?;
252+
Ok(*result)
253+
}
254+
255+
#[turbo_tasks::function(operation)]
256+
pub fn endpoint_write_to_disk_operation(
257+
endpoint: ResolvedVc<Box<dyn Endpoint>>,
258+
) -> Vc<EndpointOutputPaths> {
259+
endpoint_write_to_disk(*endpoint)
260+
}
261+
262+
async fn hmr(
263+
tt: &TurboTasks<TurboTasksBackend<NoopBackingStorage>>,
264+
project: Vc<ProjectContainer>,
265+
) -> Result<()> {
246266
tracing::info!("HMR...");
247267
let session = TransientInstance::new(());
248268
let idents = tt

crates/next-build-test/src/main.rs

+9-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ use next_core::tracing_presets::{
88
};
99
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, Registry};
1010
use turbo_tasks::TurboTasks;
11+
use turbo_tasks_backend::{noop_backing_storage, BackendOptions, TurboTasksBackend};
1112
use turbo_tasks_malloc::TurboMalloc;
12-
use turbo_tasks_memory::MemoryBackend;
1313
use turbopack_trace_utils::{
1414
exit::ExitGuard, filter_layer::FilterLayer, raw_trace::RawTraceLayer, trace_writer::TraceWriter,
1515
};
@@ -118,7 +118,14 @@ fn main() {
118118
None
119119
};
120120

121-
let tt = TurboTasks::new(MemoryBackend::new(usize::MAX));
121+
let tt = TurboTasks::new(TurboTasksBackend::new(
122+
BackendOptions {
123+
dependency_tracking: false,
124+
storage_mode: None,
125+
..Default::default()
126+
},
127+
noop_backing_storage(),
128+
));
122129
let result = main_inner(&tt, strat, factor, limit, files).await;
123130
let memory = TurboMalloc::memory_usage();
124131
tracing::info!("memory usage: {} MiB", memory / 1024 / 1024);

0 commit comments

Comments
 (0)