clojure-germany

ordnungswidrig 2021-03-17T07:03:39.001Z

Hallöle.

javahippie 2021-03-17T07:53:27.001200Z

✌️

synthomat 2021-03-17T08:34:23.001500Z

tach

2021-03-17T08:36:13.001900Z

:man-raising-hand:

ordnungswidrig 2021-03-17T10:55:01.002200Z

schon 4 leute heute. Das riecht nach Rekord.

bastilla 2021-03-17T11:12:12.002400Z

Moin aus Hamburg

bastilla 2021-03-17T11:26:02.002700Z

Nutzt jemand von euch Leiningen?

bastilla 2021-03-17T11:30:14.006400Z

Falls ja, ich hab Code in einer Lib angepasst, kompiliert und ins Repos installiert (lein clean, lein compile, lein install). Leider Null Effekt in meiner App, die die Lib nutzt. (Obwohl ich das früher schonmal erfolgreich gemacht hab.) Dann hab ich mal fehlerhaften Code eingefügt und TROTZDEM läuft "lein compile" (ohne Feedback) durch. "lein check" berichtet die Fehlerstelle. Ich kapier die Mechanik hier nicht.... Hat jemand Plan mit Leinigen?

bastilla 2021-03-18T10:57:30.009900Z

Zum Roman oben fehlt noch ein Epilog. Das Problem sitzt NATÜRLICH immer vor dem Schirm. Die veränderte Code-Stelle wird de facto nie ausgeführt --alle Test laufen dann natürlich ins Leere. Peinlich, peinlich!! Der Mechanismus funktioniert, die Lib wird aktualisiert. Peinlich, peinlich. Immer besser einmal drüber schlafen bei solchen Dingen. Danke für eure guten Richtungsweiser!! Na ja, und sich drüber auskotzen hilft bekanntlich auch.

javahippie 2021-03-18T11:19:30.010100Z

Der Schlaf-Debugger klappt immer noch am Besten 😉

bastilla 2021-03-18T11:58:37.010300Z

🙂 Das kleb ich mir über meinen Schirm.

ordnungswidrig 2021-03-18T13:49:06.010500Z

Ich bin erleichter.

ordnungswidrig 2021-03-18T13:49:14.010700Z

Ich bin also nicht der einzige.

RAMart 2021-03-17T11:39:09.006600Z

Das ist kein normales Verhalten von Leiningen. Da ist was im konkreten Projekt faul.

bastilla 2021-03-17T11:42:18.006800Z

die Befehle sind aber korrekt sonst? "lein clean, lein compile, lein uberjar, lein install" ?

javahippie 2021-03-17T11:47:44.007Z

Hat die lib bei dir eine Snapshot Dependency?

bastilla 2021-03-17T11:54:35.007200Z

Hm, glaube nicht. Hier ist zum Spaß mal die project.clj von der Lib:

(defproject markdown-clj-werkbank "1.10.5"
  :description "Markdown parser"
  :url "<https://github.com/yogthos/markdown-clj>"
  :license {:name "Eclipse Public License"
            :url  "<http://www.eclipse.org/legal/epl-v10.html>"}
  :dependencies [[org.clojure/clojure "1.9.0"]
                 [clj-commons/clj-yaml "0.7.0"]]
  :clojurescript? true
  :jar-exclusions [#"\.swp|\.swo|\.DS_Store"]
  :test-selectors {:default   (complement :benchmark)
                   :benchmark :benchmark
                   :all       (constantly true)}
  :auto-clean false

   :aliases {"test-cljs" ["doo" "rhino" "test" "once"]
             "test"      ["do" "test," "test-cljs"]
             "cleantest" ["do" "clean," "test"]
             "install"   ["do" "clean," "install"]
             "deploy"    ["do" "clean," "deploy" "clojars"]}

  :source-paths ["src/clj" "src/cljc" "src/cljs"]
  :cljsbuild
  {:builds {:main
            {:source-paths ["src/cljc" "src/cljs"]
             :jar          true
             :compiler     {:output-to     "demo/js/markdown.js"
                            :optimizations :advanced
                            :pretty-print  false}}
            :dev
            {:compiler {:optimizations :whitespace
                        :pretty-print  true}}

            :test
            {:source-paths ["src/cljc" "src/cljs" "test"]
             :compiler {:output-to "target/unit-test.js"
                        :output-dir "target"
                        :main markdown.runner
                        :optimizations :whitespace}}}}
  :profiles
  {:demo
   {}
   :dev
   {:jvm-opts ["-XX:-TieredCompilation"]
    :dependencies [[criterium "0.4.4" :scope "test"]
                   [commons-lang "2.6" :scope "test"]
                   [org.clojure/clojurescript "1.10.339"]
                   [org.mozilla/rhino "1.7.10"]]
    :plugins      [[lein-cljsbuild "1.1.7"]
                   [lein-doo "0.1.10"]]}}
  :doo {:build "test"
        :paths {:rhino "lein run -m org.mozilla.javascript.tools.shell.Main"}})

javahippie 2021-03-17T12:04:02.007600Z

Auf der einen Seite sagst du aber ja, dass du einen clean machst… wenn es keine Snapshot Dependency ist, dann hat Leiningen eigentlich keinen Grund, die Version deiner Dependency noch mal zu laden, die hat er ja schon. Das ist oft bei Lib Updates “on the fly” auf dem eigenen System ein Problem

bastilla 2021-03-17T12:09:54.007800Z

okay. Aber ich denke doch, dass lein clean + compile doch die aktuellen Quellen (:source-paths ["src/clj" "src/cljc" "src/cljs"]) kompilieren sollte, nicht? Es ist ja nur ein Projekt auf der Platte und ich bin da im Projektverzeichnis mit bash (Terminal)

bastilla 2021-03-17T12:10:23.008Z

Das hat auch mal funktioniert. Vor Monaten.

javahippie 2021-03-17T12:17:28.008300Z

Du könntest höchstens mal versuchen, die library in deinem .m2 Verzeichnis zu löschen und es dann neu zu bauen.

javahippie 2021-03-17T12:18:30.008500Z

Wenn “Lib ändern, installieren, referenzieren” in deinem Workflow öfters vorkommt, würde ich aber tatsächlich zu einer SNAPSHOT dependency raten, die sind genau für den Fall gedacht

🙌 1
bastilla 2021-03-17T12:18:55.008700Z

hm, ja, ich bin da jetzt so weit. Ich such das Ding mal. Danke für die Tipps und dein/euer Ohr

ordnungswidrig 2021-03-17T14:23:56.009Z

lein compile macht nur AOT für die namespaces, die to AOTen möchtest. lein check lädt (und compiliert) all namespaces.

🙌 1
bastilla 2021-03-17T14:26:43.009200Z

Ah! Gute Info. Danke ordnungswidrigkeit

bastilla 2021-03-17T19:16:35.009500Z

Abschließend kann ich sagen, ich hab den Kampf gegen Leiningen verloren. Das hier hat mal funktioniert, geht aber jetzt nicht mehr:

rm ~/.m2/&lt;LIB&gt;
lein clean
lein check
lein compile
lein jar
lein install

bastilla 2021-03-17T19:20:36.009700Z

Und in meinem Projektordner dann:

lein clean
lein deps
lein run
die Änderungen in der Lib werden nicht kompiliert oder ins Lokal-Repos übertragen. Weiß der Henker, was er da mit "lein jar" für Quellen nimmt. Die unter :source-paths der Lib jedenfalls nicht, denn die hab ich ja geändert. Der Fehler sitzt natürlich immer vor dem Schirm. Aber ich gebe mich geschlagen und werde die Sourcen der Lib jetzt in mein Projekt rüberkompieren, so traurig das auch ist.