Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions .moon/workspace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ projects:
node-toolchain: toolchains/node
node-depman-toolchain: toolchains/node-depman
rust-toolchain: toolchains/rust
system-toolchain: toolchains/system
typescript-toolchain: toolchains/typescript

pipeline:
Expand Down
37 changes: 13 additions & 24 deletions Cargo.lock

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

30 changes: 15 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,20 @@ toml = { version = "0.9.7", default-features = false, features = [
] }

# moon
moon_common = { version = "0.2.0" }
moon_config = { version = "0.2.0" }
moon_pdk = { version = "0.4.0" }
moon_pdk_api = { version = "0.4.1" }
moon_pdk_test_utils = { version = "0.4.2" }
moon_project = { version = "0.2.0" }
moon_target = { version = "0.2.0" }
# moon_common = { path = "../../moon/crates/common" }
# moon_config = { path = "../../moon/crates/config" }
# moon_pdk = { path = "../../moon/crates/pdk" }
# moon_pdk_api = { path = "../../moon/crates/pdk-api" }
# moon_pdk_test_utils = { path = "../../moon/crates/pdk-test-utils" }
# moon_project = { path = "../../moon/crates/project" }
# moon_target = { path = "../../moon/crates/target" }
# moon_common = { version = "0.2.0" }
# moon_config = { version = "0.2.0" }
# moon_pdk = { version = "0.4.0" }
# moon_pdk_api = { version = "0.4.1" }
# moon_pdk_test_utils = { version = "0.4.2" }
# moon_project = { version = "0.2.0" }
# moon_target = { version = "0.2.0" }
moon_common = { path = "../../moon/crates/common" }
moon_config = { path = "../../moon/crates/config" }
moon_pdk = { path = "../../moon/crates/pdk" }
moon_pdk_api = { path = "../../moon/crates/pdk-api" }
moon_pdk_test_utils = { path = "../../moon/crates/pdk-test-utils" }
moon_project = { path = "../../moon/crates/project" }
moon_target = { path = "../../moon/crates/target" }

# proto
proto_pdk = { version = "0.32.1" }
Expand All @@ -56,5 +56,5 @@ typescript_tsconfig_json = { version = "0.5.2", features = ["serialize"] }
codegen-units = 1
debug = false
lto = true
opt-level = "s"
opt-level = 2 # speed
panic = "abort"
8 changes: 4 additions & 4 deletions crates/extension-common/src/migrator.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use moon_common::Id;
use moon_config::{
LanguageType, OneOrMany, PartialInheritedTasksConfig, PartialProjectConfig,
PartialProjectToolchainConfig, PartialWorkspaceConfig,
PartialProjectToolchainsConfig, PartialWorkspaceConfig,
};
use moon_pdk::{AnyResult, VirtualPath};
use rustc_hash::FxHashMap;
Expand Down Expand Up @@ -70,11 +70,11 @@ impl Migrator {
LanguageType::JavaScript
},
),
toolchain: Some(PartialProjectToolchainConfig {
toolchains: Some(PartialProjectToolchainsConfig {
default: Some(OneOrMany::One(self.toolchain.clone())),
..PartialProjectToolchainConfig::default()
..Default::default()
}),
..PartialProjectConfig::default()
..Default::default()
},
);
}
Expand Down
12 changes: 6 additions & 6 deletions extensions/migrate-nx/src/nx_migrator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ use crate::nx_project_json::*;
use extension_common::migrator::*;
use moon_common::Id;
use moon_config::{
FilePath, GlobInput, GlobPath, Input, LayerType, OneOrMany, OutputPath,
PartialProjectDependsOn, PartialProjectMetadataConfig, PartialTaskArgs, PartialTaskConfig,
PartialTaskDependency, PartialTaskOptionsConfig, PartialVcsConfig, PartialWorkspaceProjects,
TaskOptionCache, TaskOptionEnvFile,
FilePath, GlobInput, GlobPath, Input, LayerType, OneOrMany, Output, PartialProjectDependsOn,
PartialProjectMetadataConfig, PartialTaskArgs, PartialTaskConfig, PartialTaskDependency,
PartialTaskOptionsConfig, PartialVcsConfig, PartialWorkspaceProjects, TaskOptionCache,
TaskOptionEnvFile,
};
use moon_pdk::{AnyResult, map_miette_error};
use moon_pdk_api::MoonContext;
Expand Down Expand Up @@ -410,7 +410,7 @@ fn migrate_noop_task(nx_target: &NxTargetOptions) -> AnyResult<PartialTaskConfig
// https://nx.dev/nx-api/nx/executors/run-commands
fn migrate_run_commands_task(nx_target: &NxTargetOptions) -> AnyResult<PartialTaskConfig> {
let mut config = PartialTaskConfig {
toolchain: Some(OneOrMany::One(Id::raw("system"))),
toolchains: Some(OneOrMany::One(Id::raw("system"))),
..PartialTaskConfig::default()
};

Expand Down Expand Up @@ -613,7 +613,7 @@ fn migrate_task(
let mut outputs = vec![];

for output in raw_outputs {
outputs.push(OutputPath::from_str(&replace_tokens(output, true))?);
outputs.push(Output::parse(replace_tokens(output, true))?);
}

if !outputs.is_empty() {
Expand Down
6 changes: 3 additions & 3 deletions extensions/migrate-turborepo/src/turbo_migrator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::turbo_json::*;
use extension_common::migrator::*;
use moon_common::Id;
use moon_config::{
FilePath, Input, OutputPath, PartialTaskArgs, PartialTaskConfig, PartialTaskDependency,
FilePath, Input, Output, PartialTaskArgs, PartialTaskConfig, PartialTaskDependency,
PartialTaskOptionsConfig, PartialWorkspaceProjects, TaskOptionCache, TaskOptionEnvFile,
TaskOutputStyle, TaskPreset,
};
Expand Down Expand Up @@ -284,9 +284,9 @@ impl TurboMigrator {

for output in raw_outputs {
if output.ends_with("/**") {
outputs.push(OutputPath::ProjectGlob(format!("{output}/*")));
outputs.push(Output::parse(format!("{output}/*"))?);
} else {
outputs.push(OutputPath::from_str(output)?);
outputs.push(Output::parse(output)?);
}
}

Expand Down
2 changes: 2 additions & 0 deletions toolchains/go/src/tier1.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use crate::config::GoToolchainConfig;
use extism_pdk::*;
use moon_config::LanguageType;
use moon_pdk::parse_toolchain_config;
use moon_pdk_api::*;
use schematic::SchemaBuilder;
Expand All @@ -15,6 +16,7 @@ pub fn register_toolchain(
Ok(Json(RegisterToolchainOutput {
name: "Go".into(),
plugin_version: env!("CARGO_PKG_VERSION").into(),
language: Some(LanguageType::Go),
config_file_globs: vec![],
exe_names: vec!["go".into(), "gofmt".into()],
lock_file_names: vec!["go.sum".into(), "go.work.sum".into()],
Expand Down
6 changes: 6 additions & 0 deletions toolchains/javascript/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## Unreleased

#### 🐞 Fixes

- Fixed an issue where implicit dependencies would sometimes not resolve.

## 0.2.2

#### 🚀 Updates
Expand Down
12 changes: 5 additions & 7 deletions toolchains/javascript/src/infer_tasks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::config::{JavaScriptPackageManager, JavaScriptToolchainConfig};
use crate::lockfiles::DenoJsonTask;
use moon_common::Id;
use moon_config::{
OneOrMany, OutputPath, PartialTaskArgs, PartialTaskConfig, PartialTaskDependency,
OneOrMany, Output, PartialTaskArgs, PartialTaskConfig, PartialTaskDependency,
PartialTaskOptionsConfig, TaskOptionRunInCI, TaskPreset,
};
use moon_pdk::{AnyResult, map_miette_error};
Expand Down Expand Up @@ -121,14 +121,12 @@ impl<'a> TasksInferrer<'a> {
config
.outputs
.get_or_insert_default()
.push(OutputPath::ProjectFile(output_path));
.push(Output::parse(output_path)?);
}
}

// preset + local
#[allow(deprecated)]
// preset
if self.is_dev_script_name(name) {
config.local = Some(true);
config.preset = Some(if self.has_watch_option(script) {
TaskPreset::Watcher
} else {
Expand All @@ -141,12 +139,12 @@ impl<'a> TasksInferrer<'a> {
package_manager,
JavaScriptPackageManager::Bun | JavaScriptPackageManager::Deno
) {
config.toolchain = Some(OneOrMany::Many(vec![
config.toolchains = Some(OneOrMany::Many(vec![
Id::raw("javascript"),
package_manager.get_runtime_toolchain(),
]));
} else {
config.toolchain = Some(OneOrMany::Many(vec![
config.toolchains = Some(OneOrMany::Many(vec![
Id::raw("javascript"),
Id::raw(package_manager.to_string()),
package_manager.get_runtime_toolchain(),
Expand Down
4 changes: 3 additions & 1 deletion toolchains/javascript/src/tier1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::config::*;
use crate::package_json::PackageJson;
use extism_pdk::*;
use moon_common::path::{is_root_level_source, to_relative_virtual_string};
use moon_config::DependencyScope;
use moon_config::{DependencyScope, LanguageType};
use moon_pdk::{
HostLogInput, host_log, is_project_toolchain_enabled, map_miette_error,
parse_toolchain_config_schema, plugin_err,
Expand Down Expand Up @@ -32,6 +32,7 @@ pub fn register_toolchain(
.into(),
),
plugin_version: env!("CARGO_PKG_VERSION").into(),
language: Some(LanguageType::JavaScript),
// For project detection
config_file_globs: vec![
"*.config.{js,cjs,mjs,ts,tsx,cts,mts}".into(),
Expand All @@ -46,6 +47,7 @@ pub fn register_toolchain(
"pnpm-workspace.yaml".into(),
".pnpmfile.*".into(),
// yarn
".yarn/**/*".into(),
".yarnrc.*".into(),
],
manifest_file_names: vec!["package.json".into()],
Expand Down
15 changes: 10 additions & 5 deletions toolchains/javascript/src/tier2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,14 @@ pub fn extend_project_graph(
if package_path.exists() {
let manifest = PackageJson::load(package_path)?;

if let Some(name) = &manifest.name {
packages.insert(name.to_owned(), (id, project_root, manifest));
}
// We need to track all packages, even those without a name
packages.insert(
manifest
.name
.clone()
.unwrap_or_else(|| format!("@moon-js-toolchain/{id}")),
(id, project_root, manifest),
);
}
}

Expand Down Expand Up @@ -185,10 +190,10 @@ pub fn define_requirements(

if let Some(package_manager) = config.package_manager {
if package_manager.is_for_node() {
output.requires.push("unstable_node".into());
output.requires.push("node".into());
}

output.requires.push(format!("unstable_{package_manager}"));
output.requires.push(format!("{package_manager}"));
}

Ok(Json(output))
Expand Down
Loading
Loading