From 3414012d7c91dfab3d3e376039eca2912233cf2b Mon Sep 17 00:00:00 2001 From: Chris Goller Date: Wed, 8 Feb 2017 18:17:10 -0600 Subject: [PATCH] Update Makefile and webpack to make builds incremental --- .gitignore | 5 ++++ Godeps | 2 +- Makefile | 63 +++++++++++++++++++++++++++++----------- ui/README.md | 33 +++++++++++++++++++++ ui/package.json | 2 +- ui/webpack/prodConfig.js | 2 +- 6 files changed, 87 insertions(+), 20 deletions(-) create mode 100644 ui/README.md diff --git a/.gitignore b/.gitignore index e334f1b411..bbef07c3ad 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,8 @@ chronograf-v1.db npm-debug.log .vscode .DS_Store +.godep +.jsdep +.jssrc +.dev-jssrc +.bindata diff --git a/Godeps b/Godeps index c280e39912..f2c6cb8bad 100644 --- a/Godeps +++ b/Godeps @@ -6,7 +6,7 @@ github.com/elazarl/go-bindata-assetfs 9a6736ed45b44bf3835afeebb3034b57ed329f3e github.com/gogo/protobuf 6abcf94fd4c97dcb423fdafd42fe9f96ca7e421b github.com/google/go-github 1bc362c7737e51014af7299e016444b654095ad9 github.com/google/go-querystring 9235644dd9e52eeae6fa48efd539fdc351a0af53 -github.com/influxdata/kapacitor 0eb8c348b210dd3d32cb240a417f9e6ded1b691d +github.com/influxdata/kapacitor 5408057e5a3493d3b5bd38d5d535ea45b587f8ff github.com/influxdata/usage-client 6d3895376368aa52a3a81d2a16e90f0f52371967 github.com/jessevdk/go-flags 4cc2832a6e6d1d3b815e2b9d544b2a4dfb3ce8fa github.com/satori/go.uuid b061729afc07e77a8aa4fad0a2fd840958f1942a diff --git a/Makefile b/Makefile index 45f856934c..3ebbbcba3e 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,26 @@ +.PHONY: assets dep clean test gotest gotestrace jstest run run-dev + VERSION ?= $(shell git describe --always --tags) COMMIT ?= $(shell git rev-parse --short=8 HEAD) +GDM := $(shell command -v gdm 2> /dev/null) +GOBINDATA := $(shell go list -f {{.Root}} github.com/jteeuwen/go-bindata 2> /dev/null) +YARN := $(shell command -v yarn 2> /dev/null) -SOURCES := $(shell find . -name '*.go') +SOURCES := $(shell find . -name '*.go' ! -name '*_gen.go') +UISOURCES := $(shell find ui -type f -not \( -path ui/build/\* -o -path ui/node_modules/\* -prune \) ) LDFLAGS=-ldflags "-s -X main.version=${VERSION} -X main.commit=${COMMIT}" BINARY=chronograf -default: dep build +.DEFAULT_GOAL := all + +all: dep build build: assets ${BINARY} -dev: dev-assets ${BINARY} +dev: dep dev-assets ${BINARY} -${BINARY}: $(SOURCES) +${BINARY}: $(SOURCES) .bindata go build -o ${BINARY} ${LDFLAGS} ./cmd/chronograf/main.go docker-${BINARY}: $(SOURCES) @@ -22,30 +30,51 @@ docker-${BINARY}: $(SOURCES) docker: dep assets docker-${BINARY} docker build -t chronograf . -assets: js bindata +assets: .jssrc .bindata -dev-assets: dev-js bindata +dev-assets: .dev-jssrc .bindata -bindata: +.bindata: server/swagger_gen.go canned/bin_gen.go dist/dist_gen.go + @touch .bindata + +dist/dist_gen.go: $(UISOURCES) go generate -x ./dist - go generate -x ./canned + +server/swagger_gen.go: server/swagger.json go generate -x ./server -js: +canned/bin_gen.go: canned/*.json + go generate -x ./canned + +.jssrc: $(UISOURCES) cd ui && npm run build + @touch .jssrc -dev-js: +.dev-jssrc: $(UISOURCES) cd ui && npm run build:dev + @touch .dev-jssrc -dep: jsdep godep +dep: .jsdep .godep -godep: +.godep: Godeps +ifndef GDM + @echo "Installing GDM" go get github.com/sparrc/gdm - gdm restore +endif +ifndef GOBINDATA + @echo "Installing go-bindata" go get -u github.com/jteeuwen/go-bindata/... +endif + gdm restore + @touch .godep -jsdep: - cd ui && yarn +.jsdep: ui/yarn.lock +ifndef YARN + $(error Please install yarn 0.19.1+) +else + cd ui && yarn --no-progress --no-emoji + @touch .jsdep +endif gen: bolt/internal/internal.proto go generate -x ./bolt/internal @@ -71,5 +100,5 @@ clean: if [ -f ${BINARY} ] ; then rm ${BINARY} ; fi cd ui && npm run clean cd ui && rm -rf node_modules - -.PHONY: clean test jstest gotest run + rm -f dist/dist_gen.go canned/bin_gen.go server/swagger_gen.go + @rm -f .godep .jsdep .jssrc .dev-jssrc .bindata diff --git a/ui/README.md b/ui/README.md new file mode 100644 index 0000000000..015356cb1f --- /dev/null +++ b/ui/README.md @@ -0,0 +1,33 @@ +## Packages +We are using [yarn](https://yarnpkg.com/en/docs/install) 0.19.1. + +### Adding new packages +To add a new package, run + +```sh +yarn add packageName +``` + +### Adding devDependency + +```sh +yarn add --dev packageName +``` + +### Updating a package +First, run + +```sh +yarn outdated +``` + +... to determine which packages may need upgrading. + +We _really_ should not upgrade all packages at once, but, one at a time and make darn sure +to test. + +To upgrade a single package named `packageName`: + +```sh +yarn upgrade packageName +``` diff --git a/ui/package.json b/ui/package.json index aeb98fed01..765e675060 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "chronograf-ui", - "version": "1.1.0", + "version": "1.2.0", "private": false, "license": "AGPL-3.0", "description": "", diff --git a/ui/webpack/prodConfig.js b/ui/webpack/prodConfig.js index 269e818db9..fd06f9d6b0 100644 --- a/ui/webpack/prodConfig.js +++ b/ui/webpack/prodConfig.js @@ -8,7 +8,7 @@ var dependencies = package.dependencies; var config = { bail: true, - devtool: 'hidden-source-map', + devtool: 'eval', entry: { app: path.resolve(__dirname, '..', 'src', 'index.js'), vendor: Object.keys(dependencies),