mirror of
https://github.com/denoland/deno.git
synced 2024-10-29 08:58:01 -04:00
chore(publish): add --no-fast-check flag (#22203)
This commit is contained in:
parent
81042fb875
commit
560390c93c
4 changed files with 34 additions and 6 deletions
|
@ -301,6 +301,7 @@ pub struct VendorFlags {
|
||||||
pub struct PublishFlags {
|
pub struct PublishFlags {
|
||||||
pub token: Option<String>,
|
pub token: Option<String>,
|
||||||
pub dry_run: bool,
|
pub dry_run: bool,
|
||||||
|
pub no_fast_check: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
@ -2384,6 +2385,12 @@ fn publish_subcommand() -> Command {
|
||||||
.help("Prepare the package for publishing performing all checks and validations without uploading")
|
.help("Prepare the package for publishing performing all checks and validations without uploading")
|
||||||
.action(ArgAction::SetTrue),
|
.action(ArgAction::SetTrue),
|
||||||
)
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::new("no-fast-check")
|
||||||
|
.long("no-fast-check")
|
||||||
|
.help("Skip Fast Check compatibility validation")
|
||||||
|
.action(ArgAction::SetTrue),
|
||||||
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3817,6 +3824,7 @@ fn publish_parse(flags: &mut Flags, matches: &mut ArgMatches) {
|
||||||
flags.subcommand = DenoSubcommand::Publish(PublishFlags {
|
flags.subcommand = DenoSubcommand::Publish(PublishFlags {
|
||||||
token: matches.remove_one("token"),
|
token: matches.remove_one("token"),
|
||||||
dry_run: matches.get_flag("dry-run"),
|
dry_run: matches.get_flag("dry-run"),
|
||||||
|
no_fast_check: matches.get_flag("no-fast-check"),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,13 @@ itest!(invalid_fast_check {
|
||||||
exit_code: 1,
|
exit_code: 1,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
itest!(no_fast_check {
|
||||||
|
args: "publish --no-fast-check --token 'sadfasdf'",
|
||||||
|
output: "publish/no_fast_check.out",
|
||||||
|
cwd: Some("publish/invalid_fast_check"),
|
||||||
|
exit_code: 1,
|
||||||
|
});
|
||||||
|
|
||||||
itest!(invalid_path {
|
itest!(invalid_path {
|
||||||
args: "publish --token 'sadfasdf'",
|
args: "publish --token 'sadfasdf'",
|
||||||
output: "publish/invalid_path.out",
|
output: "publish/invalid_path.out",
|
||||||
|
|
4
cli/tests/testdata/publish/no_fast_check.out
vendored
Normal file
4
cli/tests/testdata/publish/no_fast_check.out
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Ensuring type checks...
|
||||||
|
Check file:///[WILDCARD]/mod.ts
|
||||||
|
error: Following packages don't exist, follow the links and create them:
|
||||||
|
- https://jsr.io/new?scope=foo&package=bar&from=cli
|
|
@ -638,6 +638,7 @@ async fn publish_package(
|
||||||
|
|
||||||
async fn prepare_packages_for_publishing(
|
async fn prepare_packages_for_publishing(
|
||||||
cli_factory: &CliFactory,
|
cli_factory: &CliFactory,
|
||||||
|
no_fast_check: bool,
|
||||||
diagnostics_collector: &PublishDiagnosticsCollector,
|
diagnostics_collector: &PublishDiagnosticsCollector,
|
||||||
deno_json: ConfigFile,
|
deno_json: ConfigFile,
|
||||||
import_map: Arc<ImportMap>,
|
import_map: Arc<ImportMap>,
|
||||||
|
@ -660,6 +661,7 @@ async fn prepare_packages_for_publishing(
|
||||||
module_graph_builder,
|
module_graph_builder,
|
||||||
type_checker,
|
type_checker,
|
||||||
cli_options,
|
cli_options,
|
||||||
|
no_fast_check,
|
||||||
diagnostics_collector,
|
diagnostics_collector,
|
||||||
&[MemberRoots {
|
&[MemberRoots {
|
||||||
name: get_deno_json_package_name(&deno_json)?,
|
name: get_deno_json_package_name(&deno_json)?,
|
||||||
|
@ -690,6 +692,7 @@ async fn prepare_packages_for_publishing(
|
||||||
module_graph_builder,
|
module_graph_builder,
|
||||||
type_checker,
|
type_checker,
|
||||||
cli_options,
|
cli_options,
|
||||||
|
no_fast_check,
|
||||||
diagnostics_collector,
|
diagnostics_collector,
|
||||||
&roots,
|
&roots,
|
||||||
)
|
)
|
||||||
|
@ -734,6 +737,7 @@ async fn build_and_check_graph_for_publish(
|
||||||
module_graph_builder: &ModuleGraphBuilder,
|
module_graph_builder: &ModuleGraphBuilder,
|
||||||
type_checker: &TypeChecker,
|
type_checker: &TypeChecker,
|
||||||
cli_options: &CliOptions,
|
cli_options: &CliOptions,
|
||||||
|
no_fast_check: bool,
|
||||||
diagnostics_collector: &PublishDiagnosticsCollector,
|
diagnostics_collector: &PublishDiagnosticsCollector,
|
||||||
packages: &[MemberRoots],
|
packages: &[MemberRoots],
|
||||||
) -> Result<Arc<deno_graph::ModuleGraph>, deno_core::anyhow::Error> {
|
) -> Result<Arc<deno_graph::ModuleGraph>, deno_core::anyhow::Error> {
|
||||||
|
@ -756,12 +760,16 @@ async fn build_and_check_graph_for_publish(
|
||||||
|
|
||||||
collect_invalid_external_imports(&graph, diagnostics_collector);
|
collect_invalid_external_imports(&graph, diagnostics_collector);
|
||||||
|
|
||||||
log::info!("Checking fast check type graph for errors...");
|
let mut has_fast_check_diagnostics = false;
|
||||||
let has_fast_check_diagnostics = collect_fast_check_type_graph_diagnostics(
|
if !no_fast_check {
|
||||||
&graph,
|
log::info!("Checking fast check type graph for errors...");
|
||||||
packages,
|
has_fast_check_diagnostics = collect_fast_check_type_graph_diagnostics(
|
||||||
diagnostics_collector,
|
&graph,
|
||||||
);
|
packages,
|
||||||
|
diagnostics_collector,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if !has_fast_check_diagnostics {
|
if !has_fast_check_diagnostics {
|
||||||
log::info!("Ensuring type checks...");
|
log::info!("Ensuring type checks...");
|
||||||
let diagnostics = type_checker
|
let diagnostics = type_checker
|
||||||
|
@ -820,6 +828,7 @@ pub async fn publish(
|
||||||
let (publish_order_graph, prepared_package_by_name) =
|
let (publish_order_graph, prepared_package_by_name) =
|
||||||
prepare_packages_for_publishing(
|
prepare_packages_for_publishing(
|
||||||
&cli_factory,
|
&cli_factory,
|
||||||
|
publish_flags.no_fast_check,
|
||||||
&diagnostics_collector,
|
&diagnostics_collector,
|
||||||
config_file.clone(),
|
config_file.clone(),
|
||||||
import_map,
|
import_map,
|
||||||
|
|
Loading…
Reference in a new issue