diff --git a/Makefile b/Makefile
index 82c2b33..0397ad9 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@
 
 include version.mk
 
-REBAR?=$(shell echo `pwd`/bin/rebar)
+REBAR3?=$(shell echo `pwd`/bin/rebar3)
 ERLFMT?=$(shell echo `pwd`/bin/erlfmt)
 
 # Handle the following scenarios:
@@ -27,13 +27,13 @@
 #      tarball itself.
 #   4. When not on a clean tag, use version.mk + git sha + dirty status.
 
-COUCHDB_GIT_SHA=$(git_sha)
+# COUCHDB_GIT_SHA=$(git_sha)
 
 IN_RELEASE = $(shell if [ ! -d .git ]; then echo true; fi)
 ifeq ($(IN_RELEASE), true)
 
 # 1. Building from tarball, use version.mk.
-COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)
+export COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)
 
 else
 
@@ -52,15 +52,15 @@
 # DIRTY identifies if we're not on a commit
 DIRTY = $(shell git describe --dirty | grep -Eo -- '-dirty' 2>/dev/null)
 # COUCHDB_GIT_SHA is our current git hash.
-COUCHDB_GIT_SHA=$(shell git rev-parse --short=7 --verify HEAD)
+export COUCHDB_GIT_SHA=$(shell git rev-parse --short=7 --verify HEAD)
 
 ifeq ($(ON_TAG),)
 # 4. Not on a tag.
 COUCHDB_VERSION_SUFFIX = $(COUCHDB_GIT_SHA)$(DIRTY)
-COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)-$(COUCHDB_VERSION_SUFFIX)
+export COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)-$(COUCHDB_VERSION_SUFFIX)
 else
 # 2 and 3. On a tag.
-COUCHDB_VERSION = $(REL_TAG)$(DIRTY)
+export COUCHDB_VERSION = $(REL_TAG)$(DIRTY)
 endif
 endif
 
@@ -71,24 +71,6 @@
 
 DESTDIR=
 
-# Rebar options
-apps=
-skip_deps=folsom,meck,mochiweb,triq,proper,snappy,bcrypt,hyper,ibrowse
-suites=
-tests=
-
-COMPILE_OPTS=$(shell echo "\
-	apps=$(apps) \
-	" | sed -e 's/[a-z_]\{1,\}= / /g')
-EUNIT_OPTS=$(shell echo "\
-	skip_deps=$(skip_deps) \
-	suites=$(suites) \
-	tests=$(tests) \
-	" | sed -e 's/[a-z]\{1,\}= / /g')
-DIALYZE_OPTS=$(shell echo "\
-	apps=$(apps) \
-	skip_deps=$(skip_deps) \
-	" | sed -e 's/[a-z]\{1,\}= / /g')
 EXUNIT_OPTS=$(subst $(comma),$(space),$(tests))
 
 TEST_OPTS="-c 'startup_jitter=0' -c 'default_security=admin_local'"
@@ -120,7 +102,8 @@
 .PHONY: couch
 # target: couch - Build CouchDB core, use ERL_COMPILER_OPTIONS to provide custom compiler's options
 couch: config.erl
-	@COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) compile $(COMPILE_OPTS)
+	@# FIXME
+	@[ -e bin/couchjs ] || COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR3) compile
 	@cp src/couch/priv/couchjs bin/
 
 
@@ -140,8 +123,8 @@
 .PHONY: escriptize
 # target: escriptize - Build CLI tools
 escriptize: couch
-	@$(REBAR) -r escriptize apps=weatherreport
-	@cp src/weatherreport/weatherreport bin/weatherreport
+	@[ -e bin/weatherreport ] || COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR3) escriptize -a weatherreport
+	@cp _build/default/bin/weatherreport bin/weatherreport
 
 
 ################################################################################
@@ -158,51 +141,43 @@
 	@$(MAKE) elixir-suite
 	@$(MAKE) weatherreport-test
 
-ifdef apps
-subdirs = $(apps)
-else
-subdirs=$(shell ls src)
-endif
-
 .PHONY: eunit
 # target: eunit - Run EUnit tests, use EUNIT_OPTS to provide custom options
 eunit: export BUILDDIR = $(shell pwd)
 eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
 eunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell pwd)/bin/couchjs $(shell pwd)/share/server/main.js
 eunit: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-eunit: couch
-	@COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) setup_eunit 2> /dev/null
-	@for dir in $(subdirs); do \
-            COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) -r eunit $(EUNIT_OPTS) apps=$$dir || exit 1; \
-        done
-
+eunit: couch setup-eunit
+	echo ${COUCH_VERSION}
+	$(REBAR3) eunit $(addprefix --app ,$(apps)) || exit 1
 
 .PHONY: exunit
 # target: exunit - Run ExUnit tests
 exunit: export BUILDDIR = $(shell pwd)
 exunit: export MIX_ENV=test
-exunit: export ERL_LIBS = $(shell pwd)/src
+exunit: export ERL_LIBS = $(shell pwd)/_build/default/lib
 exunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
 exunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell pwd)/bin/couchjs $(shell pwd)/share/server/main.js
 exunit: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
 exunit: couch elixir-init setup-eunit elixir-check-formatted elixir-credo
 	@mix test --trace $(EXUNIT_OPTS)
 
+.PHONY: setup-eunit
 setup-eunit: export BUILDDIR = $(shell pwd)
 setup-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
 setup-eunit:
-	@$(REBAR) setup_eunit 2> /dev/null
+	@$(REBAR3) ic setup_eunit 2> /dev/null
 
 just-eunit: export BUILDDIR = $(shell pwd)
 just-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
-just-eunit:
-	@$(REBAR) -r eunit $(EUNIT_OPTS)
+just-eunit: setup_eunit
+	@$(REBAR3) -r eunit $(EUNIT_OPTS)
 
 .PHONY: soak-eunit
 soak-eunit: export BUILDDIR = $(shell pwd)
 soak-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
-soak-eunit: couch
-	@$(REBAR) setup_eunit 2> /dev/null
+soak-eunit: couch setup_eunit
+	@$(REBAR3) setup_eunit 2> /dev/null
 	while [ $$? -eq 0 ] ; do $(REBAR) -r eunit $(EUNIT_OPTS) ; done
 
 erlfmt-check:
@@ -335,31 +310,12 @@
 # Developing
 ################################################################################
 
-
-.PHONY: build-plt
-# target: build-plt - Build project-specific PLT
-build-plt:
-	@$(REBAR) -r build-plt $(DIALYZE_OPTS)
-
-
-.PHONY: check-plt
-# target: check-plt - Check the PLT for consistency and rebuild it if it is not up-to-date
-check-plt:
-	@$(REBAR) -r check-plt $(DIALYZE_OPTS)
-
-
-.PHONY: dialyze
+.PHONY: dialyzer
 # target: dialyze - Analyze the code for discrepancies
-dialyze: .rebar
-	@$(REBAR) -r dialyze $(DIALYZE_OPTS)
+dialyzer: .rebar
+	@$(REBAR3) -r dialyzer $(DIALYZE_OPTS)
 
 
-.PHONY: introspect
-# target: introspect - Check for commits difference between rebar.config and repository
-introspect:
-	@$(REBAR) -r update-deps
-	@build-aux/introspect
-
 ################################################################################
 # Distributing
 ################################################################################
@@ -387,28 +343,21 @@
 release: all
 	@echo "Installing CouchDB into rel/couchdb/ ..."
 	@rm -rf rel/couchdb
-	@$(REBAR) generate # make full erlang release
-	@cp bin/weatherreport rel/couchdb/bin/weatherreport
+	@$(REBAR3) release # make full erlang release
 
 ifeq ($(with_fauxton), 1)
-	@mkdir -p rel/couchdb/share/
-	@cp -R share/www rel/couchdb/share/
+	@mkdir -p _build/default/rel/couchdb/share/
+	@cp -R share/www _build/default/rel/couchdb/share/
 endif
 
 ifeq ($(with_docs), 1)
 ifeq ($(IN_RELEASE), true)
-	@mkdir -p rel/couchdb/share/www/docs/
-	@mkdir -p rel/couchdb/share/docs/
-	@cp -R share/docs/html/* rel/couchdb/share/www/docs/
-	@cp share/docs/man/apachecouchdb.1 rel/couchdb/share/docs/couchdb.1
-else
-	@mkdir -p rel/couchdb/share/www/docs/
-	@mkdir -p rel/couchdb/share/docs/
-	@cp -R src/docs/build/html/ rel/couchdb/share/www/docs
-	@cp src/docs/build/man/apachecouchdb.1 rel/couchdb/share/docs/couchdb.1
+	@mkdir -p _build/default/rel/couchdb/share/www/docs/
+	@mkdir -p _build/default/rel/couchdb/share/docs/
+	@cp -R share/docs/html/* _build/default/rel/couchdb/share/www/docs/
+	@cp share/docs/man/apachecouchdb.1 _build/default/rel/couchdb/share/docs/couchdb.1
 endif
 endif
-
 	@echo "... done"
 	@echo
 	@echo "    You can now copy the rel/couchdb directory anywhere on your system."
@@ -434,23 +383,15 @@
 .PHONY: clean
 # target: clean - Remove build artifacts
 clean:
-	@$(REBAR) -r clean
-	@rm -rf .rebar/
+	@$(REBAR3) clean
+	@rm -rf _build
 	@rm -f bin/couchjs
 	@rm -f bin/weatherreport
-	@rm -rf src/*/ebin
-	@rm -rf src/*/.rebar
-	@rm -rf src/*/priv/*.so
-	@rm -rf src/couch/priv/{couchspawnkillable,couchjs}
 	@rm -rf share/server/main.js share/server/main-coffee.js
 	@rm -rf tmp dev/data dev/lib dev/logs
-	@rm -rf src/mango/.venv
-	@rm -f src/couch/priv/couchspawnkillable
-	@rm -f src/couch/priv/couch_js/config.h
 	@rm -f dev/*.beam dev/devnode.* dev/pbkdf2.pyc log/crash.log
 	@rm -f dev/erlserver.pem dev/couch_ssl_dist.conf
 
-
 .PHONY: distclean
 # target: distclean - Remove build and release artifacts
 distclean: clean
diff --git a/_checkouts/ic/priv/setup_eunit.template b/_checkouts/ic/priv/setup_eunit.template
new file mode 100644
index 0000000..fbb567c
--- /dev/null
+++ b/_checkouts/ic/priv/setup_eunit.template
@@ -0,0 +1,21 @@
+{variables, [
+    {package_author_name, "The Apache Software Foundation"},
+    {cluster_port, 5984},
+    {backend_port, 5986},
+    {prometheus_port, 17986},
+    {node_name, "-name couchdbtest@127.0.0.1"},
+
+    {data_dir, "/tmp"},
+    {prefix, "/tmp"},
+    {view_index_dir, "/tmp"},
+    {state_dir, "/tmp"}
+]}.
+{dir, "tmp"}.
+{dir, "tmp/etc"}.
+{dir, "tmp/data"}.
+{dir, "tmp/tmp_data"}.
+
+{template, "../../../rel/overlay/etc/default.ini", "tmp/etc/default_eunit.ini"}.
+{template, "../../../rel/overlay/etc/local.ini", "tmp/etc/local_eunit.ini"}.
+{template, "../../../rel/files/eunit.ini", "tmp/etc/eunit.ini"}.
+{template, "../../../rel/overlay/etc/vm.args", "tmp/etc/vm.args"}.
diff --git a/_checkouts/ic/src/ic.app.src b/_checkouts/ic/src/ic.app.src
new file mode 100644
index 0000000..cbc56fc
--- /dev/null
+++ b/_checkouts/ic/src/ic.app.src
@@ -0,0 +1,7 @@
+{application, ic, [
+    {description, "rebar3 ic plugin"},
+    {vsn, "0.1.0"},
+    {registered, []},
+    {applications, [kernel, stdlib]},
+    {env, []}
+]}.
diff --git a/_checkouts/ic/src/ic.erl b/_checkouts/ic/src/ic.erl
new file mode 100644
index 0000000..f808b7d
--- /dev/null
+++ b/_checkouts/ic/src/ic.erl
@@ -0,0 +1,8 @@
+-module(ic).
+
+-export([init/1]).
+
+-spec init(rebar_state:t()) -> {ok, rebar_state:t()}.
+init(State) ->
+    {ok, State1} = ic_prv_setup_eunit:init(State),
+    {ok, State1}.
diff --git a/_checkouts/ic/src/ic_prv_setup_eunit.erl b/_checkouts/ic/src/ic_prv_setup_eunit.erl
new file mode 100644
index 0000000..16cbde3
--- /dev/null
+++ b/_checkouts/ic/src/ic_prv_setup_eunit.erl
@@ -0,0 +1,81 @@
+-module(ic_prv_setup_eunit).
+
+-behaviour(provider).
+
+-export([init/1, do/1, format_error/1]).
+
+-define(PROVIDER, setup_eunit).
+-define(NAMESPACE, ic).
+-define(CWD, filename:absname(rebar_dir:get_cwd())).
+-define(TEMPLATE, "setup_eunit").
+-define(DEPS, []).
+
+%% ===================================================================
+%% Public API
+%% ===================================================================
+-spec init(rebar_state:t()) -> {ok, rebar_state:t()}.
+init(State) ->
+    Provider = providers:create([
+        {namespace, ?NAMESPACE},
+        {name, ?PROVIDER},
+        {module, ?MODULE},
+        {bare, true},
+        {deps, ?DEPS},
+        {example, "rebar3 ic setup_eunit"},
+        {opts, [{force, $f, "force", undefined, "overwrite existing files"}]},
+        {short_desc, "Setup eunit from template"},
+        {desc, "Setup eunit from template"}
+    ]),
+    {ok, rebar_state:add_provider(State, Provider)}.
+
+-spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}.
+do(State) ->
+    build_eunit_config(State),
+    {ok, State}.
+
+-spec format_error(any()) -> iolist().
+format_error(Reason) ->
+    io_lib:format("~p", [Reason]).
+
+%% ===================================================================
+%% Internal functions
+%% ===================================================================
+build_eunit_config(State) ->
+    Force = is_forced(State),
+    DataDir = ?CWD ++ "/tmp/data",
+    TmpDataDir = ?CWD ++ "/tmp/tmp_data",
+    cleanup_dirs([DataDir, TmpDataDir]),
+    AllOpts = [
+        {template, ?TEMPLATE},
+        {prefix, ?CWD},
+        {data_dir, DataDir},
+        {view_index_dir, DataDir},
+        {geo_index_dir, DataDir},
+        {state_dir, TmpDataDir}
+    ],
+    StateNew = lists:foldl(
+        fun({Key, Value}, StateAcc) ->
+            rebar_state:set(StateAcc, Key, Value)
+        end,
+        State,
+        AllOpts
+    ),
+    ok = rebar_templater:new(?TEMPLATE, [], Force, StateNew).
+
+is_forced(State) ->
+    {Args, _} = rebar_state:command_parsed_args(State),
+    case proplists:get_value(force, Args) of
+        undefined -> false;
+        _ -> true
+    end.
+
+cleanup_dirs(Dirs) ->
+    [del_dir(Dir) || Dir <- Dirs, filelib:is_dir(Dir)].
+
+del_dir(Dir) ->
+    All = filelib:wildcard(Dir ++ "/**"),
+    {Dirs, Files} = lists:partition(fun filelib:is_dir/1, All),
+    lists:foreach(fun file:delete/1, Files),
+    SortedDirs = lists:sort(fun(A, B) -> length(A) > length(B) end, Dirs),
+    lists:foreach(fun file:del_dir/1, SortedDirs),
+    file:del_dir(Dir).
diff --git a/configure b/configure
index 9f8cb68..504a8a8 100755
--- a/configure
+++ b/configure
@@ -55,7 +55,6 @@
   --dev                       alias for --disable-docs --disable-fauxton
   --spidermonkey-version VSN  specify the version of SpiderMonkey to use (defaults to $SM_VSN)
   --skip-deps                 do not update erlang dependencies
-  --rebar=PATH                use rebar by specified path (version >=2.6.0 && <3.0 required)
   --generate-tls-dev-cert     generate a cert for TLS distribution (To enable TLS, change the vm.args file.)
   --rebar3=PATH               use rebar3 by specified path
   --erlfmt=PATH               use erlfmt by specified path
@@ -126,22 +125,6 @@
                 continue
                 ;;
 
-            --rebar)
-                if [ -x "$2" ]; then
-                    version=`$2 --version 2> /dev/null | grep -o "2\.[6-9]\.[0-9]"`
-                    if [ $? -ne 0 ]; then
-                        printf 'Rebar >=2.6.0 and <3.0.0 required' >&2
-                        exit 1
-                    fi
-                    eval REBAR=$2
-                    shift 2
-                    continue
-                else
-                    printf 'ERROR: "--rebar" requires valid path to executable.\n' >&2
-                    exit 1
-                fi
-                ;;
-
             --rebar3)
                 if [ -x "$2" ]; then
                     eval REBAR3=$2
@@ -291,27 +274,14 @@
 {spidermonkey_version, "$SM_VSN"}.
 EOF
 
-install_local_rebar() {
-    if [ ! -x "${rootdir}/bin/rebar" ]; then
-        if [ ! -d "${rootdir}/src/rebar" ]; then
-            # git clone --depth 1 https://github.com/apache/couchdb-rebar.git ${rootdir}/src/rebar
-            git clone https://github.com/apache/couchdb-rebar.git ${rootdir}/src/rebar
-        fi
-        make -C ${rootdir}/src/rebar
-        mv ${rootdir}/src/rebar/rebar ${rootdir}/bin/rebar
-        make -C ${rootdir}/src/rebar clean
-    fi
-}
-
 install_local_rebar3() {
     if [ ! -x "${rootdir}/bin/rebar3" ]; then
         if [ ! -d "${rootdir}/src/rebar3" ]; then
-            git clone --depth 1 --branch ${REBAR3_BRANCH} https://github.com/erlang/rebar3.git ${rootdir}/src/rebar3
+            #git clone --depth 1 --branch 82-rebar3 https://github.com/jiahuili430/rebar3.git ${rootdir}/apps/rebar3
+            git clone --depth 1 https://github.com/erlang/rebar3 ${rootdir}/src/rebar3
         fi
-        cd src/rebar3
-        ./bootstrap
-        mv ${rootdir}/src/rebar3/rebar3 ${rootdir}/bin/rebar3
-        cd ../..
+        cd ${rootdir}/src/rebar3 && ./bootstrap && mv rebar3 ${rootdir}/bin/rebar3
+        cd ${rootdir}
     fi
 }
 
@@ -328,11 +298,6 @@
     fi
 }
 
-if [ -z "${REBAR}" ]; then
-    install_local_rebar
-    REBAR=${rootdir}/bin/rebar
-fi
-
 if [ -z "${REBAR3}" ]; then
     install_local_rebar3
     REBAR3=${rootdir}/bin/rebar3
@@ -346,7 +311,7 @@
 # only update dependencies, when we are not in a release tarball
 if [ -d .git  -a $SKIP_DEPS -ne 1 ]; then
     echo "==> updating dependencies"
-    ${REBAR} get-deps update-deps
+    ${REBAR3} get-deps
 fi
 
 # External repos frequently become integrated with the primary repo,
diff --git a/mix.exs b/mix.exs
index 4dda326..608283a 100644
--- a/mix.exs
+++ b/mix.exs
@@ -52,7 +52,7 @@
       version: "0.1.0",
       elixir: "~> 1.13",
       lockfile: Path.expand("mix.lock", __DIR__),
-      deps_path: Path.expand("src", __DIR__),
+      deps_path: Path.expand("_build/default/lib", __DIR__),
       build_path: Path.expand("_build", __DIR__),
       compilers: [:elixir, :app],
       start_permanent: Mix.env() == :prod,
@@ -72,7 +72,7 @@
   # Run "mix help compile.app" to learn about applications.
   def application do
     [
-      extra_applications: [:logger],
+      extra_applications: [:logger, :couch_log, :config],
       applications: [:httpotion]
     ]
   end
@@ -90,14 +90,14 @@
       {:excoveralls, "~> 0.12", only: :test},
       {:b64url, path: path("b64url")},
       {:jiffy, path: path("jiffy")},
-      {:jwtf, path: path("jwtf")},
+      {:jwtf, path: Path.expand("src/jwtf", __DIR__)},
       {:ibrowse, path: path("ibrowse"), override: true},
       {:credo, "~> 1.6.4", only: [:dev, :test, :integration], runtime: false}
     ]
   end
 
   defp path(app) do
-    lib_dir = Path.expand("src", __DIR__)
+    lib_dir = Path.expand("_build/default/lib", __DIR__)
     Path.expand(app, lib_dir)
   end
 
@@ -148,7 +148,7 @@
       "folsom"
     ]
 
-    deps |> Enum.map(fn app -> "src/#{app}" end)
+    deps |> Enum.map(fn app -> "_build/default/lib/#{app}" end)
   end
 
   defp get_coverage_paths() do
@@ -158,7 +158,7 @@
         MapSet.put(set, "#{x}/ebin")
       end)
 
-    Path.wildcard("src/*/ebin")
+    Path.wildcard("_build/default/lib/*/ebin")
     |> Enum.filter(&File.dir?/1)
     |> Enum.filter(fn path -> not MapSet.member?(deps, path) end)
   end
diff --git a/rebar.config.script b/rebar.config.script
index 1aa1630..322963b 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -104,62 +104,6 @@
 
 os:putenv("COUCHDB_APPS_CONFIG_DIR", filename:join([COUCHDB_ROOT, "rel/apps"])).
 
-SubDirs = [
-    %% must be compiled first as it has a custom behavior
-    "src/couch_epi",
-    "src/couch_log",
-    "src/chttpd",
-    "src/couch",
-    "src/couch_event",
-    "src/mem3",
-    "src/couch_index",
-    "src/couch_mrview",
-    "src/couch_replicator",
-    "src/couch_plugins",
-    "src/couch_pse_tests",
-    "src/couch_stats",
-    "src/couch_peruser",
-    "src/couch_tests",
-    "src/couch_dist",
-    "src/custodian",
-    "src/ddoc_cache",
-    "src/dreyfus",
-    "src/fabric",
-    "src/global_changes",
-    "src/ioq",
-    "src/jwtf",
-    "src/ken",
-    "src/mango",
-    "src/rexi",
-    "src/setup",
-    "src/smoosh",
-    "src/weatherreport",
-    "src/couch_prometheus",
-    "rel"
-].
-
-DepDescs = [
-%% Independent Apps
-{config,           "config",           {tag, "2.1.9"}},
-{b64url,           "b64url",           {tag, "1.0.3"}},
-{ets_lru,          "ets-lru",          {tag, "1.1.0"}},
-{khash,            "khash",            {tag, "1.1.0"}},
-{snappy,           "snappy",           {tag, "CouchDB-1.0.8"}},
-
-%% Non-Erlang deps
-{docs,             {url, "https://github.com/apache/couchdb-documentation"},
-                   {tag, "3.2.1-1"}, [raw]},
-{fauxton,          {url, "https://github.com/apache/couchdb-fauxton"},
-                   {tag, "v1.2.8"}, [raw]},
-%% Third party deps
-{folsom,           "folsom",           {tag, "CouchDB-0.8.4"}},
-{hyper,            "hyper",            {tag, "CouchDB-2.2.0-7"}},
-{ibrowse,          "ibrowse",          {tag, "CouchDB-4.4.2-5"}},
-{jiffy,            "jiffy",            {tag, "1.1.1"}},
-{mochiweb,         "mochiweb",         {tag, "v3.0.0"}},
-{meck,             "meck",             {tag, "0.9.2"}},
-{recon,            "recon",            {tag, "2.5.2"}}
-].
 
 WithProper = lists:keyfind(with_proper, 1, CouchConfig) == {with_proper, true}.
 
@@ -170,30 +114,99 @@
         []
 end.
 
-BaseUrl = "https://github.com/apache/".
-
-MakeDep = fun
-    ({AppName, {url, Url}, Version}) ->
-        {AppName, ".*", {git, Url, Version}};
-    ({AppName, {url, Url}, Version, Options}) ->
-        {AppName, ".*", {git, Url, Version}, Options};
-    ({AppName, RepoName, Version}) ->
-        Url = BaseUrl ++ "couchdb-" ++ RepoName ++ ".git",
-        {AppName, ".*", {git, Url, Version}};
-    ({AppName, RepoName, Version, Options}) ->
-        Url = BaseUrl ++ "couchdb-" ++ RepoName ++ ".git",
-        {AppName, ".*", {git, Url, Version}, Options}
-end.
-
 AddConfig = [
     {require_otp_vsn, "23|24|25"},
-    {deps_dir, "src"},
-    {deps, lists:map(MakeDep, DepDescs ++ OptionalDeps)},
-    {sub_dirs, SubDirs},
-    {lib_dirs, ["src"]},
-    {erl_opts, [{i, "../"}, {d, 'COUCHDB_ERLANG_VERSION', VerString}]},
-    {eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]},
-    {plugins, [eunit_plugin]},
+    {deps_error_on_conflict, true},
+    {deps, [
+        {proper, {git, "https://github.com/proper-testing/proper", {ref, "cfc29e7615ec0a93ac0be619d33609c2139b57fd"}}},
+        {config, {git, "https://github.com/jiahuili430/couchdb-config.git", {ref,"0571481ed314c77a6e7e44ec904afa0109860591"}}},
+        {bear, {git, "https://github.com/jiahuili430/couchdb-bear.git", {ref,"da1e52678d628b394d4bf241ccbe410ab90fd1e3"}}},
+        {b64url, {git, "https://github.com/apache/couchdb-b64url.git", {ref, "ef4fca0c8d18b963412fc16f5848e95944977927"}}},
+        {ets_lru, {git, "https://github.com/apache/couchdb-ets-lru.git", {ref, "f1ca157d6f96c9edf343e280709085f9eed1e716"}}},
+        {ibrowse, {git, "https://github.com/apache/couchdb-ibrowse.git", {ref, "a62d4a6d236729e5869842c70447ad46b3409912"}}},
+        {jiffy, {git, "https://github.com/apache/couchdb-jiffy.git", {ref, "9ea1b35b6e60ba21dfd4adbd18e7916a831fd7d4"}}},
+        {mochiweb, {git, "https://github.com/apache/couchdb-mochiweb.git", {ref, "845803a5defa693c546ea7250818f226a52d2891"}}},
+        {meck, {git, "https://github.com/apache/couchdb-meck.git", {ref, "cc47aab4b64a46a5409c1a93353d44a367b41454"}}},
+        {recon, {git, "https://github.com/apache/couchdb-recon", {ref, "34194da6d9f8ed25f274e0ebb098dc9e95bcf547"}}},
+        {khash, {git, "https://github.com/jiahuili430/couchdb-khash", {ref, "4a0e07f7a2870a543510db355d6c2e9c3c1d84b1"}}},
+        {snappy, {git, "https://github.com/jiahuili430/couchdb-snappy.git", {ref, "536286ada94a3aeee6042d047f3a9c369a5f1475"}}},
+        {folsom, {git, "https://github.com/jiahuili430/couchdb-folsom.git", {ref, "87f778c1efb11e9caebba328a2cba05453db668c"}}},
+        {hyper, {git, "https://github.com/jiahuili430/couchdb-hyper.git", {ref, "69fa387bc9cd67dbe2f4649b4ebd2239e879f239"}}}
+    ]},
+    {plugins, [ic, erlfmt, rebar3_path_deps]},
+    {erlfmt, [write]},
+    {erl_opts, [
+        {i, "../"},
+        {i, "src/couch_tests/include"},
+        {i, "src/mochiweb/include"},
+        {i, "src/rexi/include"},
+        {i, "src/proper/include"},
+        {i, "src/folsom/include"},
+        {i, "src/mem3/include"},
+        {i, "src/couch_mrview/include"},
+        {i, "src/couch/include"},
+        {i, "src/couch_replicator/include"},
+        {i, "src/meck/test/include"},
+        {i, "src/couch_log/include"},
+        {i, "src/dreyfus/include"},
+        {i, "src/chttpd/include"},
+        {i, "src/ibrowse/include"},
+        {i, "src/fabric/include"},
+        {d, 'COUCHDB_ERLANG_VERSION', VerString}
+    ]},
+    {eunit_opts, [
+        verbose,
+        {report, {eunit_progress, [colored, profile]}},
+        {report, {eunit_surefire, [{dir, "_build/test"}]}}
+    ]},
+    {project_app_dirs, ["src/*"]},
+    {eunit_tests, [
+        %{application, b64url},
+        {application, chttpd},
+        %{application, config},
+        {application, couch_dist},
+        {application, couch_event},
+        {application, couch_index},
+        {application, couch_log},
+        {application, couch_mrview},
+        {application, couch_peruser},
+        {application, couch_plugins},
+        {application, couch_prometheus},
+        {application, couch_pse_tests},
+        {application, couch_replicator},
+        {application, couch_stats},
+        {application, couch_tests},
+        {application, couch},
+        {application, custodian},
+        {application, ddoc_cache},
+        {application, dreyfus},
+        %{application, ets_lru},
+        {application, fabric},
+        {application, global_changes},
+        {application, ioq},
+        %{application, jiffy},
+        {application, jwtf},
+        {application, ken},
+        %{application, khash},
+        {application, mango},
+        {application, mem3},
+        %{application, recon},
+        {application, rexi},
+        {application, setup},
+        {application, smoosh},
+        {application, weatherreport},
+        {application, couch_epi}
+    ]},
+    {profiles, [{test, [
+        {extra_src_dirs, [{"test", [{recursive, true}]}]},
+        {deps, [
+            % {b64url, {git, "https://github.com/apache/couchdb-b64url.git", {ref, "ef4fca0c8d18b963412fc16f5848e95944977927"}}},
+            % {ets_lru, {git, "https://github.com/apache/couchdb-ets-lru.git", {ref, "f1ca157d6f96c9edf343e280709085f9eed1e716"}}},
+            % {jiffy, {git, "https://github.com/apache/couchdb-jiffy.git", {ref, "9ea1b35b6e60ba21dfd4adbd18e7916a831fd7d4"}}},
+            % {config, {git, "https://github.com/jiahuili430/couchdb-config.git", {ref,"0571481ed314c77a6e7e44ec904afa0109860591"}}},
+            % {khash, {git, "https://github.com/jiahuili430/couchdb-khash", {ref, "ee87ab0c6bedf0b2b859a867afe5a4ce0ef422a2"}}}
+        ]}
+    ]}]},
     {dialyzer, [
         {plt_location, local},
         {plt_location, COUCHDB_ROOT},
@@ -201,7 +214,86 @@
             asn1, compiler, crypto, inets, kernel, runtime_tools,
             sasl, setup, ssl, stdlib, syntax_tools, xmerl]},
         {warnings, [unmatched_returns, error_handling, race_conditions]}]},
-    {post_hooks, [{compile, "escript support/build_js.escript"}]}
+    {post_hooks, [{compile, "escript support/build_js.escript"}]},
+    {relx, [
+        {release, {couchdb, "3.2.2"}, [
+            %% stdlib
+            asn1,
+            compiler,
+            crypto,
+            inets,
+            runtime_tools,
+            sasl,
+            ssl,
+            syntax_tools,
+            xmerl,
+
+            %% couchdb
+            b64url,
+            bear,
+            chttpd,
+            config,
+            couch,
+            couch_epi,
+            couch_index,
+            couch_log,
+            couch_mrview,
+            couch_plugins,
+            couch_replicator,
+            couch_stats,
+            couch_tests,
+            couch_event,
+            couch_peruser,
+            couch_dist,
+            custodian,
+            ddoc_cache,
+            dreyfus,
+            ets_lru,
+            fabric,
+            folsom,
+            global_changes,
+            hyper,
+            ibrowse,
+            ioq,
+            jiffy,
+            jwtf,
+            ken,
+            khash,
+            mango,
+            mem3,
+            mochiweb,
+            rexi,
+            setup,
+            smoosh,
+            snappy,
+            weatherreport,
+            couch_prometheus,
+
+            %% extra
+            recon,
+            triq
+        ]},
+
+        {mode, prod},
+        {overlay_vars, "rel/couchdb.config"},
+        {sys_config, "rel/files/sys.config"},
+        {vm_args, "rel/files/vm.args"},
+
+        {overlay, [
+            {copy, "LICENSE", "LICENSE"},
+            {mkdir, "var/log"},
+            {copy, "rel/overlay/bin", "bin"},
+            {copy, "rel/overlay/etc", "etc"},
+            {copy, "bin/couchjs", "bin/couchjs"},
+            {copy, "share/server/main.js", "share/server/main.js"},
+            {copy, "share/server/main-coffee.js", "share/server/main-coffee.js"},
+            {copy, "bin/weatherreport", "bin/weatherreport"},
+            {template, "rel/overlay/etc/default.ini", "etc/default.ini"},
+            {template, "rel/overlay/etc/vm.args", "etc/vm.args"},
+            {template, "rel/files/couchdb.in", "bin/couchdb"},
+            {template, "rel/files/couchdb.cmd.in", "bin/couchdb.cmd"}
+        ]}
+    ]}
 ].
 
 lists:foldl(fun({K, V}, CfgAcc) ->
diff --git a/src/couch/include/couch_eunit.hrl b/src/couch/include/couch_eunit.hrl
index 1885248..d8e96fa 100644
--- a/src/couch/include/couch_eunit.hrl
+++ b/src/couch/include/couch_eunit.hrl
@@ -32,7 +32,19 @@
 -define(TEMPDIR,
     filename:join([?BUILDDIR(), "tmp", "tmp_data"])).
 
--define(APPDIR, filename:dirname(element(2, file:get_cwd()))).
+
+%% Rebar3 doesn't change the current directory
+%% Therefore the only way to get the directory of current app
+%% is to construct it from ?FILE
+%% we iterate backwards and remove elements until we find "test"
+%% then remove "test" entry by calling `filename:dirname/`
+-define(APPDIR, filename:dirname(
+    filename:join(
+        lists:reverse(
+            lists:dropwhile(
+                fun(E) -> E =/= "test" end,
+                lists:reverse(filename:split(?FILE))))))).
+
 %% Account for the fact that source files are in src/<app>/.eunit/<module>.erl
 %% when run from eunit
 -define(ABS_PATH(File), %% src/<app>/.eunit/<module>.erl
diff --git a/src/couch/rebar.config.script b/src/couch/rebar.config.script
index ba907b0..9ba8f18 100644
--- a/src/couch/rebar.config.script
+++ b/src/couch/rebar.config.script
@@ -90,11 +90,11 @@
 
 CouchJSConfig = case SMVsn of
     "78" ->
-        "priv/couch_js/86/config.h";
+        APP_DIR ++ "/priv/couch_js/86/config.h";
     "91" ->
-        "priv/couch_js/86/config.h";
+        APP_DIR ++ "/priv/couch_js/86/config.h";
     _ ->
-        "priv/couch_js/" ++ SMVsn ++ "/config.h"
+        APP_DIR ++ "/priv/couch_js/" ++ SMVsn ++ "/config.h"
 end.
 ConfigSrc = [["#define ", K, " ", V, $\n] || {K, V} <- ConfigH].
 ConfigBin = iolist_to_binary(ConfigSrc).
@@ -210,7 +210,7 @@
 ].
 
 SpawnSpec = [
-    {"priv/couchspawnkillable", ["priv/spawnkillable/*.c"]}
+    {APP_DIR ++ "/priv/couchspawnkillable", [APP_DIR ++ "/priv/spawnkillable/*.c"]}
 ].
 
 %% hack required until switch to enc/rebar3
@@ -223,16 +223,49 @@
     {win32, _} ->
         BaseSpecs ++ SpawnSpec;
     _ ->
-        {ok, CSK} = file:read_file("priv/spawnkillable/couchspawnkillable.sh"),
-        ok = CopyIfDifferent("priv/couchspawnkillable", CSK),
-        os:cmd("chmod +x priv/couchspawnkillable"),
+        {ok, CSK} = file:read_file(APP_DIR ++ "/priv/spawnkillable/couchspawnkillable.sh"),
+        ok = CopyIfDifferent(APP_DIR ++ "/priv/couchspawnkillable", CSK),
+        os:cmd("chmod +x " ++ APP_DIR ++ "/priv/couchspawnkillable"),
         BaseSpecs
 end.
 PlatformDefines = [
    {platform_define, "win32", 'WINDOWS'}
 ].
+
+LibDir = "../../_build/default/lib/".
+
 AddConfig = [
     {port_specs, PortSpecs},
+    {plugins, [rebar3_path_deps]},
+    {deps, [
+        {config, {path, LibDir ++ "config"}},
+        {proper, {path, LibDir ++ "proper"}},
+        {bear, {path, LibDir ++ "bear"}},
+        {b64url, {path, LibDir ++ "b64url"}},
+        {ets_lru, {path, LibDir ++ "ets_lru"}},
+        {ibrowse, {path, LibDir ++ "ibrowse"}},
+        {jiffy, {path, LibDir ++ "jiffy"}},
+        {mochiweb, {path, LibDir ++ "mochiweb"}},
+        {meck, {path, LibDir ++ "meck"}},
+        {recon, {path, LibDir ++ "recon"}},
+        {khash, {path, LibDir ++ "khash"}},
+        {snappy, {path, LibDir ++ "snappy"}},
+        {folsom, {path, LibDir ++ "folsom"}},
+        {hyper, {path, LibDir ++ "hyper"}}
+    ]},
+    {profiles, [{test, [
+        {extra_src_dirs, [{"test", [{recursive, true}]}]},
+        {deps, [
+            {b64url, {path, LibDir ++ "b64url"}},
+            {ets_lru, {path, LibDir ++ "ets_lru"}},
+            {jiffy, {path, LibDir ++ "jiffy"}},
+            {config, {path, LibDir ++ "config"}},
+            {khash, {path, LibDir ++ "khash"}}
+        ]}
+    ]}]},
+    {eunit_tests, [
+        {application, config}
+    ]},
     {erl_opts, PlatformDefines ++ [
         {d, 'COUCHDB_VERSION', Version},
         {d, 'COUCHDB_GIT_SHA', GitSha},
diff --git a/src/couch/test/eunit/couch_ejson_compare_tests.erl b/src/couch/test/eunit/couch_ejson_compare_tests.erl
index ae4a5ff..2ac1695 100644
--- a/src/couch/test/eunit/couch_ejson_compare_tests.erl
+++ b/src/couch/test/eunit/couch_ejson_compare_tests.erl
@@ -51,6 +51,8 @@
     {[{<<"b">>, 2}, {<<"c">>, 2}]}
 ]).
 
+-include_lib("eunit/include/eunit.hrl").
+
 % Propery tests
 
 -ifdef(WITH_PROPER).
