CircleCI uses: https://github.com/circleci/lein-version-specs https://github.com/circleci/version-specs
Which can be used to set the version string arbitrarily. Thanks, Allen On Wednesday, February 18, 2015 at 2:10:14 PM UTC-6, Michael Blume wrote: > > Afraid the plugin's internal. > > On Wed Feb 18 2015 at 2:34:32 AM Rick Moynihan <rick.m...@gmail.com > <javascript:>> wrote: > >> This sounds very close to what I'm looking for. >> >> Is this plugin opensourced or something you're using locally, as the >> closest thing I can find to what you describe is lein-git-version: >> >> https://github.com/cvillecsteele/lein-git-version >> >> Which seems to follow project middleware approach you describe, but >> for a different use case. >> >> R. >> >> On 18 February 2015 at 06:18, Michael Blume <blume...@gmail.com >> <javascript:>> wrote: >> > 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.m...@gmail.com >> <javascript:>> >> > 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...@gmail.com >> <javascript:>> 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...@gmail.com >> <javascript:>> >> >> > 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.m...@gmail.com <javascript:>> >> >> >> 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 clo...@googlegroups.com >> <javascript:> >> >> >>> Note that posts from new members are moderated - please be patient >> >> >>> with >> >> >>> your first post. >> >> >>> To unsubscribe from this group, send email to >> >> >>> clojure+u...@googlegroups.com <javascript:> >> >> >>> 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+u...@googlegroups.com <javascript:>. >> >> >>> 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 clo...@googlegroups.com >> <javascript:> >> >> > Note that posts from new members are moderated - please be patient >> with >> >> > your >> >> > first post. >> >> > To unsubscribe from this group, send email to >> >> > clojure+u...@googlegroups.com <javascript:> >> >> > 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+u...@googlegroups.com <javascript:>. >> >> > 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 clo...@googlegroups.com >> <javascript:> >> >> Note that posts from new members are moderated - please be patient with >> >> your first post. >> >> To unsubscribe from this group, send email to >> >> clojure+u...@googlegroups.com <javascript:> >> >> 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+u...@googlegroups.com <javascript:>. >> >> 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 clo...@googlegroups.com >> <javascript:> >> > Note that posts from new members are moderated - please be patient with >> your >> > first post. >> > To unsubscribe from this group, send email to >> > clojure+u...@googlegroups.com <javascript:> >> > 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+u...@googlegroups.com <javascript:>. >> > 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 clo...@googlegroups.com >> <javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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+u...@googlegroups.com <javascript:>. >> 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.