   "[project {groupId name ctime sha}] [project coordinate-string]"
   [repos-dir pspec]
   (prn "find-matching-projects" repos-dir pspec)
+  ;; TODO: find correct sha and project.clj more efficiently and with
+  ;; less ambiguity. (only consider projects changed at the given sha)
   (let [{:keys [sha artifactId groupId]} pspec
         dirs (all-repos-dirs)
         sha-candidates (locate-sha dirs sha)

                 :branch branch}))
            (partition 2 1 (concat commits [:end]))))))

;; Add metadata pinning (how big to bump? all? minor? sha?) -- warn about not updating
;; Opt-in autobump  -- default to no major auto
(defn get-fresh-versions []
  (let [dirs (all-repos-dirs)
        _ (fetch-checkout-all dirs)]
    (into {}
          (for [dir dirs
                prj-file (find-project-files dir)]
            (let [{:keys [group name version] :as prj} (project/read prj-file)
                  gver (get-voom-version (:root prj) :gitdir dir)
                  qual (format-voom-ver gver timestamp-fmt)
                  new-ver (str (s/replace version #"-SNAPSHOT" "") qual)]
              [(symbol group name) new-ver])))))

(defn fresh-version [fresh-versions-map [prj ver :as dep]]
  (if-let [new-ver (get fresh-versions-map prj)]
    (assoc dep 1 new-ver)
    (do
      (when (ver-parse ver)
        (println "Warning: didn't find or freshen voom-version dep" dep))
      dep)))

(defn rewrite-project-file [input-str replacement-map]
  (reduce (fn [^String text [[prj old-ver :as old-dep] [_ new-ver]]]

    {:ctime ctime :sha sha}))

(defn format-voom-ver
  [gver]
  (let [{:keys [ver ctime sha]} gver]
    (str (s/replace ver #"-SNAPSHOT" "")
         "-" (formatted-timestamp timestamp-fmt ctime) "-g" sha)))

(defn update-proj-version
  [project long-sha?]
  (let [gver (-> project :root (get-voom-version :long-sha? long-sha?))
        upfn #(format-voom-ver (assoc gver :ver %))
        nproj (update-in project [:version] upfn)
        nmeta (update-in (meta project) [:without-profiles :version] upfn)
        nnproj (with-meta nproj nmeta)]
