Fork me on GitHub
#cljs-dev
<
2018-03-26
>
Alex Miller (Clojure team)00:03:32

Usually it take about 5-10 minutes

Alex Miller (Clojure team)00:03:16

Sometimes it’s available for download before it shows up in the web apis - I think some of that is updated in batch

mfikes01:03:02

The JAR is showing up now. Right on time 11 hours later. 🙂

Alex Miller (Clojure team)01:03:05

where are you looking for it?

Alex Miller (Clojure team)01:03:36

I release Maven jars almost every week for something or other and I almost never see a lag like that

mfikes01:03:27

Downloading: org/clojure/clojurescript/1.10.238/clojurescript-1.10.238.pom from 

mfikes01:03:33

The timestamp in their web UI looks like reflects an older stamp of when the JAR was actually created

1.10.238/                                         2018-03-25 14:09         -  

mfikes01:03:21

But that directory wasn't there earlier today (say, several hours after David triggered the build, and I went fishing in there.)

john01:03:28

pulled 238!🍻

Alex Miller (Clojure team)01:03:46

which web ui are you looking at?

Alex Miller (Clojure team)01:03:01

those are updated in batch so often don’t reflect the availability of the jar

Alex Miller (Clojure team)01:03:42

typically I see stuff show up in there after about 10 minutes, but often the jar is available before that even. If you’re using mvn or lein to check you also need to use -U to force it to re-update

mfikes01:03:20

I’m using clj and that is coming from /usr/local/Cellar/clojure/1.9.0.348/deps.edn

john01:03:56

for the ws repl implementation, I tried storing all the outs and response state in browser-state and server-state atoms within the IJavasScriptEnv object, but it ended up not making sense. The bindings need to be globally referenced.

Alex Miller (Clojure team)01:03:22

clj actually doesn’t have an equivalent of the -U so you have to wait for the maven cache to time out, so in this case, clj may be hurting your ability to see latest

mfikes01:03:38

Ahh, OK. That would make sense.

mfikes01:03:49

Maybe the default is around half a day

mfikes01:03:02

But. I swear the file wasn’t showing up in their web UI

mfikes01:03:26

@john are you also useing clj to pull?

john01:03:13

at 7:20 EST it wasn't pulling for me

john01:03:27

via the mvn version coord

Alex Miller (Clojure team)01:03:39

actually, now I’m not sure what clj does or what controls that in the api… looking

Alex Miller (Clojure team)01:03:37

the default policy is “daily” and I see where it can be set, might be a good thing to expose in clj

Alex Miller (Clojure team)01:03:56

it’s also settable on a per-repo basis

mfikes01:03:51

FWIW, I also blew away my .m2 directory entirely several times today (because I would build 1.10.238 locally, but want to clear it all out again to see if it was available from maven)

mfikes01:03:34

Presumably that would clear out any way for it to know when the last attempt was, right? Or does that state get stored outside of ~/.m2?

dnolen01:03:19

yes, deleting something from .m2 is enough far as I know

mfikes01:03:02

I also think last time this happened that I also tried lein, but I’m not completely sure. I want to say that Maven doing slow batched updates is a likely explanation.

Alex Miller (Clojure team)01:03:34

lein and maven will definitely not re-update a failed download without -U - they use the default daily policy otherwise

mfikes01:03:41

The strongest piece of evidence is that the web UI wasn’t showing the JAR.

Alex Miller (Clojure team)02:03:26

yeah, the state is stored in the .m2 meta files so blowing that away does mean it’s external

Alex Miller (Clojure team)02:03:50

sometimes maven central does get backed up, so that is possible, just been a while since I saw that

Garrett Hopper02:03:41

I'm curious; what is the rationale behind routing patches through Jira instead of pull requests? Is it just a case of tracking code changes with Jira tickets?

dnolen02:03:03

@ghopper it’s just how Clojure development is currently done

Garrett Hopper02:03:43

@dnolen That's cool. I'm just curious what kind of benefits it has.

dnolen02:03:38

I will say though after seeing how Closure Compiler works - the advantages of seeing CA and CI when people submit something really seems like a better process

dnolen02:03:29

@ghopper 7 years ago GitHub wasn’t that fancy?

Garrett Hopper02:03:42

CI/CD? I'm not familiar with CA.

dnolen02:03:45

Also GH used to have serious moderation issues

dnolen02:03:58

CA = Contributor Agreement

Garrett Hopper02:03:07

That makes sense. Just a holdover from the past I guess?

Garrett Hopper02:03:10

:thumbsup: Thanks

Garrett Hopper02:03:47

Heh, I hadn't actually read the CA until now. I guess that's just one of those BDFL things I haven't run into before. 😛

dnolen12:03:31

@mfikes feel free to publish those posts

mfikes12:03:12

OK, will merge the main and the command line one, but not the AOT news post

dnolen12:03:39

I’ll do the mailing list announce and point to that once it’s up

mfikes12:03:16

The posts are showing up now

mfikes12:03:21

@dnolen If you'd like me to work on a fix https://github.com/clojure/clojurescript-site/issues/207 I have some free time now

mfikes13:03:47

^ is now fixed and https://clojurescript.org/guides/quick-start is showing the browser image

mfikes13:03:56

That was a pretty smooth launch—it is nice that we had everything prepared and just had to make it so.

juhoteperi13:03:24

Is canary working? * Errored task chromex * clojure.lang.ExceptionInfo: Travis build request was rejected. Your travis account might be banned. * {"message" "Abuse detected",

juhoteperi13:03:58

One of Metosin libs broke due to MapEntry changes so I'll look adding it to canary at some point

darwin13:03:13

@juhoteperi yes, my travis account was blocked, but @mfikes’s travis builds should still run, I’m going to investigate why they appear as “disabled” on the overview

darwin13:03:45

it is probably a bug I introduced yesterday

darwin13:03:54

@juhoteperi fixed: https://github.com/cljs-oss/canary/commit/18dc90e82bd5189fe611b2ad4c092792a518c56d, next run should properly report everything except my libs, in other words nothing should stop you adding your lib and trying it 🙂

darwin14:03:40

ok, canary should be fully working by now, my travis account just got unbanned - btw. the ban wasn’t related to canary. turned out I did a pull request into a bitcoin-related project and that triggered a ban from their bitcoin mining abuse prevention subsystem, it was a false-positive @mfikes @juhoteperi

Alex Miller (Clojure team)15:03:41

@dnolen fyi, I am getting close on the windows clj. I actually had my first successful run with it yesterday. Still a lot of cleanup and testing.

🎉 36
kommen16:03:15

@mfikes re https://dev.clojure.org/jira/browse/CLJS-2705 you were quicker 😉 but I think the error message could be much better

kommen16:03:30

considering you get a hint in clojure:

kommen16:03:37

$ clj
Clojure 1.9.0
user=> (require 'foo-bar)
FileNotFoundException Could not locate foo_bar__init.class or foo_bar.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.  clojure.lang.RT.load (RT.java:463)
user=> (require 'foobar)
FileNotFoundException Could not locate foobar__init.class or foobar.clj on classpath.  clojure.lang.RT.load (RT.java:463)

mfikes16:03:19

Seems like we could port that logic to ClojureScript. I'd file an enhancement JIRA.

kommen16:03:54

will do later

mfikes17:03:54

I apologize to contributors missed in the first version of the news this morning. This has hopefully been corrected now. If your name is missing, please let me know. https://clojurescript.org/news/2018-03-26-release#_contributors

dnolen20:03:47

@mfikes I fixed up the transit-cljs issues that seemed problematic to me - let me know if you see anything else around Transit that seems critical if you have time

mfikes20:03:19

@dnolen I think the ability to write the 3 kinds of map entries might be useful if not yet addressed, so that transit-cljs has parity with transit-clj (perhaps it writes them as 2-element vectors, but I can't recall) (https://github.com/cognitect/transit-cljs/issues/33)

mfikes20:03:03

More insight into ^ is in the duplicate ticket I wrote https://github.com/cognitect/transit-cljs/issues/42

dnolen21:03:19

@mfikes I think need a issue with complete description it’s too hard to piece together right now

dnolen21:03:01

Also are red black nodes always terminal?

dnolen21:03:09

So does that even make sense?

mfikes21:03:10

OK. In 42 it shows examples of what fails. But to be honest, it is not clear if transit-clj just succeeds by accident

mfikes21:03:39

Definitely, I agree it doesn't seem like a trivial thing to just throw in without understanding fully

mfikes21:03:09

I'll see if I can solidify the transit-clj behavior (try to suss out if it works only by accident, for example)

mfikes23:03:59

Based on an interesting comment in #clojure about [1 2] not wasting 30 slots of memory, does ClojureScript?

(count (.-tail [1 2]))  ;=> 2
but
(count (.-arr (.-root [1 2])))  ;=> 32

mfikes23:03:22

Is that ^ the same as the immutable (shared) EMPTY_NODE in Clojure? Hrm.

mfikes23:03:42

Yeah, I'm guessing it is (.-EMPTY_NODE cljs.core/PersistentVector). I need to read some more of that code. 🙂