дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 11:15:40 +02:00
fix(workspace): unify nested project discovery and run ownership (#1716)
CI / Changes (push) Successful in 1s
Language smoke / Language smoke (go) (push) Failing after 6s
Language smoke / Language smoke (java) (push) Failing after 5s
Language smoke / Language smoke (kotlin) (push) Failing after 5s
Language smoke / Language smoke (python) (push) Failing after 4s
Language smoke / Language smoke (typescript) (push) Failing after 4s
Language smoke / Language smoke (rust) (push) Failing after 5s
CI / Rust (ubuntu-22.04) (push) Failing after 43s
CI / Plugins (SDK, official, fixtures) (push) Failing after 1m19s
CI / Remote server (linux musl) (push) Failing after 1m32s
CI / Cargo deny (push) Successful in 54s
CI / E2E (push) Successful in 15m57s
CI / Frontend (push) Successful in 24m49s
CI / Rust (macos-latest) (push) Canceled after 0s
CI / Rust (windows-latest) (push) Canceled after 0s
CI / Changes (push) Successful in 1s
Language smoke / Language smoke (go) (push) Failing after 6s
Language smoke / Language smoke (java) (push) Failing after 5s
Language smoke / Language smoke (kotlin) (push) Failing after 5s
Language smoke / Language smoke (python) (push) Failing after 4s
Language smoke / Language smoke (typescript) (push) Failing after 4s
Language smoke / Language smoke (rust) (push) Failing after 5s
CI / Rust (ubuntu-22.04) (push) Failing after 43s
CI / Plugins (SDK, official, fixtures) (push) Failing after 1m19s
CI / Remote server (linux musl) (push) Failing after 1m32s
CI / Cargo deny (push) Successful in 54s
CI / E2E (push) Successful in 15m57s
CI / Frontend (push) Successful in 24m49s
CI / Rust (macos-latest) (push) Canceled after 0s
CI / Rust (windows-latest) (push) Canceled after 0s
* fix(build): scope Kotlin bridge to linked Maven modules * fix(run): resolve nested Go modules for context runs * fix(gradle): discover nested builds and select compatible JVMs * fix(workspace): share project discovery and module ownership * fix(run): keep root toolchains for nested modules and resolve them once per module - Python run configurations of a nested module without its own virtualenv use the closest one up to the project root. - Gradle builds and runs fall back to the JDK matching the project's Java version when the Gradle version is unknown. - Module-local interpreters and toolchains are resolved lazily, once per owning module. - Tests build expected paths per segment so they hold on Windows.
Цей коміт міститься в:
1 джерело
763bcc056c
коміт
ba9ce1d842
29 files changed
+1770
-309
No files matched your search
@@ -540,10 +540,12 @@ pub fn project_java_version(module_dir: &Path) -> Option<u32> {
|
||||
}
|
||||
for name in ["build.gradle.kts", "build.gradle"] {
|
||||
let Some(text) = read(name) else { continue };
|
||||
if let Some(i) = text.find("JavaLanguageVersion.of(") {
|
||||
let rest = &text[i + "JavaLanguageVersion.of(".len()..];
|
||||
if let Some(v) = parse_java_version(rest.split(')').next().unwrap_or_default()) {
|
||||
return Some(v);
|
||||
for key in ["JavaLanguageVersion.of(", "jvmToolchain("] {
|
||||
if let Some(i) = text.find(key) {
|
||||
let rest = &text[i + key.len()..];
|
||||
if let Some(v) = parse_java_version(rest.split(')').next().unwrap_or_default()) {
|
||||
return Some(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
for key in ["sourceCompatibility", "targetCompatibility"] {
|
||||
@@ -1138,6 +1140,14 @@ mod tests {
|
||||
assert_eq!(project_java_version(dir), Some(11));
|
||||
std::fs::write(dir.join("build.gradle.kts"), "sourceCompatibility = '1.8'").unwrap();
|
||||
assert_eq!(project_java_version(dir), Some(8));
|
||||
for (script, version) in [
|
||||
("kotlin { jvmToolchain(21) }", Some(21)),
|
||||
("kotlin { jvmToolchain(17) }", Some(17)),
|
||||
("kotlin { jvmToolchain(projectVersion) }", None),
|
||||
] {
|
||||
std::fs::write(dir.join("build.gradle.kts"), script).unwrap();
|
||||
assert_eq!(project_java_version(dir), version);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Заблокувати користувача