Skip to content

Extend CONTRIBUTING.md and adapt some Eclipse project settings to simplify getting started#176

Merged
jdneo merged 3 commits into
microsoft:mainfrom
travkin79:patch/update-contribution-guide
May 13, 2026
Merged

Extend CONTRIBUTING.md and adapt some Eclipse project settings to simplify getting started#176
jdneo merged 3 commits into
microsoft:mainfrom
travkin79:patch/update-contribution-guide

Conversation

@travkin79
Copy link
Copy Markdown
Contributor

@travkin79 travkin79 commented May 12, 2026

This PR

  • explains in more details how to start contributing, e.g. how to import Eclipse projects and how to launch the plug-ins
  • adds .project files and Eclipse settings to simplify Eclipse project import for new developers
  • Explains how to configure the Checkstyle Eclipse plug-in to work with this git repo

@travkin79
Copy link
Copy Markdown
Contributor Author

Hello @jdneo,
I have some suggestions how to simplify the first steps for new contributors. Could you please take a look at this PR? Do the suggestions make sense for you? Is it ok to have them in one single PR?

Besides, I had some questions left:

  • Which of the two target definition files are you usually using for development? I took target-tm-terminal.target
  • It seems, the launch config launch/plugin_debug_configuration.launch is not up-to-date or incomplete. For example, I didn't see any agent bundles selected. Are you usually using some other launch config? I guess, there should be different launch configs, one for each OS or one config explicitly for a particular OS.

@jdneo
Copy link
Copy Markdown
Member

jdneo commented May 12, 2026

Thank you, sorry for the confusion we have. I guess we do have some gaps here for the contribution.

Which of the two target definition files are you usually using for development? I took target-tm-terminal.target

This is a good point. TBH, I usually just using the running platform to makes sure the launched debug session is similar to a real eclipse instance. But when it comes to debug a test case, I will switch to target-terminal.target because I use a newer Eclipse version. (There is a bundle namespace change between old eclipse and new eclipse for the terminal bundle, that's why we have two of them.)

But I admit that this setup is wired, I'm just not able to find some time organize them systematically.

It seems, the launch config launch/plugin_debug_configuration.launch is not up-to-date or incomplete. For example, I didn't see any agent bundles selected. Are you usually using some other launch config? I guess, there should be different launch configs, one for each OS or one config explicitly for a particular OS.

Because I usually use running platform as the target platform, so when I launch a debug session, I enabled all the plugins. Maybe this is not the best practice? Any suggestions?

@travkin79
Copy link
Copy Markdown
Contributor Author

travkin79 commented May 12, 2026

Hi @jdneo,

... sorry for the confusion we have.

No problem.

Concerning the target platform definitions: I think, developers not familiar with copilot-for-eclipse should preferably use one of the target definition files. I tried target-terminal.target at first, but the launch config seems to be prepared for the older Eclipse version, so I finally took target-tm-terminal.target for development. I think, TM4E project applies a reasonable approach for their target definitions that could also fit to copilot-for-eclipse. TM4E has

  • latest target platform definition for the latest Eclipse release
  • oldest target platform definition for the oldest supported Eclipse release version
  • staging target platform definition for the latest unreleased Eclipse version

The target platforms are also used in their CI/CD workflows.

Because I usually use running platform as the target platform, so when I launch a debug session, I enabled all the plugins. Maybe this is not the best practice? Any suggestions?

I'd prefer using one of the target platform definition files instead. Otherwise, you cannot be sure that your code would compile or run with the target platforms, too. But it can help to also check the latest Eclipse version, too. TM4E does that with their latest target definition.

Usually, I'm using different launch configs for different OSs (or only for one OS) if there are platform-dependent bundles. I usually do not start any test bundles in my launch configs and I either select all or only a small sub-set of required plug-ins from the target platform (I select the required plug-ins from the Eclipse workspace and then add required plug-ins from the target platform using the "Select Required" button. Sometimes I also add some plug-ins explicitly, e.g. for Eclipse themes). In the first case I have a full Eclipse IDE, in the second case I have a lightweight IDE with short launch times. Both cases work well for me and both have their pros and cons. I'm not sure if my approach is best practice. In any case, maintaining multiple launch configs quickly becomes tedious, since developers are usually using exactly one OS and thus are maintaining only the one launch config that they are using themselves.

@travkin79 travkin79 marked this pull request as ready for review May 12, 2026 13:04
Copilot AI review requested due to automatic review settings May 12, 2026 13:04
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands contributor onboarding documentation and adds Eclipse workspace metadata (.project/.classpath/.settings) for several Tycho modules to make importing and launching the plug-ins from Eclipse easier.

Changes:

  • Extended CONTRIBUTING.md with step-by-step Eclipse import, target platform activation, and Checkstyle setup instructions.
  • Added Eclipse project metadata files for feature/repository/branding and platform agent bundles to streamline “Existing projects into Workspace” import.
  • Updated .gitignore to exclude some Eclipse build output directories.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
CONTRIBUTING.md Adds Eclipse import/launch + Checkstyle setup instructions.
com.microsoft.copilot.eclipse.repository/.settings/org.eclipse.m2e.core.prefs Enables workspace project resolution in m2e for the repository module.
com.microsoft.copilot.eclipse.repository/.project Adds Eclipse project descriptor for the repository module.
com.microsoft.copilot.eclipse.feature/.settings/org.eclipse.m2e.core.prefs Enables workspace project resolution in m2e for the feature module.
com.microsoft.copilot.eclipse.feature/.project Adds Eclipse project descriptor for the feature module.
com.microsoft.copilot.eclipse.core.agent.win32/.settings/org.eclipse.m2e.core.prefs Adds m2e preferences for the Windows agent bundle project.
com.microsoft.copilot.eclipse.core.agent.win32/.settings/org.eclipse.jdt.core.prefs Sets Java compiler prefs for the Windows agent bundle project.
com.microsoft.copilot.eclipse.core.agent.win32/.project Adds Eclipse project descriptor for the Windows agent bundle.
com.microsoft.copilot.eclipse.core.agent.win32/.classpath Adds Eclipse classpath for the Windows agent bundle project.
com.microsoft.copilot.eclipse.core.agent.macosx.x64/.settings/org.eclipse.m2e.core.prefs Adds m2e preferences for the macOS x64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.macosx.x64/.settings/org.eclipse.jdt.core.prefs Sets Java compiler prefs for the macOS x64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.macosx.x64/.project Adds Eclipse project descriptor for the macOS x64 agent bundle.
com.microsoft.copilot.eclipse.core.agent.macosx.x64/.classpath Adds Eclipse classpath for the macOS x64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/.settings/org.eclipse.m2e.core.prefs Adds m2e preferences for the macOS aarch64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/.settings/org.eclipse.jdt.core.prefs Sets Java compiler prefs for the macOS aarch64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/.project Adds Eclipse project descriptor for the macOS aarch64 agent bundle.
com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/.classpath Adds Eclipse classpath for the macOS aarch64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.linux.x64/.settings/org.eclipse.m2e.core.prefs Adds m2e preferences for the Linux x64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.linux.x64/.settings/org.eclipse.jdt.core.prefs Sets Java compiler prefs for the Linux x64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.linux.x64/.project Adds Eclipse project descriptor for the Linux x64 agent bundle.
com.microsoft.copilot.eclipse.core.agent.linux.x64/.classpath Adds Eclipse classpath for the Linux x64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.linux.aarch64/.settings/org.eclipse.m2e.core.prefs Adds m2e preferences for the Linux aarch64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.linux.aarch64/.settings/org.eclipse.jdt.core.prefs Sets Java compiler prefs for the Linux aarch64 agent bundle project.
com.microsoft.copilot.eclipse.core.agent.linux.aarch64/.project Adds Eclipse project descriptor for the Linux aarch64 agent bundle.
com.microsoft.copilot.eclipse.core.agent.linux.aarch64/.classpath Adds Eclipse classpath for the Linux aarch64 agent bundle project.
com.microsoft.copilot.eclipse.branding/.settings/org.eclipse.m2e.core.prefs Adds m2e preferences for the branding project.
com.microsoft.copilot.eclipse.branding/.project Adds Eclipse project descriptor for the branding project.
com.microsoft.copilot.eclipse.branding/.classpath Adds Eclipse classpath for the branding project.
.gitignore Ignores selected Eclipse bin/ output directories.

Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md Outdated
Comment thread com.microsoft.copilot.eclipse.core.agent.linux.x64/.classpath Outdated
Comment thread com.microsoft.copilot.eclipse.core.agent.linux.aarch64/.classpath Outdated
Comment thread com.microsoft.copilot.eclipse.core.agent.macosx.x64/.classpath Outdated
Comment thread com.microsoft.copilot.eclipse.core.agent.win32/.project
Comment thread com.microsoft.copilot.eclipse.core.agent.linux.x64/.project
Comment thread com.microsoft.copilot.eclipse.core.agent.linux.aarch64/.project
Comment thread com.microsoft.copilot.eclipse.core.agent.macosx.x64/.project Outdated
Comment thread com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/.project
@travkin79 travkin79 force-pushed the patch/update-contribution-guide branch 3 times, most recently from 35d6148 to 18086db Compare May 12, 2026 15:40
Comment thread com.microsoft.copilot.eclipse.branding/.project Outdated
@travkin79 travkin79 force-pushed the patch/update-contribution-guide branch from 18086db to cde8e4f Compare May 13, 2026 09:08
travkin79 added 3 commits May 13, 2026 11:11
Describe how to import projects and how to run them in Eclipse
Make all projects importable via File > Import... > General > Existing Projects into Workspace, no need to use the Maven project import wizard.
@travkin79 travkin79 force-pushed the patch/update-contribution-guide branch from cde8e4f to 35b9932 Compare May 13, 2026 09:12
Copy link
Copy Markdown
Member

@jdneo jdneo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you for your contribution.

@jdneo jdneo merged commit 3f0a5d4 into microsoft:main May 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants