Closed abretaud closed 6 years ago
GH releases are just built directly from the source automatically. There are instructions on how to minify the source though, but I realize that's not as easy:
@nathandunn this doesn't have to be the case though. For a number of my own projects, when I produce a tagged release, I also have compiled files uploaded. I personally use https://github.com/tcnksm/ghr to upload compiled files and make them part of a GH release.
This could be automated with travis, as simple as checking if 1) a commit currently being tested is also tagged and 2) if so, do a release + uploading to GH.
Might be a good project for someone looking to contribute.
@erasche I agree. The 1.12.2-apollo release was tagged specifically to build Apollo, which needs non-minified source code and wasn't meant for a formal JBrowse release. However, I completely agree that if we had an automated way to build a release, we should absolute do that.
I like the idea of having travis do this as it tests the minification build code as well. I leave it to @enuggetry for now, though.
travis does test the build process/minification :)
as far as other issue, I think github doesn't let you keep track of metrics of downloads from your files very well, so that might be a downside of keeping them simply uploading the built releases to the releases/tags page
@cmdcolin You can track downloads, but you have to upload assets specifically.
How does minification interact with plugins? I would assume that if you added another plugin, you would need to re-run the minification process, but I could be wrong.
Plugins can be minified separately from the jbrowse core, or unminified plugins can be dropped into the minified jbrowse, with one caveat that if the plugin uses libraries that jbrowse core itself does not use. In that case, you can either
(1) run a full jbrowse build cycle with your plugin in the mix (2) just provide a minified version of your plugin which packages the custom dojo dependencies that jbrowse itself doesn't use (by basically running the full jbrowse build cycle and then zipping up your plugins/YourPlugin directory to give to users, it will contain the minified code with the non-jbrowse dojo deps added)
@nathandunn you can track downloads? I've never seen that ability in github before.
@erasche In theory: https://help.github.com/articles/getting-the-download-count-for-your-releases/
some nice examples:
https://gist.github.com/caspyin/2288960
This grabs all of the release info (download_count I think):
curl https://api.github.com/repos/gmod/apollo/releases > apollo-releases.json
curl https://api.github.com/repos/gmod/jbrowse/releases > jbrowse-releases.json
But it only tracks assets, not the source code downloads.
Oh, neat. Must need to be auth'd, will have to try later.
But it only tracks assets, not the source code downloads.
No, but you were never getting source code downloads with git clone
either. So... this wouldn't really affect the stats, and would be nice for sys admins looking to deploy released tarballs of jbrowse.
I think the right thing to do here is probably to make github our primary host for our release tarballs, uploading the minified files as part of our release process. Links on jbrowse.org for downloading releases should just point to github.
@rbuels 👍 for going to GH directly.
I think the issue with the minified JBrowse is that if you want to install or configure plugins, you have to re-process it, anyway (I think, but let me know if I'm wrong). We actually install it via npm, which I think is where we are going, so minification is a bit difficult. I think this is still worth doing, but if we could get dojo-webpack (#842) working if its not difficult, that's better. Or a completely different version of jbrowse would also work ;)
While working on docker-jbrowse and Galaxy tools, I found out that the releases available as zip/tar.gz on github.com are not the same as the ones on jbrowse.org. The main difference I encountered is that on github, the js code is not minified. Is there a particular reason for this? Maybe it would be better to have minified versions everywhere to avoid possible confusion?