Giter Club home page Giter Club logo

ecosystem's Introduction

Scala IDE ecosystem builder

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

Legacy

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.

How to create an Eclipse plugin from your Scala project

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:

You can use them to start the Scala IDE plugin version of your project.

How to contribute a plugin to the ecosystems distributed by the Scala-IDE team

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 from the Scala-IDE team on the Scala-IDE development 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.

Getting Support and advice

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.

ecosystem's People

Contributors

huitseeker avatar skyluc avatar dragos avatar cheeseng avatar banshee avatar dotta avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.