New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Galaxy client tooling overhaul, ES6 #4435

Merged
merged 130 commits into from Oct 17, 2017

Conversation

@dannon
Member

dannon commented Aug 16, 2017

Faster, better builds with babel transpiling, etc. (going to write a better summary here, but feel free to poke through the commit notes and test, until I do)

  • Client build and dependency management should be much faster for everyone. I'm seeing complete builds at ~20s, where they were at least twice that before. I swapped expensive parts of the build process to use gulp for streaming processing, and to run concurrently where possible.

  • Client code can now start to use ES6, and the built files (whether bundled via webpack, or not) will work across the app as we continue to progress.

  • Lots of library updates. Many libraries migrated from bower (or from being simply plunked into the sourcecode) to yarn.

Selenium tests are now working reliably on this for me, and I've tested large portions of the app manually, and it's working well. Definitely needs more eyes because of how much this touches (every single client interface).

xref #4424

After this is merged, we'll want to get #4436 in ASAP, which builds on this.

dannon added some commits Mar 28, 2017

Test npm scripts as an expansion point for potentially replacing grun…
…t. Side benefit of being less hacky and allowing npm to use the correct grunt automatically.
Minimal gulp task to run uglify, babel, sourcemaps. The new 'clean'
approach also removed some cruft we had sitting in the static/scripts
folder and were unintentionally shipping.
@martenson

This comment has been minimized.

Member

martenson commented Oct 13, 2017

when running make client-watch and touching some file:

-the first run of watch is weird (and throws errors): https://gist.github.com/martenson/8e1c453b46e061b7aaac3e49185cde0f
-the susequent runs are fine:

[1] [12:24:19]
[1] Starting 'scripts'...
[1] [12:24:20]
[1] Finished 'scripts' after 99 ms
@martenson

This comment has been minimized.

Member

martenson commented Oct 13, 2017

@jmchilton I am fine with that.

@martenson

This comment has been minimized.

Member

martenson commented Oct 13, 2017

minor: after switching from es6 back to dev there is an untracked file client/galaxy/scripts/libs/jquery/jquery.complexify.js - possibly a remnant of make client on es6

@dannon

This comment has been minimized.

Member

dannon commented Oct 13, 2017

@martenson Correct; that file is no longer tracked at that location in the es6 branch, but is put in /libs for staging during build. Shouldn't be a problem, but we can backport the .gitignore to fix it if it's a big annoyance.

@dannon

This comment has been minimized.

Member

dannon commented Oct 17, 2017

I just retriggered selenium tests to see if it's a transient jenkins goof, but they passed for me locally.

is to run the 'client' rule in the Galaxy makefile, which is in the repository
root. This will also ensure any local node modules are installed.
There are many moving parts to the client build system, but the entrypoint for
most people is the 'client' rule in the makefile at the root of the Galaxy

This comment has been minimized.

@nsoranzo

nsoranzo Oct 17, 2017

Member

s/makefile/Makefile/

@martenson martenson merged commit 30ef7ef into galaxyproject:dev Oct 17, 2017

0 of 6 checks passed

api test Test started.
Details
framework test Test started.
Details
integration test Test started.
Details
lgtm analysis: JavaScript Fetching Git Commits
Details
selenium test Test scheduled.
Details
toolshed test Test started.
Details
@martenson

This comment has been minimized.

Member

martenson commented Oct 17, 2017

Thank you very much for your work on this @dannon, this is a bug BIG step forward. (leaving the funny typo here :D)

@bgruening

This comment has been minimized.

Member

bgruening commented Oct 17, 2017

@dannon this deserves a blog entry with a small introduction why ES6 is cool and will improve our way forward with the client :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment