Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(check): compiler options from workspace members #27785

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
d52ccd2
feat(check): compiler options from workspace members
nayeemrmn Nov 22, 2024
88f7510
wildcard
nayeemrmn Nov 22, 2024
8f5465e
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Nov 22, 2024
9707974
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Nov 26, 2024
7a3a73c
fix file patterns
nayeemrmn Nov 26, 2024
27561dd
smart diagnostics concatenation
nayeemrmn Nov 26, 2024
b716050
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Nov 27, 2024
874260d
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Nov 27, 2024
6e3cedd
use deno_config temp branch
nayeemrmn Nov 27, 2024
3e9a63f
fix
nayeemrmn Nov 27, 2024
6b73819
fix fixture
nayeemrmn Nov 27, 2024
c521bfb
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Nov 29, 2024
14b3eb2
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Nov 30, 2024
6499ad6
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 4, 2024
de4e641
WorkspaceFileContainer
nayeemrmn Dec 5, 2024
b3bd581
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 5, 2024
871750a
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 6, 2024
f36d70d
move remote specifier handling to deno_config
nayeemrmn Dec 7, 2024
e33d51d
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 7, 2024
59511cb
cleanup
nayeemrmn Dec 7, 2024
7ceeb0b
fix --doc-only
nayeemrmn Dec 7, 2024
4d081d2
dedup discovered/specified config
nayeemrmn Dec 7, 2024
dab8352
use WorkspaceFileContainer in deno test
nayeemrmn Dec 9, 2024
655190e
fix ext flag
nayeemrmn Dec 9, 2024
c22b0e4
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 9, 2024
42eb554
fix fixture
nayeemrmn Dec 9, 2024
61aa023
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 10, 2024
0c44814
use WorkspaceFileContainer for test --watch
nayeemrmn Dec 10, 2024
78de1fb
use WorkspaceFileContainer for bench
nayeemrmn Dec 10, 2024
1af0cde
use single workspace dir for test -c and bench -c
nayeemrmn Dec 10, 2024
0c188eb
restore test --watch=... support
nayeemrmn Dec 10, 2024
b8b9eea
restore checking to test --watch
nayeemrmn Dec 10, 2024
37d45d0
use WorkspaceFileContainer for bench --watch
nayeemrmn Dec 10, 2024
83ee4c9
lint
nayeemrmn Dec 10, 2024
de37f41
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 10, 2024
f8be309
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 11, 2024
8f5d50c
private CliOptions::flags again
nayeemrmn Dec 11, 2024
0e2f9e7
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 11, 2024
f45d39b
move -c handling to CliOptions methods
nayeemrmn Dec 11, 2024
ff1f921
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 11, 2024
161468a
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 13, 2024
9a6263c
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 16, 2024
5d76fc9
remove need for outer factory
nayeemrmn Dec 16, 2024
5807b53
reduce dependency on outer CliOptions
nayeemrmn Dec 16, 2024
f5b258c
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 16, 2024
c7f2899
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 17, 2024
9f8d833
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 17, 2024
1c2fb5c
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 19, 2024
03cb973
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Dec 30, 2024
60de9fa
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 1, 2025
e91b0ef
fmt
nayeemrmn Jan 1, 2025
f61286b
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 6, 2025
01fb217
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 6, 2025
2eae9a9
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 6, 2025
b0cbae7
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 7, 2025
5a1bb6b
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 14, 2025
6128282
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 15, 2025
8719cb7
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 15, 2025
c8a0404
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 16, 2025
8d5fb5a
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 18, 2025
0ae3090
fix merge
nayeemrmn Jan 18, 2025
9d9a88f
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 20, 2025
766452f
single factory
nayeemrmn Jan 20, 2025
1e073ee
don't store specifier info
nayeemrmn Jan 20, 2025
1dd3614
remote CliFactoryWithWorkspaceFiles::initial_cwd()
nayeemrmn Jan 20, 2025
798f733
workspace_files
nayeemrmn Jan 20, 2025
36fcff8
coverage fixture
nayeemrmn Jan 20, 2025
971ec9b
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 20, 2025
1e9e24f
scoped jsx import source config
nayeemrmn Jan 20, 2025
c2a6fa1
Merge remote-tracking branch 'upstream/main' into check-workspace-mem…
nayeemrmn Jan 22, 2025
67c4da4
abstract CliOptions creation
nayeemrmn Jan 22, 2025
c885735
use closure for get_dirs_with_files
nayeemrmn Jan 22, 2025
85c8e4d
use closure for collect_specifiers
nayeemrmn Jan 22, 2025
532e3b3
CliFactor::with_watcher_communicator()
nayeemrmn Jan 22, 2025
bf82fe2
fixup! CliFactor::with_watcher_communicator()
nayeemrmn Jan 22, 2025
f8cb237
Merge branch 'main' into check-workspace-member-compiler-options
dsherret Jan 22, 2025
8ee8582
Update to mostly only change TypeChecker
dsherret Jan 22, 2025
a18bf43
Not sure why this test output was different?
dsherret Jan 22, 2025
7024cf8
clippy
dsherret Jan 22, 2025
209801a
improve finding members
dsherret Jan 23, 2025
58275aa
update to display diagnostics by folder
dsherret Jan 23, 2025
1b82b1c
Merge branch 'main' into check-workspace-member-compiler-options2
dsherret Jan 24, 2025
f830c67
Add TsConfigResolver
dsherret Jan 24, 2025
ebd5ca1
updates based on deno_config changes
dsherret Jan 24, 2025
857d993
only log once
dsherret Jan 24, 2025
b1013a9
conditionally inject @types/node
dsherret Jan 24, 2025
7339504
streaming errors and rework this to be more correct
dsherret Jan 25, 2025
64a9fe6
do not show check when there is nothing to check
dsherret Jan 25, 2025
40dd0a8
slightly better
dsherret Jan 25, 2025
bee6511
fix test
dsherret Jan 25, 2025
7255a9e
Merge branch 'main' into check-workspace-member-compiler-options2
dsherret Jan 27, 2025
4ab1c29
duplicates
dsherret Jan 27, 2025
9fcdfc7
Merge branch 'main' into check-workspace-member-compiler-options2
dsherret Jan 27, 2025
e16f70a
improve grouping files together for type checking
dsherret Jan 28, 2025
b1cda9d
Improve names
dsherret Jan 28, 2025
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
Prev Previous commit
Next Next commit
reduce dependency on outer CliOptions
  • Loading branch information
nayeemrmn committed Dec 16, 2024
commit 5807b53dae8b1bfb4d91d04f0ac5579961463af0
66 changes: 0 additions & 66 deletions cli/args/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ use std::io::Cursor;
use std::io::Read;
use std::io::Seek;
use std::net::SocketAddr;
use std::num::NonZeroUsize;
use std::path::Path;
use std::path::PathBuf;
use std::sync::Arc;
Expand Down Expand Up @@ -264,22 +263,6 @@ impl CacheSetting {
}
}

pub struct WorkspaceBenchOptions {
pub filter: Option<String>,
pub json: bool,
pub no_run: bool,
}

impl WorkspaceBenchOptions {
pub fn resolve(bench_flags: &BenchFlags) -> Self {
Self {
filter: bench_flags.filter.clone(),
json: bench_flags.json,
no_run: bench_flags.no_run,
}
}
}

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct BenchOptions {
pub files: FilePatterns,
Expand Down Expand Up @@ -375,41 +358,6 @@ fn resolve_fmt_options(
options
}

#[derive(Clone, Debug)]
pub struct WorkspaceTestOptions {
pub doc: bool,
pub no_run: bool,
pub fail_fast: Option<NonZeroUsize>,
pub permit_no_files: bool,
pub filter: Option<String>,
pub shuffle: Option<u64>,
pub concurrent_jobs: NonZeroUsize,
pub trace_leaks: bool,
pub reporter: TestReporterConfig,
pub junit_path: Option<String>,
pub hide_stacktraces: bool,
}

impl WorkspaceTestOptions {
pub fn resolve(test_flags: &TestFlags) -> Self {
Self {
permit_no_files: test_flags.permit_no_files,
concurrent_jobs: test_flags
.concurrent_jobs
.unwrap_or_else(|| NonZeroUsize::new(1).unwrap()),
doc: test_flags.doc,
fail_fast: test_flags.fail_fast,
filter: test_flags.filter.clone(),
no_run: test_flags.no_run,
shuffle: test_flags.shuffle,
trace_leaks: test_flags.trace_leaks,
reporter: test_flags.reporter,
junit_path: test_flags.junit_path.clone(),
hide_stacktraces: test_flags.hide_stacktraces,
}
}
}

#[derive(Debug, Clone)]
pub struct TestOptions {
pub files: FilePatterns,
Expand Down Expand Up @@ -1501,13 +1449,6 @@ impl CliOptions {
})
}

pub fn resolve_workspace_test_options(
&self,
test_flags: &TestFlags,
) -> WorkspaceTestOptions {
WorkspaceTestOptions::resolve(test_flags)
}

pub fn resolve_test_options_for_members(
&self,
test_flags: &TestFlags,
Expand All @@ -1533,13 +1474,6 @@ impl CliOptions {
Ok(member_options)
}

pub fn resolve_workspace_bench_options(
&self,
bench_flags: &BenchFlags,
) -> WorkspaceBenchOptions {
WorkspaceBenchOptions::resolve(bench_flags)
}

pub fn resolve_bench_options_for_members(
&self,
bench_flags: &BenchFlags,
Expand Down
36 changes: 27 additions & 9 deletions cli/factory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1163,6 +1163,7 @@ impl WorkspaceDirFilesFactory {

pub struct WorkspaceFilesFactory {
dirs: Vec<WorkspaceDirFilesFactory>,
initial_cwd: PathBuf,
}

impl WorkspaceFilesFactory {
Expand All @@ -1186,6 +1187,10 @@ impl WorkspaceFilesFactory {
cli_options: &CliOptions,
watcher_communicator: Option<&Arc<WatcherCommunicator>>,
) -> Result<Self, AnyError> {
let initial_cwd = cli_options.initial_cwd().to_path_buf();
if let Some(watcher_communicator) = watcher_communicator {
let _ = watcher_communicator.watch_paths(cli_options.watch_paths());
}
workspace_dirs_with_files.sort_by_cached_key(|(d, _)| d.dir_url().clone());
let all_scopes = Arc::new(
workspace_dirs_with_files
Expand All @@ -1197,6 +1202,15 @@ impl WorkspaceFilesFactory {
let dir_count = workspace_dirs_with_files.len();
let mut dirs = Vec::with_capacity(dir_count);
for (workspace_dir, files) in workspace_dirs_with_files {
if let Some(watcher_communicator) = watcher_communicator {
let _ = watcher_communicator.watch_paths(
files
.include
.iter()
.flat_map(|set| set.base_paths())
.collect(),
);
}
let scope_options = (dir_count > 1).then(|| ScopeOptions {
scope: workspace_dir
.has_deno_or_pkg_json()
Expand Down Expand Up @@ -1237,7 +1251,19 @@ impl WorkspaceFilesFactory {
permissions_options: Default::default(),
});
}
Ok(Self { dirs })
Ok(Self { dirs, initial_cwd })
}

pub fn dirs(&self) -> &Vec<WorkspaceDirFilesFactory> {
&self.dirs
}

pub fn initial_cwd(&self) -> &PathBuf {
&self.initial_cwd
}

pub fn found_specifiers(&self) -> bool {
self.dirs.iter().any(|e| !e.specifiers.is_empty())
}

pub async fn check(&self) -> Result<(), AnyError> {
Expand Down Expand Up @@ -1282,12 +1308,4 @@ impl WorkspaceFilesFactory {
}
Ok(())
}

pub fn dirs(&self) -> &Vec<WorkspaceDirFilesFactory> {
&self.dirs
}

pub fn found_specifiers(&self) -> bool {
self.dirs.iter().any(|e| !e.specifiers.is_empty())
}
}
31 changes: 8 additions & 23 deletions cli/tools/bench/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -432,11 +432,8 @@ pub async fn run_benchmarks(
flags: Arc<Flags>,
bench_flags: BenchFlags,
) -> Result<(), AnyError> {
let log_level = flags.log_level;
let cli_options = CliOptions::from_flags(flags)?;
let workspace_bench_options =
cli_options.resolve_workspace_bench_options(&bench_flags);
let log_level = cli_options.log_level();

let workspace_dirs_with_files = cli_options
.resolve_bench_options_for_members(&bench_flags)?
.into_iter()
Expand Down Expand Up @@ -472,16 +469,16 @@ pub async fn run_benchmarks(

workspace_files_factory.check().await?;

if workspace_bench_options.no_run {
if bench_flags.no_run {
return Ok(());
}

bench_specifiers(
&workspace_files_factory,
None,
BenchSpecifierOptions {
filter: TestFilter::from_flag(&workspace_bench_options.filter),
json: workspace_bench_options.json,
filter: TestFilter::from_flag(&bench_flags.filter),
json: bench_flags.json,
log_level,
},
)
Expand All @@ -508,25 +505,13 @@ pub async fn run_benchmarks_with_watch(
let bench_flags = bench_flags.clone();
watcher_communicator.show_path_changed(changed_paths.clone());
Ok(async move {
let log_level: Option<Level> = flags.log_level;
let cli_options = CliOptions::from_flags(flags)?;
let workspace_bench_options =
cli_options.resolve_workspace_bench_options(&bench_flags);
let log_level = cli_options.log_level();

let _ = watcher_communicator.watch_paths(cli_options.watch_paths());
let workspace_dirs_with_files = cli_options
.resolve_bench_options_for_members(&bench_flags)?
.into_iter()
.map(|(d, o)| (d, o.files))
.collect::<Vec<_>>();
let watch_paths = workspace_dirs_with_files
.iter()
.filter_map(|(_, files)| {
files.include.as_ref().map(|set| set.base_paths())
})
.flatten()
.collect::<Vec<_>>();
let _ = watcher_communicator.watch_paths(watch_paths);
let workspace_files_factory =
WorkspaceFilesFactory::from_workspace_dirs_with_files(
workspace_dirs_with_files,
Expand Down Expand Up @@ -554,16 +539,16 @@ pub async fn run_benchmarks_with_watch(

workspace_files_factory.check().await?;

if workspace_bench_options.no_run {
if bench_flags.no_run {
return Ok(());
}

bench_specifiers(
&workspace_files_factory,
changed_paths.map(|p| p.into_iter().collect()).as_ref(),
BenchSpecifierOptions {
filter: TestFilter::from_flag(&workspace_bench_options.filter),
json: workspace_bench_options.json,
filter: TestFilter::from_flag(&bench_flags.filter),
json: bench_flags.json,
log_level,
},
)
Expand Down
Loading
Loading