Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

SDK

In the simultaneous release repos we have a EclipseRT Target Platform Components category that includes elements of Eclipse projects that are meant to be added to the PDE Target Platform. These elements support the compilation and debugging of systems that use the project technology. So, for example, the Equinox project puts out a feature that includes all bundles (and source) produced by the Equinox team (typically plus a few more).

Currently, that top-level feature is called an "SDK". The term SDK appears to be loaded and somewhat ambiguous. Some think that an SDK includes tooling and libraries and source, some just the libraries and source. To date we have used the term "SDK" to mean "the things that you add to the Target Platform", that is, libraries and source. Given the ambiguity, this has been causing problems where users try to install the project SDKs into their IDE. Sometimes with disastrous effects. This page attempts to clarify the terminology.

Target Platform

A PDE facility for modelling and managing the set of features and bundles that might be available in the system being created. The term is similar to that used in typical cross development scenarios where the ultimate runtime environment (e.g., a phone) is not available on the development machine. In the Eclipse context, it just happens that Eclipse is itself comprised of bundles. Leveraging that, the default target platform set by PDE is the IDE itself. Convenient but confusing. In practice, people developing RCP or more generally, runtime, systems should separate the tooling they are using from the environment for which they are developing (i.e., the Target Platform).

Target Platform definition (.target) files can be created, edited and shared by development teams to ensure that each team member is using the same set of base libraries in their development.

Target stuff

The current target platform facilities in PDE support only the addition of features, binary bundles and source bundles. Doc bundles can be added but are not woven into the Eclipse Help system at this time so are relatively useless when added to a target platform.

Potential names

Common usage would be something like "Get the Jetty XXX" or "Do you have the RAP XXX"

  • Target Components : The things you need from say Jetty to add to your target platform
  • SDK : Software Development Kit
  • RDK : Runtime Development Kit
    • - could be mistaken for a development kit for runtimes
  • Target : That is, the Jetty Target is the Jetty contribution to the target or what you use if you are targetting Jetty.

Tooling

Many runtime libraries have a set of tooling that aids in the creation or management of runtime related artifacts. This can be anything from simple wizards and editors to full on compilers, debuggers and authoring suites. Tooling in this context is installed into the IDE for use by developers as they create their systems. Given the lack of support for doc in the target platform mechanism, doc also needs to be installed into the IDE and would form part of the Tooling. (note that this hopefully will change in the future and should likely be seen as a temporary situation)

Potential names

Common usage would be something like "Get the Jetty XXX" or "Do you have the RAP XXX"

  • Tooling
  • Tools
  • SDK
  • IDE integration
  • Development Tools (as in JDT)

Target stuff + Tooling

It is convenient from a user point of view to talk and think about the combination of tools and the target content as one thing. That is, everything I need to develop with XXX. Unfortunately, in Eclipse we currently do not support a unified notion of something that both gets installed into your IDE and added to a target platform. Nonetheless, this would be a worthwhile addition and our mindset should leave room for such a concept.

Potential names

  • SDK

Back to the top