Switch branches/tags
v2.2.0-alpha.00000000 v2.1.0-beta.20181015 v2.1.0-beta.20181008 v2.1.0-beta.20181001 v2.1.0-beta.20180924 v2.1.0-beta.20180917 v2.1.0-beta.20180910 v2.1.0-beta.20180904 v2.1.0-beta.20180827 v2.1.0-alpha.20180730 v2.1.0-alpha.20180702 v2.1.0-alpha.20180604 v2.1.0-alpha.20180507 v2.1.0-alpha.20180416 v2.1.0-alpha.00000000 v2.0.6 v2.0.6-rc.1 v2.0.5 v2.0.4 v2.0.3 v2.0.2 v2.0.1 v2.0.0 v2.0-rc.1 v2.0-beta.20180326 v2.0-beta.20180319 v2.0-beta.20180312 v2.0-beta.20180305 v2.0-alpha.20180212 v2.0-alpha.20180129 v2.0-alpha.20180122 v2.0-alpha.20180116 v2.0-alpha.20171218 v2.0-alpha.20171218-plus-left-join-fix v1.2-alpha.20171211 v1.2-alpha.20171204 v1.2-alpha.20171113 v1.2-alpha.20171026 v1.2-alpha.20170901 v1.1.9 v1.1.9-rc.1 v1.1.8 v1.1.7 v1.1.6 v1.1.5 v1.1.4 v1.1.3 v1.1.2 v1.1.1 v1.1.0 v1.1.0-rc.1 v1.1-beta.20170928 v1.1-beta.20170921 v1.1-beta.20170907 v1.1-alpha.20170817 v1.1-alpha.20170810 v1.1-alpha.20170803 v1.1-alpha.20170720 v1.1-alpha.20170713 v1.1-alpha.20170629 v1.1-alpha.20170622 v1.1-alpha.20170608 v1.1-alpha.20170601 v1.0.7 v1.0.6 v1.0.5 v1.0.4 v1.0.3 v1.0.2 v1.0.1 v1.0 v1.0-rc.3 v1.0-rc.2 v1.0-rc.1 v0.1-alpha beta-20170420 beta-20170413 beta-20170406 beta-20170330 beta-20170323 beta-20170309 beta-20170223 beta-20170216 beta-20170209 beta-20170126 beta-20170112 beta-20170105 beta-20161215 beta-20161208 beta-20161201 beta-20161110 beta-20161103 beta-20161027 beta-20161013 beta-20161006 beta-20160929 beta-20160915 beta-20160908 beta-20160829 beta-20160728
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
debug
fonts
release
scripts
styl
ts
.gitignore
.stylintrc
Makefile
README.md
bower.json
embedded.go
gulpfile.js
npm-shrinkwrap.json
package.json
test.html
tsd.json
ui.go

README.md

Embedded UI

This directory contains the client-side code for cockroach's web admin console. These files are embedded into the cockroach binary via the go-bindata package, which is used to generate the embedded.go file in this directory.

Modification

If any modifications are made to the contents of this directory, run make in this directory to generate a new embedded.go, which should then be committed along with the original files. The generated file is committed because making our web admin resource requires additional non-go dependencies

Development

While actively developing the user interface, use make debug in order to run go-bindata in debug mode. This will instruct go-bindata to proxy your local files (rather than using embedded versions) so you'll be able to edit them live without recompiling or restarting the server.

For this change to be picked up, you'll need to run make build in the project root.

Note that only those files that were present the last time you ran make debug will be proxied; if you add a new file, you must run recompile and restart the server after running make debug.

Before committing, be sure to run make to generate a non-debug version of embedded.go. This is enforced by our build system, but forgetting to do this will result in wasted time waiting for the build.

Watch/Livereload

If you want to automatically recompile/copy the typescript/stylus/index files, you can use make watch. This runs Gulp under the hood.

The website can also automatically pick up your changes with [LiveReload] (http://livereload.com/) while make watch is running. The [Chrome LiveReload Plugin] (https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=en) is an easy way to take advantage of this.

Note that if you add a new file, you'll need to restart make watch and run make build in the project root again.

Dependencies

Our admin UI is compiled using a collection of tools that depends on nodejs, so you'll want to have that installed.

We use npm to manage various dependencies; be sure that your node installation includes a recent version of npm. If you observe problems with npm, try updating it using npm install -g npm.

We use bower to manage frontend dependencies and tsd to manage typescript definition files. Our Makefile automatically installs these tools locally, so for the most part, you can be blissfully ignorant of their use. However, if you wish to add bower/tsd dependencies (and do not have your own opinions on binstubs), you'll want to run them from the local install using one of:

  • node_modules/.bin/bower install --save <myAwesomeDep>
  • node_modules/.bin/tsd install --save <myAwesomeDep>

If you're adding an npm dependency, you'll need to run:

	node_modules/.bin/npm install --save <myAwesomeDep> && node_modules/.bin/shonkwrap

The --save modifier and shonkwrap invocation above are necessary to properly lock down dependencies for other developers on the project, so make sure you don't elide them!