One difficulty with this approach (which I largely following on a similar 
operation a while back) is that the modular counterparts have continued 
forward and in many cases are not API-compatible with the 1.2 version 
anymore (tools.cli is one example that I remember from this transition as 
its API changed significantly). In fact, some contrib libraries no longer 
build or support 1.2 at all. In those cases, you're going to need to jump 
both contrib and clojure version at the same time. 

Before doing anything, I would do a census as to which of the 
clojure.contrib namespaces are actually in use. Perhaps you examine them in 
order from most recently run backwards.  I'm guessing that there is a 
decent amount of duplication and copy/paste if you really have thousands of 
these, so I suspect you'll see some patterns.

On Sunday, December 22, 2013 6:07:26 PM UTC-6, solo...@gmail.com wrote:
>
> A third option I'm considering is to simply keep running 1.2 and replace 
> the contrib libraries with their modular counterparts, moving to 1.5 only 
> after that's done. The two difficulties I see here are:
> 1) Ensuring all new reports written during this process use the modular 
> libraries
> 2) What to do about contrib libraries which have no counterpart (but this 
> difficulty applies to all options)
>
> On Sunday, December 22, 2013 6:51:06 PM UTC-5, solo...@gmail.com wrote:
>>
>> At my company, we use Clojure for reporting. Specifically, reports are 
>> written in Clojure which integrate data from a variety of sources and 
>> display the final output to the user in a WPF-based webapp.
>>
>> For all intents and purposes, each 'report' is a standalone Clojure app, 
>> and most of them use the contrib library. Not all of them are active, but 
>> there are thousands. And I need to migrate them over to 1.5.
>>
>> Now I know the contrib libraries are not compatible with 1.3+. From what 
>> I've read, the big change is related to dynamic var declaration, and there 
>> are subtle incompatibilities involving certain scalars. I also looked at 
>> this page for information on each library's migration:
>> http://dev.clojure.org/display/community/Where+Did+Clojure.Contrib+Go
>>
>> I'm considering one of two approaches:
>>
>> 1) Run both Clojure 1.2 and 1.5, with all new reports required to use the 
>> modular contrib libraries. This would require a change to the backend 
>> appservers.
>>
>> 2) Grep the reports and create a list of all the distinct contrib 
>> libraries we use. Identify which of the libraries have a modular analog, 
>> and replace accordingly. To do this, I would need to check that the 
>> function signatures match and the output is remains as expected. I would 
>> also still need to run 1.2 running in production and 1.5 in a sandbox to 
>> migrate reports over gradually.
>>
>> Asking individual authors to update their reports won't work.
>>
>> Please share your opinions on these approaches or what your experience 
>> was in migrating from 1.2 to 1.3+.
>>
>> Also, is there an easier way which I'm not seeing? Thank you.
>>
>> Sol
>>
>>
>>
>>
>>
>>

-- 
-- 
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/groups/opt_out.

Reply via email to