We use a Leiningen plugin to set the version dynamically https://github.com/technomancy/leiningen/blob/master/doc/PLUGINS.md -- if you skip down to "project middleware" you'll see how to create the kind of plugin I'm talking about. Within the middleware function, we update the :version key in the project map to a version string composed of a timestamp and the first few characters of the commit hash. The timestamp part is important because it ensures that maven/lein consider newer builds to be newer.
As for lein-ancient, we don't really have it *do* anything, it just prints its suggestions in the build output, and if you look at your build from time to time, you'll see there are libraries you can upgrade. It's not a perfect system, but it helps. On Tue Feb 17 2015 at 4:23:03 PM Rick Moynihan <rick.moyni...@gmail.com> wrote: > Thanks for the tip, I had used lein-ancient in the past and it seems > to have come along a bit since then. > > How is it that you have this configured? > > Do you run lein ancient upgrade before each build that you want to > check its dependencies? I tried this locally and I can't find a way > to tell lein ancient to only try and upgrade certain libraries, rather > than all or nothing. > > For example I have a dependency on incanter 1.5.5 - I don't want it to > upgrade to 1.9.0 because it will break the build catastrophically just > now... I do however want to whitelist it to my library, which I'm > expecting to keep more current. > > R. > > On 17 February 2015 at 19:14, Michael Blume <blume.m...@gmail.com> wrote: > > Related -- we run lein ancient as part of a lot of our builds so that we > can > > easily pick up dependencies with newer available versions. > > > > On Tue Feb 17 2015 at 11:13:44 AM Michael Blume <blume.m...@gmail.com> > > wrote: > >> > >> What we do at Climate is avoid SNAPSHOT builds. Every build gets a > version > >> string with timestamp and git commit. If an upstream library is changed, > >> it's up to downstream maintainers to update their dependency on it. If > you > >> update a dependency and your build fails, you a) don't update your > >> dependency just yet b) complain to the library maintainer that their new > >> version breaks your project. > >> > >> On Tue Feb 17 2015 at 9:51:18 AM Rick Moynihan <rick.moyni...@gmail.com > > > >> wrote: > >>> > >>> Hi all, > >>> > >>> At work, we use Jenkins to continuously integrate our Clojure projects > >>> which are factored into both applications and a small number of > >>> supporting libraries; all of which use Leiningen as their project > >>> build tool. > >>> > >>> Leiningen builds each project, and runs its tests; and then if they > >>> pass it lein installs the project jar into the local ~/.m2 repo and > >>> triggers any dependent builds to start. The dependencies then start > >>> building and pick up the latest SNAPSHOT build from the ~/.m2 > >>> directory. > >>> > >>> This works ok; but it has a relatively major flaw, which is that just > >>> because a project passes its local tests; it doesn't mean that it > >>> hasn't broken an upstream library. When this happens the broken > >>> library is left in the shared ~/.m2 directory - breaking other builds > >>> and generally lying around causing havoc. > >>> > >>> Fortunately this rarely happens in practice; but it is a potential > >>> cause of hard to diagnose (unrepeatable build) problems - especially > >>> when using snapshot builds - which is what I think we want to use for > >>> tracking branches until we > >>> > >>> We currently use the Jenkins leiningen plugin, but I don't think it > >>> supports a more sophisticated setup than this. > >>> > >>> I was wondering if anyone with experience of running robust CI builds > >>> (with Jenkins) might have any ideas about to solve this in a more > >>> robust manner?? > >>> > >>> Many thanks, > >>> > >>> Rick > >>> -- > >>> http://twitter.com/RickMoynihan > >>> > >>> -- > >>> You received this message because you are subscribed to the Google > >>> Groups "Clojure" group. > >>> To post to this group, send email to clojure@googlegroups.com > >>> Note that posts from new members are moderated - please be patient with > >>> your first post. > >>> To unsubscribe from this group, send email to > >>> clojure+unsubscr...@googlegroups.com > >>> For more options, visit this group at > >>> http://groups.google.com/group/clojure?hl=en > >>> --- > >>> You received this message because you are subscribed to the Google > Groups > >>> "Clojure" group. > >>> To unsubscribe from this group and stop receiving emails from it, send > an > >>> email to clojure+unsubscr...@googlegroups.com. > >>> For more options, visit https://groups.google.com/d/optout. > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clojure@googlegroups.com > > Note that posts from new members are moderated - please be patient with > your > > first post. > > To unsubscribe from this group, send email to > > clojure+unsubscr...@googlegroups.com > > For more options, visit this group at > > http://groups.google.com/group/clojure?hl=en > > --- > > You received this message because you are subscribed to the Google Groups > > "Clojure" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to clojure+unsubscr...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.