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.