Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openidea for openSUSE:Factory checked in at 2026-11-05 18:20:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openidea (Old) and /work/SRC/openSUSE:Factory/.openidea.new.3759290 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openidea" Thu Nov 5 18:20:02 2026 rev:2 rq:1394846 version:0.1.35 Changes: -------- --- /work/SRC/openSUSE:Factory/openidea/openidea.changes 2026-11-03 17:56:26.424515447 +0100 +++ /work/SRC/openSUSE:Factory/.openidea.new.3759290/openidea.changes 2026-11-05 18:20:51.387066482 +0100 @@ -1,0 +2,30 @@ +Tue Nov 3 18:30:16 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to version 0.1.35 (through 0.1.34): + * Java/Spring: find endpoints by request path, navigate + configuration keys, Maven resolves with the tool-window + profiles, library classes behind jar: URIs open + * Python: Ruff and Pyrefly language servers, Django test + configurations, scripts run with the project interpreter + * Editor: D and ERB modes, JSP highlighting, Go Module + template, npm scripts from package.json gutter icons + * Run/debug: .NET configurations, Cargo dependency updates, + CMake profiles + * Git: inline blame, Local Changes diff preview, worktree + discovery + * Agents: configurable executable per built-in agent, + one-click Copilot ACP registry install + * Many more fixes and improvements; see upstream's release + notes for the full list +- Rebase openidea-no-server-download.patch (upstream renamed + data_dir to local_data_dir), openidea-no-prebuilt-jars.patch + (Lombok agent 1.18.48-openidea.2 with the ECJ constructor fix, + java-usages 1.2.1) and openidea-no-agent-installs.patch (new + one-click ACP registry install: PATH adapters stay editable + and hide their registry twins); skip the new + python_servers_name_uv test, which exercises the disabled + tool installers +- Vendored npm set gains @codemirror/lang-java and @lezer/java + for JSP highlighting; the cargo vendor tree is unchanged + +------------------------------------------------------------------- Old: ---- openidea-0.1.33.tar.zst New: ---- openidea-0.1.35.tar.zst ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openidea.spec ++++++ --- /var/tmp/diff_new_pack.cqYihd/_old 2026-11-05 18:20:53.866169315 +0100 +++ /var/tmp/diff_new_pack.cqYihd/_new 2026-11-05 18:20:53.868169398 +0100 @@ -20,7 +20,7 @@ # Full DWARF pushed upstream's fat-LTO link past 37 GB: line tables only, as zed %global build_rustflags -Clink-arg=-Wl,-z,relro,-z,now -C debuginfo=1 -C strip=none Name: openidea -Version: 0.1.33 +Version: 0.1.35 Release: 0 Summary: IntelliJ IDEA-style IDE with a Rust core # Legal-Review-Notice: upstream is Apache-2.0; the rest is derived from what the @@ -221,6 +221,7 @@ for t in dotnet_tool_install_into_tool_path elixir_ls_needs_elixir_and_lists_its_debugger \ everything_missing_on_an_empty_system gem_install_wraps_stubs_with_gem_home \ npm_install_uses_tools_prefix npm_typescript_is_pinned_and_shared \ + python_servers_name_uv_when_it_makes_the_virtualenv \ release_install_end_to_end_without_network rust_analyzer_prefers_rustup_and_installs_component \ rust_analyzer_selects_openvsx_without_rustup rustup_proxy_without_component_is_missing; do skip="$skip --skip tests::$t" ++++++ openidea-0.1.33.tar.zst -> openidea-0.1.35.tar.zst ++++++ ++++ 39492 lines of diff (skipped) ++++++ openidea-no-agent-installs.patch ++++++ --- /var/tmp/diff_new_pack.cqYihd/_old 2026-11-05 18:20:54.700203911 +0100 +++ /var/tmp/diff_new_pack.cqYihd/_new 2026-11-05 18:20:54.704204077 +0100 @@ -12,7 +12,7 @@ --- a/crates/ide-agent/src/provider.rs +++ b/crates/ide-agent/src/provider.rs -@@ -38,18 +38,19 @@ +@@ -39,18 +39,19 @@ const BUILTIN: &[(&str, &str, Driver, &[&str], &str)] = &[ ("claude", "Claude Code", Driver::Claude, &["claude"], "Run `claude` in a terminal and sign in."), ("codex", "Codex", Driver::Codex, &["codex", "app-server"], "Run `codex login` in a terminal."), @@ -34,6 +34,23 @@ "Run `codex login` in a terminal.", ), ("gemini", "Gemini CLI", Driver::Acp, &["gemini", "--experimental-acp"], "Run `gemini` in a terminal and sign in."), +@@ -318,10 +319,14 @@ + for p in &defaults { + assert_eq!(p.source, AgentSource::Builtin); + assert!(p.default_program.is_some()); +- assert_eq!(p.command_editable, !p.id.ends_with("-acp")); ++ // Distribution build: the ACP adapters run from PATH, so their ++ // commands are editable like the other PATH-based built-ins; ++ // upstream's npx-fetched adapters stay read-only (PackageRunner). ++ let package_runner = matches!(p.default_program.as_deref(), Some("npx" | "bunx" | "uvx")); ++ assert_eq!(p.command_editable, !package_runner); + assert_eq!( + p.command_read_only_reason, +- p.id.ends_with("-acp").then_some(AgentCommandReadOnlyReason::PackageRunner) ++ package_runner.then_some(AgentCommandReadOnlyReason::PackageRunner) + ); + } + set_builtin_command(dir.path(), "codex", Some("/path with spaces/codex")).unwrap(); --- a/crates/ide-agent/src/registry.rs +++ b/crates/ide-agent/src/registry.rs @@ -25,6 +25,8 @@ @@ -45,7 +62,19 @@ /// [`maintain`] refreshes a saved index older than this, so updates show without opening /// the registry. const REFRESH_AFTER: Duration = Duration::from_secs(24 * 60 * 60); -@@ -364,6 +366,11 @@ +@@ -248,7 +250,10 @@ + } + + fn is_builtin(id: &str) -> bool { +- provider::is_builtin(canonical_id(id)) ++ // Distribution build: the ACP adapters run from PATH, so ++ // provider::is_builtin (which dedups only npx-fetched ACP built-ins) ++ // misses them; hide their registry twins explicitly. ++ (DISTRIBUTION_BUILD && matches!(id, "claude-acp" | "codex-acp")) || provider::is_builtin(canonical_id(id)) + } + + fn on_path(command: &str) -> bool { +@@ -376,6 +381,11 @@ } fn fetch(paths: &RegistryPaths, cancel: &CancellationToken) -> IdeResult<String> { @@ -57,7 +86,7 @@ let http = http()?; let text = http.get_text_limited(REGISTRY_URL, Some(MAX_REGISTRY_BYTES), cancel)?; parse(&text)?; -@@ -397,6 +404,13 @@ +@@ -410,6 +420,13 @@ .iter() .find(|e| e.id == id) .ok_or_else(|| IdeError::not_found(format!("{id} is not in the ACP Registry")))?; ++++++ openidea-no-prebuilt-jars.patch ++++++ --- /var/tmp/diff_new_pack.cqYihd/_old 2026-11-05 18:20:54.730205155 +0100 +++ /var/tmp/diff_new_pack.cqYihd/_new 2026-11-05 18:20:54.735205363 +0100 @@ -13,7 +13,7 @@ --- a/crates/ide-sdk/src/java.rs +++ b/crates/ide-sdk/src/java.rs -@@ -950,140 +950,17 @@ +@@ -1130,140 +1130,16 @@ /// The same jar supplies the JDT command and the private Maven output redirector. pub fn kotlin_bridge_bundle(data_dir: &Path) -> Option<PathBuf> { @@ -64,7 +64,7 @@ /// Installs the app-owned JDT LS command bundle, falling back to ordinary LSP on IO failure. pub fn usages_bundle(data_dir: &Path) -> Option<PathBuf> { -- let extension = data_dir.join("java-usages-1.1.1.jar"); +- let extension = data_dir.join("java-usages-1.2.1.jar"); - let bytes = include_bytes!("../../../plugins/java-usages/openidea-java-usages.jar"); - if std::fs::read(&extension).is_ok_and(|old| old == bytes) { - clean_usages_bundles(data_dir, &extension); @@ -120,12 +120,8 @@ - let _ = std::fs::remove_file(path); - } - } -+ // Distribution build: the prebuilt usages jar is not shipped (it needs the -+ // JDT LS jars to build); Find Usages uses standard LSP references. -+ let _ = data_dir; -+ None - } - +-} +- -#[cfg(test)] -mod usages_bundle_tests { - #[test] @@ -161,20 +157,26 @@ - assert_eq!(super::usages_bundle(dir.path()), Some(jar)); - assert_eq!(std::fs::read_dir(dir.path()).unwrap().count(), 1); - } --} ++ // Distribution build: the prebuilt usages jar is not shipped (it needs the ++ // JDT LS jars to build); Find Usages uses standard LSP references. ++ let _ = data_dir; ++ None + } --- a/crates/ide-tools/src/registry.rs +++ b/crates/ide-tools/src/registry.rs -@@ -593,13 +593,16 @@ +@@ -637,15 +637,16 @@ display: "Lombok (jdtls agent)", kind: Plugin, commands: &["lombok.jar"], -- // Equinox removed getModuleClassLoader(boolean), breaking lombok.config lookup. -- // Return to Maven Central once an official release includes lombok#4059. +- // Equinox removed getModuleClassLoader(boolean), breaking lombok.config lookup (lombok#4059); +- // ECJ 3.46.200 keeps the constructor call in a constructor's statements, which +- // @SneakyThrows / @NonNull must not wrap or precede (lombok#4089). +- // Return to Maven Central once an official release includes both. - // Source commit, build instructions and checksum: plugins/lombok/README.md. - method: Method::Bundled { -- filename: "lombok-1.18.48-openidea.1.jar", -- version: "1.18.48-openidea.1", -- bytes: include_bytes!("../../../plugins/lombok/lombok-1.18.48-openidea.1.jar"), +- filename: "lombok-1.18.48-openidea.2.jar", +- version: "1.18.48-openidea.2", +- bytes: include_bytes!("../../../plugins/lombok/lombok-1.18.48-openidea.2.jar"), + // Distribution build: the prebuilt patched agent is not shipped; jdtls + // takes Lombok from the Maven or Gradle cache or a -javaagent option. + method: Method::Release { @@ -206,9 +208,9 @@ - let info = tools.info("lombok", &[]).unwrap(); - let path = managed_bundle(env.root.parent().unwrap(), "lombok").unwrap(); - assert_eq!(info.status, ToolStatus::Installed); -- assert_eq!(info.version.as_deref(), Some("1.18.48-openidea.1")); +- assert_eq!(info.version.as_deref(), Some("1.18.48-openidea.2")); - assert_eq!(info.path, Some(path.clone().into())); -- assert_eq!(path.file_name().unwrap(), "lombok-1.18.48-openidea.1.jar"); +- assert_eq!(path.file_name().unwrap(), "lombok-1.18.48-openidea.2.jar"); - assert!(!info.can_install && !info.can_uninstall); - assert_eq!(tools.unavailable_reason(registry::find("lombok").unwrap()), None); - assert_eq!(fs::read(&legacy).unwrap(), b"old official agent", "other windows may still use it"); ++++++ openidea-no-server-download.patch ++++++ --- /var/tmp/diff_new_pack.cqYihd/_old 2026-11-05 18:20:54.754206151 +0100 +++ /var/tmp/diff_new_pack.cqYihd/_new 2026-11-05 18:20:54.757206275 +0100 @@ -15,7 +15,7 @@ arch: &str, progress: Arc<Progress>, ) -> IdeResult<std::path::PathBuf> { -- let (data, version, os, arch) = (state.data_dir.clone(), version.to_owned(), os.to_owned(), arch.to_owned()); +- let (data, version, os, arch) = (state.local_data_dir.clone(), version.to_owned(), os.to_owned(), arch.to_owned()); - tokio::task::spawn_blocking(move || { - ide_tools::server::fetch(&data, &version, &os, &arch, &ide_core::CancellationToken::new(), &|e| match e { - ide_tools::InstallEvent::Line { text } => tracing::info!("openidea-server download: {text}"), ++++++ package-lock.json ++++++ --- /var/tmp/diff_new_pack.cqYihd/_old 2026-11-05 18:20:54.817208764 +0100 +++ /var/tmp/diff_new_pack.cqYihd/_new 2026-11-05 18:20:54.822208972 +0100 @@ -6,12 +6,13 @@ "packages": { "": { "name": "openidea", - "version": "0.1.33", + "version": "0.1.35", "license": "Apache-2.0", "dependencies": { "@codemirror/autocomplete": "^6.20.3", "@codemirror/commands": "^6.11.1", "@codemirror/lang-html": "^6.4.12", + "@codemirror/lang-java": "^6.0.2", "@codemirror/lang-javascript": "^6.2.5", "@codemirror/language": "^6.13.1", "@codemirror/language-data": "^6.5.2",
