From a6b689ed84ab830e6e52eff0e32e58b41fd3cb85 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Fri, 28 Sep 2018 12:08:19 +0200 Subject: [PATCH] update all build tools --- .babelrc | 2 +- README.md | 54 ++++++++++++++--------------------- _src/_assets/js/ipdb.js | 2 +- gulpfile.babel.js | 19 +++++++------ package.json | 63 +++++++++++++++++++++-------------------- 5 files changed, 67 insertions(+), 73 deletions(-) diff --git a/.babelrc b/.babelrc index 002b4aa..0ef5ffc 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,3 @@ { - "presets": ["env"] + "presets": ["@babel/env"] } diff --git a/README.md b/README.md index 837f9f2..6abbf92 100644 --- a/README.md +++ b/README.md @@ -5,18 +5,14 @@ **Note: As of February 2nd, 2018, IPDB will be shutting down. [Read about why](https://ipdb.io).** -[![Build Status](https://travis-ci.org/ipdb/website.svg?branch=master)](https://travis-ci.org/ipdb/website) +[![Build Status](https://travis-ci.com/ipdb/website.svg?branch=master)](https://travis-ci.com/ipdb/website) [![css bigchaindb](https://img.shields.io/badge/css-bigchaindb-39BA91.svg)](https://github.com/bigchaindb/stylelint-config-bigchaindb) [![js ascribe](https://img.shields.io/badge/js-ascribe-39BA91.svg)](https://github.com/ascribe/javascript) [![Greenkeeper badge](https://badges.greenkeeper.io/ipdb/website.svg)](https://greenkeeper.io/) ---- - [**Live**](https://ipdb.io) | [**Styleguide**](https://ipdb.io/styleguide/) ---- - -# Contents +## Table of Contents - [Content editing](#content-editing) - [Pages](#pages) @@ -36,7 +32,9 @@ - [Authors & Contributors](#authors--contributors) - [License](#license) -# Content editing +--- + +## Content editing Most content on the site can be edited on GitHub without messing with HTML markup. @@ -44,7 +42,7 @@ The site's source and structure is in the [`_src/`](_src) folder. Ignore everyth When viewing a file on GitHub you will see a small pencil icon in the top right. Click that to edit the file. -## Pages +### Pages All pages are simple Markdown files. Markdown is a way of telling the site how an element should be marked up, like headings & bold text: @@ -57,15 +55,14 @@ I'm a simple paragraph. No fancy symbols needed. You can make text **bold like so** ``` -## Special pages +### Special pages Some pages like front page source their content dynamically during site build. This is so we have a single source of truth for content used in multiple places on the site. - [`_src/_data/content-front.yml`](_src/_data/content-front.yml) - [`_src/_data/content-foundation.yml`](_src/_data/content-foundation.yml) - -# Development +## Development You need to have the following tools installed on your development machine before moving on: @@ -74,7 +71,7 @@ You need to have the following tools installed on your development machine befor - [Ruby](https://www.ruby-lang.org) (for sanity, install with [rvm](https://rvm.io/)) - [Bundler](http://bundler.io/) -## Install dependencies +### Install dependencies Run the following command from the repository's root folder to install all dependencies. @@ -82,13 +79,7 @@ Run the following command from the repository's root folder to install all depen npm i && bundle install ``` -or - -```bash -yarn && bundle install -``` - -## Development build +### Development build Spin up local dev server and livereloading watch task, reachable under [https://localhost:1337](https://localhost:1337): @@ -96,7 +87,7 @@ Spin up local dev server and livereloading watch task, reachable under [https:// gulp ``` -# Continuous deployment: always be shipping +## Continuous deployment: always be shipping The site gets built & deployed automatically via Travis. This is the preferred way of deployment, it makes sure the site is always deployed with fresh dependencies and only after a successful build. @@ -106,15 +97,15 @@ Build & deployment happens under the following conditions on Travis: - **live deployment**: every push to the master branch initiates a live deployment - **beta deployment**: every new pull request and every subsequent push to it initiates a beta deployment -# Manual deployment +## Manual deployment For emergency live deployments or beta deployments, the manual method can be used. The site is hosted in an S3 bucket and gets deployed via a gulp task. -## Prerequisite: authentication +### Prerequisite: authentication To deploy the site, you must authenticate yourself against the AWS API with your AWS credentials. Get your AWS access key and secret and add them to `~/.aws/credentials`: -``` +```bash [default] aws_access_key_id = aws_secret_access_key = @@ -130,7 +121,7 @@ AWS_PROFILE=ipdb gulp deploy --live In case that you get authentication errors or need an alternative way to authenticate with AWS, check out the [AWS documentation](http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html). -## Staging build & beta deployment +### Staging build & beta deployment The staging build is a full production build but prevents search engine indexing & Google Analytics tracking. @@ -146,7 +137,7 @@ gulp build --staging gulp deploy --beta ``` -## Production build & live deployment +### Production build & live deployment ```bash # make sure your local npm packages & gems are up to date @@ -159,7 +150,7 @@ gulp build --production gulp deploy --live ``` -# Coding conventions & Browser support +## Coding conventions & Browser support Lint with ESLint & [stylelint](https://stylelint.io) in your editor or run: @@ -169,11 +160,11 @@ npm test As a rule of thumb, make your CSS & JavaScript work in the last 2 versions of modern browsers, and ideally in IE 11. Adapt the `browserslist` key values in the [`package.json`](package.json) when a change in visitor statistics allows that. -## (S)CSS +### (S)CSS Follows [stylelint-config-bigchaindb](https://github.com/bigchaindb/stylelint-config-bigchaindb) which itself extends [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard). -## js +### js Follows [ascribe/javascript](https://github.com/ascribe/javascript) which itself extends [airbnb/javascript](https://github.com/airbnb/javascript). @@ -181,7 +172,7 @@ Try to not use any jQuery, always prefer vanilla JavaScript. At the moment, jQuery is only used for the form submissions for its simple `$.ajax` functionality, and neither `XMLHttpRequest` or `fetch` seem to work with MailChimp. -# Authors & Contributors +## Authors & Contributors - Greg McMullen ([@gmcmullen](https://github.com/gmcmullen)) - [IPDB Foundation](https://ipdb.io) - Morgan Sutherland ([@msutherl](https://github.com/msutherl)) - [IPDB Foundation](https://ipdb.io) @@ -189,12 +180,11 @@ At the moment, jQuery is only used for the form submissions for its simple `$.aj - Members of the BigchainDB development team - Representatives of Caretakers in the IPDB - -# License +## License For all code in this repository the Apache License, Version 2.0 is applied. -``` +```text Copyright Interplanetary Database Foundation 2017. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/_src/_assets/js/ipdb.js b/_src/_assets/js/ipdb.js index f7f5884..c6f0925 100644 --- a/_src/_assets/js/ipdb.js +++ b/_src/_assets/js/ipdb.js @@ -3,7 +3,7 @@ /* eslint-disable spaced-comment */ //=include _dnt.js //=include _newsletter.js -//=include smooth-scroll/dist/js/smooth-scroll.js +//=include smooth-scroll/dist/smooth-scroll.js //=include textarea-autogrow/textarea-autogrow.js //=include cookie-banner/src/cookiebanner.js /* eslint-enable spaced-comment */ diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 1d7a683..cc6cc98 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -1,6 +1,6 @@ /* eslint-disable no-console */ - import fs from 'fs' +import cp from 'child_process' import { src, dest, watch, parallel, series } from 'gulp' import del from 'del' import parallelize from 'concurrent-transform' @@ -14,10 +14,9 @@ import uglifyjs from 'uglify-es' import composer from 'gulp-uglify/composer' // get all the configs: `pkg` and `site` -import pkg from './package.json' +import pkg from './package' // load plugins -const spawn = require('child_process').spawn const $ = require('gulp-load-plugins')() const minify = composer(uglifyjs, console) @@ -109,9 +108,15 @@ export const jekyll = (done) => { jekyllOptions = 'jekyll build --incremental --drafts --future' } - const jekyllInstance = spawn('bundle', ['exec', jekyllOptions], { stdio: 'inherit' }) + const jekyllInstance = cp.execFile('bundle', ['exec', jekyllOptions], { stdio: 'inherit' }) - jekyllInstance.on('error', (error) => onError(error)).on('close', done) + const jekyllLogger = (buffer) => { + buffer.toString() + .split(/\n/) + .forEach((message) => console.log(message)) + } + + jekyllInstance.stdout.on('data', jekyllLogger).on('close', done) } @@ -352,9 +357,7 @@ export const build = series( // // `gulp dev` // -export const dev = series( - build, server, watchSrc -) +export const dev = series(build, server, watchSrc) // Set `gulp dev` as default: `gulp` export default dev diff --git a/package.json b/package.json index 8680f49..3d565d1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ }, "description": "The blockchain database governance the universe needs", "homepage": "https://ipdb.io", - "license": "(c) 2017 IPDB Foundation - All Rights Reserved", + "license": "(c) 2018 IPDB Foundation - All Rights Reserved", "main": "gulpfile.babel.js", "scripts": { "start": "gulp", @@ -30,50 +30,51 @@ "dependencies": { "ajaxchimp": "^1.3.0", "cookie-banner": "github:dobarkod/cookie-banner", - "jquery": "^3.2.1", - "smooth-scroll": "^12.1.5", + "jquery": "^3.3.1", + "smooth-scroll": "^14.2.1", "textarea-autogrow": "^1.0.0" }, "devDependencies": { - "babel-core": "^6.26.0", - "babel-eslint": "^8.1.2", - "babel-preset-env": "^1.6.1", - "browser-sync": "^2.23.2", + "@babel/core": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/register": "^7.0.0", + "babel-eslint": "^8.2.6", + "browser-sync": "^2.24.7", "concurrent-transform": "^1.0.0", - "critical": "^1.1.0", - "cross-spawn": "^5.1.0", + "critical": "^1.3.4", + "cross-spawn": "^6.0.5", "del": "^3.0.0", - "eslint": "^4.14.0", + "eslint": "^5.6.0", "eslint-config-ascribe": "^3.0.5", - "eslint-plugin-import": "^2.8.0", + "eslint-plugin-import": "^2.14.0", "gulp": "github:gulpjs/gulp#4.0", - "gulp-autoprefixer": "^4.1.0", - "gulp-awspublish": "^3.3.0", - "gulp-awspublish-router": "^0.1.3", - "gulp-clean-css": "^3.9.2", - "gulp-cli": "^2.0.0", + "gulp-autoprefixer": "^6.0.0", + "gulp-awspublish": "^3.4.0", + "gulp-awspublish-router": "^0.1.5", + "gulp-clean-css": "^3.10.0", + "gulp-cli": "^2.0.1", "gulp-concat": "^2.6.1", - "gulp-header": "^1.8.9", - "gulp-htmlmin": "^4.0.0", + "gulp-header": "^2.0.5", + "gulp-htmlmin": "^5.0.1", "gulp-if": "^2.0.2", "gulp-imagemin": "^4.1.0", "gulp-include": "^2.3.1", "gulp-load-plugins": "^1.5.0", - "gulp-rename": "^1.2.2", - "gulp-replace": "^0.6.1", + "gulp-rename": "^1.4.0", + "gulp-replace": "^1.0.0", "gulp-rev": "^8.1.1", - "gulp-rev-replace": "^0.4.3", - "gulp-sass": "^3.1.0", - "gulp-sourcemaps": "^2.6.3", - "gulp-svg-sprite": "^1.3.7", - "gulp-uglify": "^3.0.0", + "gulp-rev-replace": "^0.4.4", + "gulp-sass": "^4.0.1", + "gulp-sourcemaps": "^2.6.4", + "gulp-svg-sprite": "^1.5.0", + "gulp-uglify": "^3.0.1", "gulp-util": "^3.0.8", - "js-yaml": "^3.10.0", - "request": "^2.83.0", - "stylelint": "^8.4.0", - "stylelint-config-bigchaindb": "^1.2.0", - "stylelint-config-standard": "^18.0.0", - "uglify-es": "^3.3.4" + "js-yaml": "^3.12.0", + "request": "^2.88.0", + "stylelint": "^9.6.0", + "stylelint-config-bigchaindb": "^1.2.1", + "stylelint-config-standard": "^18.2.0", + "uglify-es": "^3.3.9" }, "engines": { "node": ">=7.0.0"