Skip to content
Snippets Groups Projects
user avatar
Allen Gilliland authored
move the unit testing log4j.properties out the 'test' code folder because then it's also used in a lot of other places.  instead just create a new test_resources folder which we only apply to the unit tests profile.
184d53ac
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

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:

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.