WIP: Use grunt for assets, remove django pipeline, remove ruby, use bower for client-side deps… - #6743
WIP: Use grunt for assets, remove django pipeline, remove ruby, use bower for client-side deps… #6743felipemontoya wants to merge 44 commits into
Conversation
|
Thanks for the pull request, @felipemontoya! I've created OSPR-363 to keep track of it in JIRA. JIRA is a place for product owners to prioritize feature reviews by the engineering development teams. Feel free to add as much of the following information to the ticket:
All technical communication about the code itself will still be done via the Github pull request interface. As a reminder, our process documentation is here. |
|
@tusbar, @sarina, @singingwolfboy, @benpatterson, @talbs and anyone else who is looking at this PR and I didn't ping. This is mainly a rebase of the previous work #6026. I still have to update neat to 1.7.1 and the font awesome version. Then probably @tusbar will be ready to continue the work on the JS pipeline. |
|
@felipemontoya - I am not really too sure how to start reviewing this, but perhaps I can work on helping get a passing build. In the past two weeks we've had a lot of test infrastructure change, so you'll have to rebase in order for us to get a build that's even slightly useful, unfortunately. Also I may be misremembering but I think @ormsbee is another person excited by this PR and perhaps can give a cycle to giving a look at it. |
|
Also @felipemontoya fontawesome has been recently updated, see #6055 and #6875 |
Still using ruby sass for now, waiting for lbsass.
Add LMS task to run both 'sass' and 'concat' tasks. Add time-grunt to display how long tasks take to run.
Bourbon’s margin mixin was overriding bi-app-ltr’s
Add studio watch task. Create base, :dev and :dist tasks for each environment.
Remove from both applications static files.
Install font-awesome from bower. Specify where the static files are using STATICFILES_DIRS in order to reduce the amount of files extracted when collecting assets.
Remove css method from from pipeline_mako.static. Add missing sass file.
Update the server/devstack tasks to take a --watch option to watch for static changes. Allow --fast and --watch options to work together.
Specify --theme=<path-to-theme> to grunt tasks in order to have it include theme SASS and watch for changes. Implement in pavelib.
Add grunt-concurrent to improve performance.
This is temporary as those two should be installed globally.
Sass files are now compiled directly in the css folder.
Remove too specific include paths for sass tasks. Do theme stuff only when --theme option is supplied. Fix invalid CSS paths.
Quick untested fix on the $tablet replacement. Also change bower dependencies to use HTTP/
1ee259f to
09657ad
Compare
|
@sarina I just rebased to master and ran the test locally. The python test run fine and the js was missing a task to compile the assets using grunt so I created it. @tusbar are there plans to have a different build command for js after removing the js pipeline? Now the js test suite runs, but there are some failing js test and I could use some help to figure them out. |
|
@felipemontoya looks like there's still some problems with assets. See the console output of the failing shards, here's one for example: On the new Jenkins, you can get to the shard output by first clicking on "Build Graph", then clicking on the second box ("edx-platform-all-tests-pr #(prnum) (hash)") |
|
@felipemontoya I also think the Javascript console output is worrying. It says that a bunch of files cannot be found and then it is just hanging. |
|
@sarina doing |
|
Yeah it just looks like various Javascript files aren't being loaded in and so tests are failing because they can't find the required JS files. |
|
I'm not positive how to resolve that. I can see if DB can provide some guidance - right now he's really busy, though, working on cutting the new Birch release, so he may not be free for another week or two. |
|
Our pipeline is a total mess and we're beginning some concentrated effort to completely redo it, getting rid of django-pipeline in the process, in the coming 3 months. With that said, there are a lot of wide-ranging implications around changing the pipeline. We will look at this body of work for inspiration, but will be starting on a new branch, so I am going to close this. When we have a pull request available, we will solicit input from the community on the mailing list. |
This PR was created at the Open edX Con hackathon. This PR continues the work already done in #6026.
Here’s a list of what it does:
Cool things:
TODO: