GMOD / Apollo

Genome annotation editor with a Java Server backend and a Javascript client that runs in a web browser as a JBrowse plugin.
http://genomearchitect.readthedocs.io/
Other
124 stars 85 forks source link

integrate "release" code with plugin support code #941

Closed nathandunn closed 8 years ago

nathandunn commented 8 years ago

I support optional plugins with #935 . . I need to work on getting it to do the same with "release". Right now the target does the same as it did before. However, apollo deploy and run-local integrate with plugin install code correctly now, so it should just be matching that pattern in the proper order.

nathandunn commented 8 years ago

Some of the make stuff can use gradle commandLine or you can just call the ant task from within gradle if that makes sense.

nathandunn commented 8 years ago

Highly unlikely that this will work, but probably worth looking into it as a gradle plugin.

nathandunn commented 8 years ago

Also, just running the closure compiler for java via gradle: https://github.com/eriwen/gradle-js-plugin#minifyjs-uses-the-google-closure-compiler (the other one insisted the code was in main/src/)

cmdcolin commented 8 years ago

JBrowse/dojo has their own build scripts which compiles jbrowse itself and the plugins (anything in the plugin folder) so it isn't necessary to integrate any external minimizers or anything. The build.gradle is cool and could probably be tweaked to make it work with release build though

cmdcolin commented 8 years ago

That said, I am actually not really in favor of "managing" the plugin installations from github. Moving towards bower or something for installs is IMO probably a good option. Bower can install straight from github for example, probably much easier to use too

cmdcolin commented 8 years ago

If https://github.com/gmod/jbrowse/pull/333 was complete, then it might be as easy as saying

bower install https://github.com/gmod/jbrowse@1.12.1

Or something similar

nathandunn commented 8 years ago

Bower can install straight from github for example, probably much easier to use too

and it caches clones and plays nice with the github servers . . .

WRT to the minification . . . I think that you might have to redo what is done in the makefile in gradle, but I am not certain.

cmdcolin commented 8 years ago

Currently there is a warning

Defining custom 'build' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0 Defining custom 'clean' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0

I think those tasks come from the ant build, instead of the gradle one. It might be good to get rid of the ant part of the build entirely

nathandunn commented 8 years ago

Yes, it would be good to move away from ant entirely. I think it should be fine to have in there for the time-being, though, but we definitely want to move tasks out of ant a little by little as we go.

On Mar 31, 2016, at 10:52 AM, Colin Diesh notifications@github.com wrote:

Currently there is a warning

Defining custom 'build' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0 Defining custom 'clean' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0

I think those tasks come from the ant build, instead of the gradle one. It might be good to get rid of the ant part of the build entirely

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/GMOD/Apollo/issues/941#issuecomment-204051461

nathandunn commented 8 years ago

Just an FYI, the default (with 1.9+) is to include the sourcemaps when doing the build. I see that they are produced during the minification build steps, but then must not be copied over.

nathandunn commented 8 years ago

For a pre-built system I get this error:


nathandunn:nathanApolloMaster% ./apollo release 
Starting a new Gradle Daemon for this build (subsequent builds will be faster).
Defining custom 'build' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0
Defining custom 'clean' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0
final JBrowse settings [git:[url:https://github.com/GMOD/jbrowse, branch:master, alwaysPull:true, alwaysRecheck:true], plugins:[WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]]
final plugins [WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]
Copying apollo plugin
handling jbrowse release [git:[url:https://github.com/GMOD/jbrowse, branch:master, alwaysPull:true, alwaysRecheck:true], plugins:[WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]]
handling jbrowse [git:[url:https://github.com/GMOD/jbrowse, branch:master, alwaysPull:true, alwaysRecheck:true], plugins:[WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]]
:clean-grails
:clean-grailsw
:clean
:clean-all
:cloneJBrowse
:copy.apollo.plugin.jbrowse
[ant:echo] copying plugin to jbrowse git ...
:build.jbrowse
[ant:exec] Result: 1
:install.jbrowse.perl
:release FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':release'.
> Warning: Could not find file /Users/nathandunn/repositories/nathanApolloMaster/jbrowse-download/JBrowse-dev.zip to copy.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 10 mins 55.387 secs
***************************************
NOTE: Please set the memory for your servlet container (tomcat, jetty, etc.) or Apollo may not start correctly: http://webapollo.readthedocs.org/en/latest/Troubleshooting.html#tomcat-memory
***************************************

Trying it on a non pre-built system next (i.e., a fresh download) .. similar:

nathandunn:Apollo% ./apollo release 
cp: apollo-config.groovy: No such file or directory
Defining custom 'build' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0
Defining custom 'clean' task when using the standard Gradle lifecycle plugins has been deprecated and is scheduled to be removed in Gradle 3.0
No log file found in classpath.
final JBrowse settings [git:[url:https://github.com/GMOD/jbrowse, branch:master, alwaysPull:true, alwaysRecheck:true], plugins:[WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]]
final plugins [WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]
Copying apollo plugin
handling jbrowse release [git:[url:https://github.com/GMOD/jbrowse, branch:master, alwaysPull:true, alwaysRecheck:true], plugins:[WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]]
handling jbrowse [git:[url:https://github.com/GMOD/jbrowse, branch:master, alwaysPull:true, alwaysRecheck:true], plugins:[WebApollo:[included:true], NeatHTMLFeatures:[included:true], NeatCanvasFeatures:[included:true], RegexSequenceSearch:[included:true], HideTrackLabels:[included:true]]]
:clean-grails
:clean-grailsw
:clean
:clean-all
:cloneJBrowse
:copy.apollo.plugin.jbrowse
[ant:echo] copying plugin to jbrowse git ...
:build.jbrowse
[ant:exec] Result: 2
:install.jbrowse.perl
:release FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':release'.
> Warning: Could not find file /Users/nathandunn/repositories/bower_components/Apollo/jbrowse-download/JBrowse-dev.zip to copy.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 36.492 secs
***************************************
NOTE: Please set the memory for your servlet container (tomcat, jetty, etc.) or Apollo may not start correctly: http://webapollo.readthedocs.org/en/latest/Troubleshooting.html#tomcat-memory
***************************************
nathandunn commented 8 years ago

I had gotten similar errors before moving to gradle. I'm not sure why it works some times and not others.

cmdcolin commented 8 years ago

I think this is because the name of the code that is built in src/JBrowse/package.json became "1.x.x" instead of "dev". We should probably run the build in a test. It should also just manually set the release version in the build command so that it doesn't have this dependency, e.g. "RELEASE_VERSION=1.12.1 make -f build/Makefile release-notest"

nathandunn commented 8 years ago

I think that sounds good. One of the reasons for using gradle is that it uses groovy and can read anything off of the Config.groovy or apollo-config.groovy file (see build.gradle::evaluateJBrowseConfigs). Running in a test would be great.