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.

Reply via email to