Skip to content
Snippets Groups Projects
user avatar
Cam Saul authored
b6640477
History

Circle CI

Install Prerequisites

  1. Oracle JDK 8 (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
  2. Node.js for npm (http://nodejs.org/)
  3. Leiningen (http://leiningen.org/)

Build

Install clojure + npm/bower requirements with

lein deps
npm install

Compile application css file with

./node_modules/gulp/bin/gulp.js build

Usage

Then run the HTTP server with

lein ring server

Unit Tests / Linting

Check that the project can compile successfully with

lein check

Run the linter with

lein eastwood

Run unit tests with

lein expectations

Documentation

Instant Cheatsheet

Start up an instant cheatsheet for the project + dependencies by running

lein instant-cheatsheet

Marginalia

Available at http://metabase.github.io/metabase-init/.

You can generate and view documentation with

lein marg
open ./docs/uberdoc.html

You can update the GitHub pages documentation using

make dox

You should be on the master branch without any uncommited local changes before doing so. Also, make sure you've fetched the branch gh-pages and can push it back to origin.

Migration Summary

lein migration-summary

Will give you a list of all tables + fields in the Metabase DB.

Bootstrapping (for Development)

To quickly get your dev environment set up, use the bootstrap function to create a new User and Organization. Open a REPL in Emacs or with lein repl and enter the following:

(use 'metabase.bootstrap)
(bootstrap)

You'll be walked through the steps to get started.

API Client (for Development)

You can make API calls from the REPL using metabase.http-client:

(use 'metabase.http-client)
(defn cl [& args]
  (-> (apply client {:email "crowberto@metabase.com", :password "blackjet"} args)
      clojure.pprint/pprint))
(cl :get "user/current")
;; -> {:email "crowbetro@metabase.com",
;;     :first_name "Crowbero",
;;     :last_login #inst "2015-03-13T22:55:05.390000000-00:00",
;;     ...}

Checking for Out-of-Date Dependencies

lein ancient                   # list all out-of-date dependencies
lein ancient latest lein-ring  # list latest version of artifact lein-ring

Will give you a list of out-of-date dependencies. This requires leiningen version 2.4.0 or higher so run lein upgrade first if needed. This doesn't seem to check plugins, so you'll have to do that manually using lein ancient latest.

Once's this repo is made public, this Clojars badge will work and show the status as well:

Dependencies Status

License

Copyright © 2015 FIXME

Distributed under the terms of the GNU Affero General Public License (AGPL) except as otherwise noted. See individual files for details.