aurora-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David McLaughlin <da...@dmclaughlin.com>
Subject Re: Review Request 61864: Bootstrap the build pipeline for new Preact UI.
Date Thu, 24 Aug 2017 21:04:51 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61864/
-----------------------------------------------------------

(Updated Aug. 24, 2017, 9:04 p.m.)


Review request for Aurora, Joshua Cohen, Kai Huang, Santhosh Kumar Shanmugham, and Stephan
Erb.


Changes
-------

* Remove unused Google Font.
* Remove reference to jest.


Repository: aurora


Description
-------

Bootstrap the build pipeline for new Preact UI. Obviously due to the disappointing decision
by Facebook to keep their PATENTS clause, we can no longer use React or jest or any of the
other Facebook OSS projects. Thankfully Preact has a compatibility layer that mostly hides
this (see code), so it's really only jest (which is so much simpler than Karma) that is missed
here. 

Right now we only insert a "Hello, World" message under a new path in the Scheduler. The goal
here is to verify that this works in the Apache infrastructure, and that people can download
the patch and confirm their local development environment is built correctly by gradle. Will
be particularly useful if you don't have any of the modern Node/UI stack installed, because
the idea is that Gradle will do it all for you.

Note: this will add time, perhaps significant time, to the Scheduler build process the first
time it sets up the environment. I've made sure to set up input/output directories in Gradle
to make sure the UP-TO-DATE mechanism is respected and the work isn't repeated. 

The following tasks become available:

./gradlew ui:install (runs npm install and fetches 3rd party JS dependencies)
./gradlew ui:webpack (the main build step - performed by webpack)
./gradlew ui:test (runs Karma-Jasmine-Webpack-Chai powered test suite) 
./gradlew ui:lint (runs eslint on the source code)

And all of these are now performed as part of the root ./gradlew build step. This also maintains
feature parity with ./gradlew processResources --continuous. 

This is the first time I've ever really had to do significant changes to our Gradle build,
so any feedback on my changes there are particularly appreciated.


Diffs (updated)
-----

  .gitignore b4e2bcbef6fdb1c049acda7c4fda4bd47988bea2 
  build.gradle c2c402f3ed0043b1e9befb6f9c4423649ee5c105 
  settings.gradle b097e2fd958fa0ce6076fc104eb3890c4029295d 
  src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java f7e72e77e50680d937d727cb4c0eb8940aabf03b

  src/main/resources/scheduler/assets/scheduler/new-index.html PRE-CREATION 
  ui/.babelrc PRE-CREATION 
  ui/.eslintrc PRE-CREATION 
  ui/karma.conf.js PRE-CREATION 
  ui/package.json PRE-CREATION 
  ui/src/main/js/components/Home.js PRE-CREATION 
  ui/src/main/js/components/__tests__/Home-test.js PRE-CREATION 
  ui/src/main/js/index.js PRE-CREATION 
  ui/webpack.config.js PRE-CREATION 


Diff: https://reviews.apache.org/r/61864/diff/4/

Changes: https://reviews.apache.org/r/61864/diff/3-4/


Testing
-------

The Scheduler is running in my Vagrant image with the Hello World message served under /beta.


Thanks,

David McLaughlin


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message