Reorganize AI assistant instructions for multi-agent support#2
Reorganize AI assistant instructions for multi-agent support#2vogella wants to merge 56 commits into
Conversation
Changed ProjectDescription.hasPrivateChanges() to use HashSet instead of Set.of() to handle duplicate natures gracefully. Set.of() throws IllegalArgumentException on duplicates, but HashSet tolerates them and correctly compares nature sets. Also added test case testDuplicateNatures() to ensure this regression doesn't occur again.
This commit converts the following terminal test suite classes from JUnit3/4 to JUnit5: - AutomatedTestSuite.java: Converted from JUnit3 TestCase with suite() method to JUnit5 @Suite/@SelectClasses - AutomatedPluginTestSuite.java: Converted from JUnit3 TestCase with suite() method to JUnit5 @Suite/@SelectClasses - terminal.internal.emulator.AllTestSuite.java: Converted from JUnit3 TestCase with suite() method to JUnit5 @Suite/@SelectClasses - terminal.internal.model.AllTestSuite.java: Converted from JUnit3 TestCase with suite() method to JUnit5 @Suite/@SelectClasses - terminal.model.AllTestSuite.java: Converted from JUnit3 TestCase/JUnit4TestAdapter to JUnit5 @Suite/@SelectClasses Updated MANIFEST.MF to include org.junit.platform.suite.api import for JUnit5 suite annotations. All tests (336) continue to pass after the conversion. The migration follows the pattern of replacing: - extends TestCase with plain classes - static Test suite() methods with @suite and @SelectClasses annotations - suite.addTestSuite() calls with class references in @SelectClasses - JUnit4TestAdapter usage with direct class references The test functionality remains identical, only the test runner framework has been modernized.
…gurations are disabled The previous patch was not completely fixed the issue. Fix issue eclipse-platform#2167 Signed-off-by: Pauline DEVILLE <pauline.deville@cea.fr>
Signed-off-by: Pauline DEVILLE <pauline.deville@cea.fr>
This commit fixes launch not found error while switching from modified launch config tab to new launch config tab. Fixes : eclipse-platform#2003
This commit fixes Add to run/debug favorite not showing in launch contexts and updates labels for launches if its already exists in run/debug config
This commit adds a filter text field that allows users to quickly find and select launch configurations without manually expanding all launch types or scrolling through the list.
…rminal The Eclipse Terminal feature replaces a whole set of features that the TM project used to provide. The granularity of the TM project is collapsed into a single feature in Eclipse Terminal. For ISVs that require additional granularity they are advised to provide their own features that lists their requirements
This commit improves Copy Expression by excluding eclipse ui values such as pending, error and disabled
Remove redundant return and additional empty string calculation
- Main fix: the child path created from the link should use `realParentPath` to avoid silent `NoSuchFileException`'s if the constructed link does not match actual (fully resolved) file system state of the local file we are checking. Original code run into (silent) exceptions and because of that was not able to detect some of possible recursive links. - Removed pattern checking for "../X" because backwards links can also be created with absolute paths, as seen in `Bug_185247_recursiveLinks.test5_linkParentDirectoyTwiceWithAbsolutePath(boolean)` - Added regression test `SymlinkResourceTest.testGithubBug2220`. - Added `UnifiedTree` methods to set/read `disable_advanced_recursive_link_checks` flag in tests so we can test both variants of link checking code. - Updated existing tests to test both advanced / simple link checks (where possible): `SymlinkResourceTest`, `Bug_185247_recursiveLinks` & `Bug_185247_LinuxTests` - Improved `WorkspaceResetExtension` to properly report test names (it only reported `false` or `true` for parametrized tests). Fixes eclipse-platform#2220
The TreeMap data retrieval is slower compared to HashMap and TreeMap "sorted" behavior is only used in matchingPrefixDo() and overLappingResourcesDo() while updating resources. Reading unchanged data will be faster if using HashMap, updating the data will use TreeSet and still be as fast as before. Fixes eclipse-platform#2251
Add shortenWindowsCommandLine() to shorten all command line arguments that exceed Windows MAX_PATH limit, not just the working directory. This fixes issues where Eclipse is unable to launch processes with long executable paths on Windows. The fix uses Windows GetShortPathName API via Win32Handler to convert long paths to their 8.3 short form before passing them to ProcessBuilder or Runtime.exec(). Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com> Version bump(s) for 4.38 stream
…racters in command lines (eclipse-platform#26) * Initial plan * Fix null character in Win32Handler.getShortPathName The issue was that GetShortPathName returns the total length of the shortened path (including prefix like \\?\), but when creating the String from the buffer with an offset, we need to use (newLength - offset) as the length parameter, not newLength. This was causing the String constructor to read past the actual data, picking up null characters from the uninitialized buffer. Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com>
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](actions/setup-java@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
This commit will enable Terminate and Remove option in debug view context only if there's a valid selection
This commit fixes custom breakpoint labels not being rendered in breakpoints view when breakpoints organized based on any groupings
Bug fixes:
- Set label background to avoid overlapping text if theming is disabled
- Trim inline editor text to avoid "invisible" breakpoints
- Add more space for inline editor if original labels is very short
Refactoring:
- perform preconditions checking at the beginning
- extracted repeated dispose() code to InlineEditor.dispose()
- extract Mac workaround code to dedicated method
- extract editor extent calculation to dedicated method
- removed useless tree.setText(current) and tree.setText("") calls
- don't use syncExec to get RGB of red color
Fixes eclipse-platform#2262
Merge JVM and OS trust stores in case opt-in system property eclipse.platform.mergeTrust is set and trust is not otherwise customized via the javax.net.ssl.trustStore[...] system properties. Resolves: https://bugs.eclipse.org/bugs/show_bug.cgi?id=567504 eclipse-platform#1690 Obsoletes (to-be-reverted): eclipse-platform/eclipse.platform.releng.aggregator#929 eclipse-packaging/packages#224 Replaces: eclipse-equinox/equinox#1176 See also: eclipse-simrel/.github#38
Rename .github/copilot-instructions.md to AGENTS.md at the root level to make it accessible to multiple AI coding assistants. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Create CLAUDE.md file with repository-specific instructions for Claude AI coding assistant, copied from AGENTS.md content. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Update AGENTS.md title and add AI agent-specific sections for GitHub Copilot, Claude Code, and other AI assistants. Provides guidance on the strengths of each tool and how they should interact with the repository. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Closing to recreate against upstream eclipse-platform/eclipse.platform repository |
Summary of ChangesHello @vogella, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a comprehensive overhaul of how AI assistant instructions are structured within the repository, moving towards a more inclusive and multi-agent friendly approach. Beyond this significant documentation update, the changes encompass a wide array of technical improvements, including critical fixes for Windows path handling, strategic deprecations to streamline APIs, and the integration of a robust merged SSL trust store mechanism. These updates collectively aim to enhance the platform's stability, maintainability, and compatibility while preparing for future development paradigms. Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request is quite large and combines several unrelated changes. While the main goal is to reorganize AI assistant instructions, it also includes bug fixes for long paths on Windows and recursive symbolic links, UI enhancements like a toggle-able 'Add to Favorites' action and a filter in the launch configuration export wizard, and significant API cleanup and code modernization. In the future, it would be better to split such diverse changes into separate pull requests for easier review. Overall, the changes are positive, but I have identified a few issues, mainly related to consistency in the new documentation and some minor typos in the code.
|
|
||
| ## Repository Overview | ||
|
|
||
| This repository contains the core Eclipse Platform components that form the basis for the Eclipse IDE. It is a **large-scale Java/OSGi project** (~120MB, 5,600+ Java files across 38 Maven modules) using **Maven/Tycho** for building Eclipse RCP bundles and features. |
There was a problem hiding this comment.
This file is missing the important warning that this repository cannot be built in isolation, which is present in CLAUDE.md. This is critical information for any agent (or human) trying to build the project. Please add a similar warning here for clarity and to prevent build confusion.
| This repository contains the core Eclipse Platform components that form the basis for the Eclipse IDE. It is a **large-scale Java/OSGi project** (~120MB, 5,600+ Java files across 38 Maven modules) using **Maven/Tycho** for building Eclipse RCP bundles and features. | |
| This repository contains the core Eclipse Platform components that form the basis for the Eclipse IDE. It is a **large-scale Java/OSGi project** (~120MB, 5,600+ Java files across 38 Maven modules) using **Maven/Tycho** for building Eclipse RCP bundles and features. | |
| **⚠️ IMPORTANT: This repository CANNOT be built in isolation.** It depends on a parent POM (`eclipse-platform-parent`) from the [eclipse.platform.releng.aggregator](https://github.com/eclipse-platform/eclipse.platform.releng.aggregator) repository. |
| /** | ||
| * Excludes unwanted labels from the selected item | ||
| * | ||
| * @param itemData Selected object | ||
| * @param label Current label | ||
| * @return filtered label or null if label or item is null | ||
| */ | ||
| protected String exludeLabels(Object itemData, String label) { |
There was a problem hiding this comment.
There is a typo in the method name exludeLabels. It should be excludeLabels. Since this is a protected method intended for subclassing, correcting the name is important for API clarity. This will require updates at the call site (line 149) and in overriding classes like CopyExpressionsToClipboardActionDelegate.
| /** | |
| * Excludes unwanted labels from the selected item | |
| * | |
| * @param itemData Selected object | |
| * @param label Current label | |
| * @return filtered label or null if label or item is null | |
| */ | |
| protected String exludeLabels(Object itemData, String label) { | |
| /** | |
| * Excludes unwanted labels from the selected item | |
| * | |
| * @param itemData Selected object | |
| * @param label Current label | |
| * @return filtered label or null if label or item is null | |
| */ | |
| protected String excludeLabels(Object itemData, String label) { |
| This repository contains the core Eclipse Platform components that form the basis for the Eclipse IDE. It is a **large-scale Java/OSGi project** (~120MB, 5,600+ Java files across 38 Maven modules) using **Maven/Tycho** for building Eclipse RCP bundles and features. | ||
|
|
||
| **Key Technologies:** | ||
| - Language: Java (JDK 21) |
There was a problem hiding this comment.
| @@ -0,0 +1,267 @@ | |||
| # Eclipse Platform Repository - Copilot Instructions | |||
| } | ||
| } else if (i == 0) { | ||
| // Only warn for the executable path, as that's the most critical | ||
| log(Status.warning("Executable path exceeds Window's MAX_PATH limit and shortening the path failed: " + arg)); //$NON-NLS-1$ |
There was a problem hiding this comment.
There's a grammatical error in the warning message. "Window's" should be "Windows'".
| log(Status.warning("Executable path exceeds Window's MAX_PATH limit and shortening the path failed: " + arg)); //$NON-NLS-1$ | |
| log(Status.warning("Executable path exceeds Windows' MAX_PATH limit and shortening the path failed: " + arg)); //$NON-NLS-1$ |
Summary
.github/copilot-instructions.mdtoAGENTS.mdat repository root for better visibilityCLAUDE.mdwith repository-specific instructions for Claude CodeAGENTS.mdwith agent-specific guidance for GitHub Copilot, Claude Code, and other AI assistantsMotivation
The previous
.github/copilot-instructions.mdfile was specific to GitHub Copilot. This restructuring:AGENTS.mdfile that all AI agents can referenceCLAUDE.mdfor Claude Code integrationChanges
.github/copilot-instructions.md→AGENTS.md(more generic name, better location)CLAUDE.md- Claude Code specific instructionsAGENTS.mdwith new section "AI Agent-Specific Notes" covering:Test Plan
AGENTS.mdis accessible at repository rootCLAUDE.mdis accessible at repository root🤖 Generated with Claude Code