Skip to content
Magnus Rundberget edited this page Jun 18, 2014 · 1 revision

Contributions to the LightTable-Groovy plugin is most welcome. This page outlines some guidelines for contributing. Do check out the issue list and feel free to submit issues for discussion before starting anything substantial :)

Getting Started

  • Fork the repository
  • Clone your fork to $LightTablePluginDir/Groovy
  • Create a branch for your feature/change/fix
  • Do your stuff
  • Submit pull request (if working on an existing github issue, feel free to tag your commits with the issue number)

Up and running with the latest stuff

  • Pull/fetch latest from upstream
  • Run $Groovy:> ./gradlew clean build deploy - This will build the groovy server, create an uberjar and deploys that to $LightTablePluginDir/Groovy/lib
  • In LightTable:
    • Add $LightTablePluginDir/Groovy to your workspace
    • Open one of the cljs files under $LightTablePluginDir/Groovy/src/lt/plugin
    • Save file and do ctrl/cmd shift enter (evaluate file)
    • When prompted for connection select Light Table UI

You should now be able to run with the latest and greatest

Do/Don't for pull requests

  • Please don't commit the compiled js files (groovy_compiled.js and groovy_compiled.js.map). These files should only be committed with releases (which currently only I will be doing)
  • Please don't commit lib/ltgroovy.jar, again this should only be committed with releases.
  • Please do rebase with upstream/master before submitting your pull request. Makes merging so much easier !
  • For groovy related fixes/changes/features, there should be tests whenever that's feasible. For the Light Table specific plugin code I haven't figured out a nice test regime as of yet.

At some point in the near future we should figure out a nice way to avoid having ltgroovy.jar in the github repo all together. It's not ideal to have binaries in the repo. Clever ideas are welcome !

Gradle model stuff

You might want to implement a feature/fix that requires changes to info retrieved from a gradle project. The Light Table Groovy plugin uses a custom gradle plugin for retrieving some of that info. Changes to that plugin can be done in that github project: Generic Gradle Model. Again; Fork and pull requests on that project.