-
Notifications
You must be signed in to change notification settings - Fork 6
Contribute
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 :)
- 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)
- 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
- 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 !
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.