{"id":7935,"date":"2019-08-21T07:08:58","date_gmt":"2019-08-21T12:08:58","guid":{"rendered":"https:\/\/bobbeaty.com\/wp\/?p=7935"},"modified":"2019-09-03T15:19:52","modified_gmt":"2019-09-03T20:19:52","slug":"moving-to-leiningen-2-9-0-and-ultra-0-6-0","status":"publish","type":"post","link":"https:\/\/bobbeaty.com\/wp\/archives\/7935","title":{"rendered":"Moving to Leiningen 2.9.0 and Ultra 0.6.0"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/bobbeaty.com\/wp\/wp-content\/uploads\/2010\/04\/Clojure.jpg\" alt=\"Clojure.jpg\" title=\"Clojure.jpg\" border=\"0\" width=\"125\" height=\"125\" style=\"float:right;\" \/><\/p>\n<p>This morning I decided to see about the status on one of my <em>favorite<\/em> <a href=\"https:\/\/leiningen.org\">Leiningen<\/a> plugins - <a href=\"https:\/\/github.com\/venantius\/ultra\">Ultra<\/a>, the formatter, highlighter for the REPL. It makes things so much easier to see and read at a glance, and follow along quickly with the output of a function, or the values in some input. It's really what syntax highlighting did to text editors. Very nice.<\/p>\n<p>Anyway... I found that <a href=\"https:\/\/github.com\/venantius\/ultra\">Ultra<\/a> 0.6.0 was up on Clojars, and so I was able to move to <a href=\"https:\/\/leiningen.org\">Leiningen<\/a> 2.9.0 in <a href=\"https:\/\/brew.sh\">Homebrew<\/a> with:<\/p>\n<pre class=\"bash\" style=\"font-family:monospace;\">  $ brew switch leiningen 2.9.0<\/pre>\n<p>and then I changed my <tt>~\/.lein\/profiles.clj<\/tt> to be:<\/p>\n<pre class=\"clojure\" style=\"font-family:monospace;\">  <span style=\"color: #66cc66;\">&#123;<\/span>\n   :<span style=\"color: #555;\">user<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>:<span style=\"color: #555;\">plugins<\/span> <span style=\"color: #66cc66;\">&#91;<\/span><span style=\"color: #66cc66;\">&#91;<\/span>lein<span style=\"color: #66cc66;\">-<\/span>exec <span style=\"color: #ff0000;\">&quot;0.3.7&quot;<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                    <span style=\"color: #66cc66;\">&#91;<\/span>venantius<span style=\"color: #66cc66;\">\/<\/span>ultra <span style=\"color: #ff0000;\">&quot;0.6.0&quot;<\/span><span style=\"color: #66cc66;\">&#93;<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n          :<span style=\"color: #555;\">ultra<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>:<span style=\"color: #555;\">color<\/span><span style=\"color: #66cc66;\">-<\/span>scheme <span style=\"color: #66cc66;\">&#123;<\/span>:<span style=\"color: #555;\">delimiter<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">yellow<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">tag<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">yellow<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">nil<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">cyan<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">boolean<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">cyan<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">number<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">green<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">string<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">red<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">character<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">cyan<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">keyword<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">yellow<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">symbol<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">magenta<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">function<\/span><span style=\"color: #66cc66;\">-<\/span>symbol <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">blue<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">class<\/span><span style=\"color: #66cc66;\">-<\/span>delimiter <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">blue<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">class<\/span><span style=\"color: #66cc66;\">-<\/span>name <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">green<\/span><span style=\"color: #66cc66;\">&#93;<\/span>\n                                 :<span style=\"color: #555;\">exception<\/span> <span style=\"color: #66cc66;\">&#91;<\/span>:<span style=\"color: #555;\">bold<\/span> :<span style=\"color: #555;\">red<\/span><span style=\"color: #66cc66;\">&#93;<\/span><span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span>\n         <span style=\"color: #66cc66;\">&#125;<\/span>\n  <span style=\"color: #66cc66;\">&#125;<\/span><\/pre>\n<p>and then I was ready to go.<\/p>\n<p>One downside of moving to <a href=\"https:\/\/leiningen.org\">Leiningen<\/a> 2.9.0 is that nREPL 0.6.0 formats the output a little differently, and it places an <em>additional<\/em> newline on the end of the output, so that it now appears to have a \"double spaced\" output:<\/p>\n<p><a title=\"View 'Leiningen Differences' on Flickr.com\" href=\"https:\/\/www.flickr.com\/photos\/27977752@N04\/48591744617\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" style=\"display:block; margin-left:auto; margin-right:auto;\" height=\"310\" src=\"https:\/\/live.staticflickr.com\/65535\/48591744617_dd8fe7d948.jpg\" alt=\"Leiningen Differences\" width=\"500\" title=\"Leiningen Differences\"\/><\/a><\/p>\n<p>where the top REPL was using the old nREPL in <a href=\"https:\/\/leiningen.org\">Leiningen<\/a> 2.8.3, and the bottom one was using <a href=\"https:\/\/leiningen.org\">Leiningen<\/a> 2.9.0 with nREPL 0.6.0. Now the developers <em>may<\/em> come to terms with this, and clean this up, or at least make it optional, but for now, I'm willing to live with the extra line as just \"part of life\"... as I really wanted to get to <a href=\"https:\/\/github.com\/venantius\/ultra\">Ultra<\/a> 0.6.0 and <a href=\"https:\/\/leiningen.org\">Leiningen<\/a> 2.9.0 - due to it's significant structural changes under the hood.<\/p>\n<p>Progress isn't always without a few bumps in the road...<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This morning I decided to see about the status on one of my favorite Leiningen plugins &#8211; Ultra, the formatter, highlighter for the REPL. It makes things so much easier to see and read at a glance, and follow along quickly with the output of a function, or the values in some input. It&#8217;s really [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,4],"tags":[],"class_list":["post-7935","post","type-post","status-publish","format-standard","hentry","category-clojure-coding","category-open-source-software"],"_links":{"self":[{"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/posts\/7935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/comments?post=7935"}],"version-history":[{"count":2,"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/posts\/7935\/revisions"}],"predecessor-version":[{"id":7944,"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/posts\/7935\/revisions\/7944"}],"wp:attachment":[{"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/media?parent=7935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/categories?post=7935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bobbeaty.com\/wp\/wp-json\/wp\/v2\/tags?post=7935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}