mojo.syncbase: mojo+syncbase: bump version to 0.13 and update makefiles for recent changes

MultiPart: 2/2

Change-Id: I42ea355a01e423e07163d68efd1d60e249f314f0
diff --git a/Makefile b/Makefile
index b9a33af..14bca45 100644
--- a/Makefile
+++ b/Makefile
@@ -45,7 +45,6 @@
 	"--args-for=https://mojo.v.io/syncbase_server.mojo $(V23_MOJO_FLAGS)" \
 	"--args-for=mojo:dart_content_handler --enable-strict-mode"
 
-
 .DELETE_ON_ERROR:
 
 all: test
@@ -97,11 +96,11 @@
 .PHONY: gen-mojom
 gen-mojom: lib/gen/dart-gen/mojom/lib/mojo/syncbase.mojom.dart gen/go/src/mojom/syncbase/syncbase.mojom.go
 
-# TODO(aghassemi): For now, since the mojom compiler changes often, we don't
-# depend on syncbase.mojom and specify the generated files as .PHONY
-# targets, this makes sure we regenerate every time to pick up any compiler
-# changes. Later when mojom compiler is stable and backward compatible, we can
-# reintroduce the dependency on the mojom file and not regenerate every time.
+# TODO(aghassemi): The mojom compiler is in flux, and updates to it are
+# typically not backwards-compatible, so for now we mark this rule as .PHONY in
+# order to force recompilation of mojom files with every build. Once the mojom
+# compiler stabilizes, we can remove the .PHONY label and avoid recompiling our
+# mojom files unnecessarily.
 .PHONY: gen/go/src/mojom/syncbase/syncbase.mojom.go
 gen/go/src/mojom/syncbase/syncbase.mojom.go: | syncbase-env-check
 	$(call MOJOM_GEN,$(MOJOM_FILE),.,gen,go)
@@ -139,8 +138,9 @@
 	# TODO(nlacasse): Figure out why tests time out with dev.v.io credentials.
 	# Maybe caveat validation?
 	rm -rf $(PWD)/creds
-	# NOTE(nlacasse): The "tests" argument must come before the "MOJO_SHELL_FLAGS" flags,
-	# otherwise mojo_test's argument parser gets confused and exits with an error.
+	# NOTE(nlacasse): The "tests" argument must come before the "MOJO_SHELL_FLAGS"
+	# flags, otherwise mojo_test's argument parser gets confused and exits with an
+	# error.
 	$(MOJO_DIR)/src/mojo/devtools/common/mojo_test tests --config-file $(PWD)/mojoconfig --shell-path $(MOJO_SHELL_PATH) $(MOJO_ANDROID_FLAGS) $(MOJO_SHELL_FLAGS)
 
 .PHONY: syncbase-env-check
@@ -159,19 +159,21 @@
 
 
 .PHONY: publish
-# NOTE(aghassemi): This must be inside lib or won't be accessible.
+# NOTE(aghassemi): This must be inside lib in order to be accessible.
 PACKAGE_MOJO_BIN_DIR := lib/mojo_services
 ifdef DRYRUN
 	PUBLISH_FLAGS := --dry-run
 endif
-# NOTE(aghassemi): Do not forget to increment the version number, otherwise publish will fail.
-# Please follow https://www.dartlang.org/tools/pub/versioning.html for guidelines.
+# NOTE(aghassemi): Publishing will fail unless you increment the version number
+# in pubspec.yaml. See https://www.dartlang.org/tools/pub/versioning.html for
+# guidelines.
 publish: veryclean update-mojo packages
-	$(MAKE) test # Builds and tests for Linux
-	ANDROID=1 $(MAKE) build # Cross compile for Android
+	$(MAKE) test  # Build and test on Linux.
+	ANDROID=1 $(MAKE) build  # Cross-compile for Android.
 	mkdir -p $(PACKAGE_MOJO_BIN_DIR)
 	cp -r gen/mojo/* $(PACKAGE_MOJO_BIN_DIR)
-	# - at the beginning tells make to ignore failure and continue to next line.
+	# Note: The '-' at the beginning of the following command tells make to ignore
+	# failures and always continue to the next command.
 	-pub publish $(PUBLISH_FLAGS)
 	rm -rf $(PACKAGE_MOJO_BIN_DIR)
 
diff --git a/pubspec.yaml b/pubspec.yaml
index b7dc814..ce45597 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -2,9 +2,9 @@
 description: Syncbase is a storage system for developers that makes it easy to synchronize app data between devices. It works even when devices are not connected to the Internet.
 homepage: https://github.com/vanadium/mojo.syncbase
 name: syncbase
-version: 0.0.12
+version: 0.0.13
 dependencies:
-  mojo: '>=0.3.0 <0.4.0'
+  mojo: '>=0.4.0 <0.5.0'
 dev_dependencies:
   dart_style: any
   test: any