This is the ecosystem builder, a Maven based system that uses the Scala-IDE build tools to build and integrate Scala-related plugins within Eclipse update sites, on top of specific flavors of Eclipse, Scala and Scala-IDE.
The latest version of the source for this project is hosted on: https://github.com/scala-ide/ecosystem
The stable-scala-ide-2.0-scala-2.9/
folder contains a legacy version
of the ecosystem builder project. This project is necessary only to
build plugins for Scala-IDE version <= 2.0.2. Its documentation has been
relegated to stable-scala-ide-2.0-scala-2.9/README.old.rst
.
If you already have an Eclipse plugin version of your project, you can go to the next section to see if it can be added to the ecosystem update sites.
Otherwise, we provide two giter8 templates to generate complete maven projects, with plugins, features and update site:
- scala-ide/scala-plugin.g8 a set of projects to develop an Eclipse plugin written in Scala
- scala-ide/scala-ide-plugin.g8 a set of projects to develop an Eclipse plugin on top of Scala IDE.
You can use them to start the Scala IDE plugin version of your project.
You have a fantastic plugin that you want to see in the ecosystem ? Please contact us ! Though we retain final editorial control on what plugins we choose to integrate to the Scala-IDE ecosystems, we are very eager to integrate plugins that are:
- generally awesome
- of broad relevance to the Scala developer community
- quality, well-maintained code
Naturally, the distribution of the plugin by the Scala-IDE team has to be permitted within the framework of the plugin's license.
Getting your plugin sponsored [1]
To get your plugin sponsored, you need to look for a sponsor (any community member can fit the role) on both the Scala-IDE development mailing list and the Scala-IDE user mailing list, ensuring your request includes:
- a link to the sources of your project
- a link to the plugin's documentation
- a link to the plugin's bug tracker (or equivalent)
- a link to the p2 repository
- a link to the project's website (Optional)
When the sponsor has indicated the plugin is ready for inclusion, you
can make sure it is set up to build against the ecosystem's base
repositories (see technical steps in the next section).
The final step is to create a pull request against the ecosystem
project to provide a feature
file,
a configuration file for the ecosystem builder that summarises the
information from your sponsor demand above, and lets the ecosystem
builder pick up your project during re-builds.
That's it ! The ecosystem also offers some facilities for monitoring the compatibility of your plugin against upcoming Scala-IDE versions, see the documentation wiki for details.
Getting your plugin to build [2]
While most Scala-related projects interface against either Scala or Scala-IDE code, neither parent project provides a stable public API. Hence, the requirement across Scala-IDE ecosystems is that plugins have strict version dependencies for Scala-IDE and Scala. To set those specific dependencies automatically, we provide tools to instrument your build.
For that, you need to have as many built artifacts as there are flavors
of the Eclipse × Scala × Scala-IDE toolchain that you want to support.
Each build needs to include a Maven profile we
provide
to set up your artifact's Manifest
. An example of how to achieve
that without too much pain is a build
script
from the Scala-Test
plugin.
Once this is done, you need to provide a pull request against the ecosystem project that adds a feature file in our features directory for your plugin, as described above.
You can find support in the Scala-IDE development mailing list. We welcome your comments and questions, including those related to this README !
[1] | This section is a condensed version of the Contributor's guide present in the project's documentation wiki. |
[2] | This section is a condensed version of the Contributor's cheatsheet present in the project's documentation wiki. |