Install Prerequisites
- Oracle JDK 8 (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
- Node.js for npm (http://nodejs.org/)
- Leiningen (http://leiningen.org/)
Build
Install clojure + npm/bower requirements with
lein deps
npm install
Build the application JS and CSS with
lein gulp
When developing the frontend client, you'll want to watch for changes, so run the default gulp task.
./node_modules/gulp/bin/gulp.js
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 test
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:
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.