Fork me on GitHub
#tools-deps
<
2018-08-22
>
cfleming00:08:39

Now I have to create a Tiny Violin tag in my Github tracker.

🎻 12
dominicm14:08:07

@alexmiller is this something you would want to support?

{:git/url "../"
 :deps/root "sub-dir"
 :sha "abcabc"}
Essentially mono-repos with version pinning.

dominicm14:08:52

I'm getting:

Error building classpath. Destination path ".." already exists and is not an empty directory
org.eclipse.jgit.api.errors.JGitInternalException: Destination path ".." already exists and is not an empty directory
    at org.eclipse.jgit.api.CloneCommand.verifyDirectories(CloneCommand.java:257)
    at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:189)
    at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:89)
    at clojure.tools.gitlibs.impl$call_with_auth.invokeStatic(impl.clj:49)
    at clojure.tools.gitlibs.impl$call_with_auth.invoke(impl.clj:41)
    at clojure.tools.gitlibs.impl$git_clone_bare.invokeStatic(impl.clj:71)
    at clojure.tools.gitlibs.impl$git_clone_bare.invoke(impl.clj:68)
    at clojure.tools.gitlibs.impl$ensure_git_dir$fn__850.invoke(impl.clj:109)
    at clojure.tools.gitlibs.impl$ensure_git_dir.invokeStatic(impl.clj:105)
    at clojure.tools.gitlibs.impl$ensure_git_dir.invoke(impl.clj:100)
    at clojure.tools.gitlibs$resolve.invokeStatic(gitlibs.clj:33)
    at clojure.tools.gitlibs$resolve.invoke(gitlibs.clj:29)
    at clojure.tools.gitlibs$procure.invokeStatic(gitlibs.clj:47)
    at clojure.tools.gitlibs$procure.invoke(gitlibs.clj:41)
    at clojure.tools.deps.alpha.extensions.git$eval894$fn__896.invoke(git.clj:41)
    at clojure.lang.MultiFn.invoke(MultiFn.java:238)
    at clojure.tools.deps.alpha$expand_deps.invokeStatic(alpha.clj:168)
    at clojure.tools.deps.alpha$expand_deps.invoke(alpha.clj:152)
    at clojure.tools.deps.alpha$resolve_deps.invokeStatic(alpha.clj:215)
    at clojure.tools.deps.alpha$resolve_deps.invoke(alpha.clj:197)
    at clojure.tools.deps.alpha.script.make_classpath$create_classpath.invokeStatic(make_classpath.clj:59)
    at clojure.tools.deps.alpha.script.make_classpath$create_classpath.invoke(make_classpath.clj:52)
    at clojure.tools.deps.alpha.script.make_classpath$run.invokeStatic(make_classpath.clj:70)
    at clojure.tools.deps.alpha.script.make_classpath$run.invoke(make_classpath.clj:64)
    at clojure.tools.deps.alpha.script.make_classpath$_main.invokeStatic(make_classpath.clj:109)
    at clojure.tools.deps.alpha.script.make_classpath$_main.doInvoke(make_classpath.clj:84)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Var.applyTo(Var.java:702)
    at clojure.core$apply.invokeStatic(core.clj:657)
    at clojure.main$main_opt.invokeStatic(main.clj:317)
    at clojure.main$main_opt.invoke(main.clj:313)
    at clojure.main$main.invokeStatic(main.clj:424)
    at clojure.main$main.doInvoke(main.clj:387)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Var.applyTo(Var.java:702)
    at clojure.main.main(main.java:37)
which I suspect is due to how the folder name is being chosen.

dominicm14:08:43

oh, weird, I can't supply an absolute path either, it is forced to be a relative one.

dominicm14:08:06

Looks like paths aren't supported at all: Error building classpath. org.eclipse.jgit.transport.TransportLocal cannot be cast to org.eclipse.jgit.transport.SshTransport

dominicm14:08:09

I'll open JIRA tickets

Alex Miller (Clojure team)14:08:54

local git repos were intentionally out of scope

Alex Miller (Clojure team)14:08:45

could possibly be added, but I would rank that below a lot of other things to work on

Alex Miller (Clojure team)14:08:59

so I’ve classified these as minor enhancements in jira

dominicm14:08:01

sounds very reasonable to me. I just don't touch the priority fields, based on what I think I'm supposed to do.

onetom16:08:05

@dominicm the whole point of a monorepo is that you don't have to worry about the versions, because you are supposed to ensure that on every commit all modules/libraries/apps still build and work in your monorepo 😕

dominicm16:08:49

@onetom I know 😞 sometimes we put things into life support though, quite useful under those conditions.

onetom16:08:44

I was wondering how can I control the refresh period of -SNAPSHOT dependencies. Or is it possible to pin them to a specific version? For example, I have all these versions:

$ ls -lah ~/.m2/repository/com/bhauman/figwheel-main/0.1.8-SNAPSHOT/*.jar
-rw-r--r-- 1 onetom staff 135K Aug 14 20:07 /Users/onetom/.m2/repository/com/bhauman/figwheel-main/0.1.8-SNAPSHOT/figwheel-main-0.1.8-20180813.135516-2.jar
-rw-r--r-- 1 onetom staff 137K Aug 15 19:16 /Users/onetom/.m2/repository/com/bhauman/figwheel-main/0.1.8-SNAPSHOT/figwheel-main-0.1.8-20180814.194035-3.jar
-rw-r--r-- 1 onetom staff 140K Aug 21 08:29 /Users/onetom/.m2/repository/com/bhauman/figwheel-main/0.1.8-SNAPSHOT/figwheel-main-0.1.8-20180818.154912-4.jar
-rw-r--r-- 1 onetom staff 140K Aug 21 08:29 /Users/onetom/.m2/repository/com/bhauman/figwheel-main/0.1.8-SNAPSHOT/figwheel-main-0.1.8-SNAPSHOT.jar
I would be happy to just stick to figwheel-main-0.1.8-20180818.154912-4.jar until im on a slow internet connection and extra network traffic can cause several seconds of extra delay

dominicm16:08:02

I think that "0.1.8-20180818.154912-4" works as a version

onetom16:08:07

I was thinking that maybe one solution would be to just use a git dependency in this case, but then it also depends on SNAPSHOT versions of figwheel-core and figwheel-repl https://github.com/bhauman/figwheel-main/blob/master/deps.edn#L6-L7

onetom16:08:50

@dominicm thanks, indeed it does. so i can just specify explicit versions of the transitive dependencies too and it should be fine.

onetom16:08:51

still, it would be good to be able to disable automatic SNAPSHOT updating somehow. iirc i could do that in boot

dominicm16:08:22

in boot I pass --offline

onetom16:08:17

yeah, that's the option i was thinking about!