diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..b34309e15 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +node_modules/* +static/* +build/* +intl/* +**/*.min.js diff --git a/.eslintrc b/.eslintrc index ca3e7f389..853e777b4 100644 --- a/.eslintrc +++ b/.eslintrc @@ -25,7 +25,8 @@ "jsx": true }, "plugins": [ - "react" + "react", + "json" ], "extends": "eslint:recommended" } diff --git a/.travis.yml b/.travis.yml index 6267fb4a6..f0faf2485 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ node_js: sudo: required cache: directories: + - /home/travis/virtualenv/python2.7/lib/python2.7/site-packages - node_modules notifications: slack: @@ -21,7 +22,6 @@ env: - secure: EX1fyov+f6ytWN2ZSL4dLslwrVkp6Ho/uoSLO38/qNG3XdGmBN4VprxddcQiWfo+Mrg3GdWcfcM/VazhhStBi1uLfZiw3RHZaSGuWbiuD2EtzqtlC+OVvoajgy91QFajh9Zzuwa0rYbEPd/sw01R53NoWJYl0GSteWk7C8Wv6anl4FUJCqgvvTV2ZEcyTtGcVJgUhKi1MfNpTSM6JWBy0DWszcyxj7C8LSs1+l9ZjAtnlUBWY13HsrNu8G5d+FwqGHZLUAjdu2O602wxV897/xLARLduZ+01ALpVefNEEGMB1Wd+xMw4dm2B0Uk86a4TBRCeOgJZ1yoJoPpGPOHTo+dgNXcU8ReszGVoy7uOjFWwu82FQq8gzfcf75yzaRJgG8/BJ6BkJfa0EmFg3iO5CwixQyHR5+CqsedtoLAWVT8zlOfQ/Z6yx4Pm7jXQSOkyvo09YJ2QIn4IFGPvwOVS7Firzi+fLl8GYApeSV9G10e1IzA4pPrKdJMRA4qRMPt9zJGq7ZO1J/d9aW/5KIsJUDnodnl7yXJyDMOyNeljT9I82ciHZcURxRRY080vrW6dgNJE1V9jxBhWEvr2iCeWMMedWaGuC41I7K9L79eW8lmaE+cQ+OZrzpOJP4GbfmIiXrh+0M4ChL/xBpjtiFwpNdkCXXhzWMnjJ4wCrii4yuc= - AWS_ACCESS_KEY_ID=$EB_AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY=$EB_AWS_SECRET_ACCESS_KEY - - CXX=g++-4.8 - FASTLY_ACTIVATE_CHANGES=true # FASTLY_API_KEY - secure: XNWcCnqSAd4MpKg6FVe3WeFmdqfdH753+PBCOEkJrHS+AHmLMuWsjIQFJ3LUR9ylEQRVPR2OyXJW/R8NI9toStREgwE4fwIVo0l4fwYqLStxYpEKlcWfkJ3uNpRZhvcVmUBycelrnjJqXVdrtlxPCKX0tNkpcKH2b98We7A2/r7HxKv13upDxWTQ/qRUv0+SJCRTB4n/QInABi87Ef8Q2rNGrL0WQzQvVBeiEXOP0JSkyYK4+q65gswMKPehgiFagnYVgJN9J9Q1VrBDc06gidbznBcEpPaBAYvsTTY9dWTJxaaKNSrmOIe/OiuJUEHjb+8NL+j6Lp7wX8lzEjbr0FkVlFnxS9VbftS2KFkN7+c3RF57+tsq0xwJ6vgomIVS5FupHgl/oCJicnH/FLfynditOLZhmhF+Ed5GCAoIEamRRzcVHdjvglsEtYsDX1/z2t+HKYtPQuXYOywDRVTSPf88eEbu8ehfgNcYaIAuD6eedyDnKTOIv7owWs3Y7GsxQ2jBLGXq1YoUEkPtB0vfaHi72CeEhDQ53mEn2Ure47UMGMgUjKtiIhDBNTbECwP/ZDJv1accGRljKjDy93aCJeRi1T7Op7tDbHSl4ScieeOwOeKJMcD1U5JGdA/sRnjjgSKb24P2ys4NYr95dgqWNNGPGMxca+lGufzdEaTQT44= @@ -50,15 +50,9 @@ env: - SKIP_CLEANUP=true - NODE_ENV=production - WWW_VERSION=${TRAVIS_COMMIT:0:5} -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 install: - sudo -H pip install -r requirements.txt - - npm install + - npm --production=false install deploy: - provider: script skip_cleanup: $SKIP_CLEANUP diff --git a/Makefile b/Makefile index 8cfececd8..be8b6ccfd 100644 --- a/Makefile +++ b/Makefile @@ -24,9 +24,6 @@ deploy: @make build @make sync -tag: - echo $(GIT_VERSION) > ./build/version.txt - translations: ./bin/build-locales intl @@ -62,18 +59,9 @@ test: @echo "" lint: - $(ESLINT) ./*.js - $(ESLINT) ./dev-server/*.js - $(ESLINT) ./bin/**/*.js - $(ESLINT) ./src/*.js - $(ESLINT) ./src/mixins/*.jsx - $(ESLINT) ./src/views/**/*.jsx - $(ESLINT) ./src/components/**/*.jsx - $(ESLINT) ./src/components/**/**/*.jsx + $(ESLINT) . --ext .js,.jsx,.json $(SASSLINT) ./src/*.scss - $(SASSLINT) ./src/views/**/*.scss - $(SASSLINT) ./src/components/**/*.scss - $(SASSLINT) ./src/components/**/**/*.scss + $(SASSLINT) ./src/**/*.scss unit: $(TAP) ./test/unit/*.js diff --git a/bin/configure-fastly.js b/bin/configure-fastly.js index bf5e8f5f6..6d92b3bf8 100644 --- a/bin/configure-fastly.js +++ b/bin/configure-fastly.js @@ -19,8 +19,6 @@ var extraAppRoutes = [ // Homepage with querystring. // TODO: Should this be added for every route? '^/\\?', - // Version output by build - '/version\.txt$', // View html '^/[^\/]*\.html' ]; @@ -31,7 +29,10 @@ var extraAppRoutes = [ */ var getStaticPaths = function (pathToStatic) { var staticPaths = glob.sync(path.resolve(__dirname, pathToStatic)); - return staticPaths.map(function (pathName) { + return staticPaths.filter(function (pathName) { + // Exclude view html, resolve everything else in the build + return path.extname(pathName) !== '.html'; + }).map(function (pathName) { // Reduce absolute path to relative paths like '/js' var base = path.dirname(path.resolve(__dirname, pathToStatic)); return '^' + pathName.replace(base, '') + (path.extname(pathName) ? '' : '/'); @@ -106,7 +107,7 @@ async.auto({ }); }, notPassRequestCondition: ['version', function (cb, results) { - var statement = getAppRouteCondition('../static/*', routes, extraAppRoutes); + var statement = getAppRouteCondition('../build/*', routes, extraAppRoutes); var condition = { name: NOT_PASS_REQUEST_CONDITION_NAME, statement: statement, diff --git a/package.json b/package.json index 6f922e101..ca92315d2 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "copy-webpack-plugin": "0.2.0", "css-loader": "0.23.1", "eslint": "1.3.1", + "eslint-plugin-json": "1.2.0", "eslint-plugin-react": "3.3.1", "exenv": "1.2.0", "fastly": "1.2.1", @@ -56,13 +57,17 @@ "minilog": "2.0.8", "node-sass": "3.3.3", "pako": "0.2.8", - "po2icu": "git://github.com/LLK/po2icu.git#develop", + "po2icu": "0.0.2", "postcss-loader": "0.8.2", - "react-addons-test-utils": "0.14.7", + "raven-js": "3.0.4", + "react": "0.14.0", + "react-dom": "0.14.0", + "react-intl": "2.1.2", "react-modal": "0.6.1", "react-onclickoutside": "4.1.1", "react-redux": "4.4.0", "react-slick": "0.9.2", + "redux": "3.5.2", "redux-thunk": "2.0.1", "sass-lint": "1.5.1", "sass-loader": "2.0.1", diff --git a/src/components/footer/www/footer.jsx b/src/components/footer/www/footer.jsx index 3b4cb2278..d36023f79 100644 --- a/src/components/footer/www/footer.jsx +++ b/src/components/footer/www/footer.jsx @@ -14,201 +14,145 @@ var Footer = React.createClass({
-