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.m...@gmail.com> 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.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.

-- 
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.

Reply via email to