Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions crates/turborepo-lib/src/shim/local_turbo_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,11 @@ impl LocalTurboState {
let platform_package_name = TurboState::platform_package_name();
let binary_name = TurboState::binary_name();

debug!(
"Searching for local turbo. Platform: {}, Binary: {}",
platform_package_name, binary_name
);

let platform_package_json_path_components = [platform_package_name, "package.json"];
let platform_package_executable_path_components =
[platform_package_name, "bin", binary_name];
Expand All @@ -131,13 +136,20 @@ impl LocalTurboState {

// Detecting the package manager is more expensive than just doing an exhaustive
// search.
for root in search_functions
for (idx, root) in search_functions
.iter()
.filter_map(|search_function| search_function(root_path))
.enumerate()
{
debug!("Trying search path #{}: {}", idx + 1, root);
// Needs borrow because of the loop.
#[allow(clippy::needless_borrow)]
let bin_path = root.join_components(&platform_package_executable_path_components);
debug!("Looking for binary at: {}", bin_path);

let exists = bin_path.exists();
debug!("Binary exists: {}", exists);

match fs_canonicalize(&bin_path) {
Ok(bin_path) => {
let resolved_package_json_path =
Expand All @@ -153,10 +165,14 @@ impl LocalTurboState {
version: local_version,
});
}
Err(_) => debug!("No local turbo binary found at: {}", bin_path),
Err(e) => debug!(
"No local turbo binary found at: {} (error: {})",
bin_path, e
),
}
}

debug!("No local turbo found after searching all paths");
None
}

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 28 additions & 4 deletions turborepo-tests/integration/tests/find-turbo/linked.t
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,38 @@ Setup

Make sure we use local, but do not pass --skip-infer to old binary
$ ${TESTDIR}/set_version.sh $(pwd) "1.0.0"
$ ${TURBO} build --filter foo -vv > out.log 2>&1
$ grep --quiet -F "Local turbo version: 1.0.0" out.log
$ echo "Running turbo with verbose output..."
Running turbo with verbose output...
$ ${TURBO} build --filter foo -vv 2>&1 | tee out.log
* (glob)
$ echo "=== Full output from out.log ==="
=== Full output from out.log ===
$ cat out.log
* (glob)
$ echo "=== Checking for version string ==="
=== Checking for version string ===
$ grep -F "Local turbo version: 1.0.0" out.log || echo "VERSION STRING NOT FOUND"
* (glob)
$ echo "=== Last line of output ==="
=== Last line of output ===
$ cat out.log | tail -n1
build --filter foo -vv --

Make sure we use local, and DO pass --skip-infer to newer binary
$ ${TESTDIR}/set_version.sh $(pwd) "1.8.0"
$ ${TURBO} build --filter foo -vv > out.log 2>&1
$ grep --quiet -F "Local turbo version: 1.8.0" out.log
$ echo "Running turbo with newer version..."
Running turbo with newer version...
$ ${TURBO} build --filter foo -vv 2>&1 | tee out.log
* (glob)
$ echo "=== Full output from out.log ==="
=== Full output from out.log ===
$ cat out.log
* (glob)
$ echo "=== Checking for version string ==="
=== Checking for version string ===
$ grep -F "Local turbo version: 1.8.0" out.log || echo "VERSION STRING NOT FOUND"
* (glob)
$ echo "=== Last line of output ==="
=== Last line of output ===
$ cat out.log | tail -n1
--skip-infer build --filter foo -vv --single-package --
Loading