This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-08-14
Channels
- # aws (1)
- # beginners (52)
- # boot (1)
- # cider (9)
- # clara (4)
- # cljs-dev (40)
- # cljsrn (2)
- # clojure (166)
- # clojure-dusseldorf (1)
- # clojure-italy (38)
- # clojure-spec (13)
- # clojure-uk (32)
- # clojurescript (337)
- # cursive (11)
- # data-science (47)
- # datomic (11)
- # emacs (3)
- # events (1)
- # fulcro (57)
- # hoplon (16)
- # jobs-discuss (1)
- # juxt (11)
- # keechma (21)
- # mount (2)
- # off-topic (44)
- # onyx (9)
- # re-frame (33)
- # reagent (1)
- # ring-swagger (3)
- # specter (2)
- # test-check (37)
- # vim (30)
@anmonteiro I created a repo that reproduces the issue: https://github.com/symfrog/cljs-modules-react-order . I think the cause is related to the necessary dependency exclusion here https://github.com/symfrog/cljs-modules-react-order/blob/master/project.clj#L5 . Running lein deps :tree
shows the following dependencies:
[cljsjs/react-dom "15.5.4-0" :exclusions [[cljsjs/react]]]
[cljsjs/react-with-addons "15.5.4-0"]
cljsjs/react-dom
requires cljsjs.react
in its deps.cljs and cljsjs/react-with-addons
provides cljsjs.react
in its deps.cljs.
I ran into more emoji-related bugs with self-hosted compiler, and subsequently found bugs in my previous fix for https://dev.clojure.org/jira/browse/CLJS-1576. Just uploaded a new patch.
@symfrog I recommend not using react-with-addons, it is deprecated
> React-with-addons bundle [has been deprecated](https://facebook.github.io/react/docs/addons.html) and Cljsjs no longer provides new versions
> of that package. The latest React-with-addons version won't work with Reagent 0.8.
> For animation utils use [react-transition-group](https://github.com/cljsjs/packages/tree/master/react-transition-group) package instead (TODO: Update to use :global-exports
). [React-dom/test-utils]
> (https://facebook.github.io/react/docs/test-utils.html) and [react-addons-perf](https://facebook.github.io/react/docs/perf.html) are not currently packaged as browserified files, so their use would require Webpack, or they might work with Closure module processing (TODO: Provide example).
https://github.com/reagent-project/reagent/blob/master/CHANGELOG.md
@juhoteperi Thanks, I have already switched and I am not using react-with-addons, just using it to illustrate the potential bug
@dnolen The deps.cljs seem to be correct in both cljsjs/react-with-addons
and cljsjs/react-dom
, both are cljsjs packages and are the only dependencies specified other than clj/cljs. I will try to produce something more minimal.
I did try that repo, david's fork of it and my own attempt of reproing the bug
Couldnt repro with either master or 1.9.854 in all combinations
@anmonteiro FWIW, CLJS-2318 caused a failure for my CI (which I can’t repro locally): https://travis-ci.org/mfikes/clojurescript/builds/264352764#L1941-L1943
But the next commit passed
Weird
Oh this is not CLJS-2309
Looks like a corrupted download
Checksum mismatch etc
OK. That could likely explain it. I’ll have it do another build without cache to ensure it doesn’t repro again.
^ subsequent re-build succeeded, so this was likely indeed just a transient error owing to a botched download checksum
no reason for it to fail. It had passed multiple times before in both your CI and mine
glad we’re not going insane 🙂
@dnolen can we use :main
with :modules
?
@anmonteiro cannot
so what I’m seeing is not a bug then 🙂
@anmonteiro A clean clone of https://github.com/symfrog/cljs-modules-react-order followed by running ./scripts/release
outputs React DOM before React in ./release/mobuleb.js on my side. I have not been able to reproduce this with more minimal cases, so it might be something specific to that repo or I might just not be spotting the cause to extract into a more minimal case.
@symfrog just doesn’t happen for me
which OS are you on?
@symfrog https://github.com/clojure/clojurescript/commit/0b8cff8027fa7fc5b2d325df0206ba90d780f7a6
I added a test case that should reproduce your problem
but CI passes
as I said above, I also did a checkout of your repo and David’s fork
and just couldn’t repro
@anmonteiro Thanks, I saw that and extracted that test into packaged library equivalents with deps.cljs, and could still not reproduce the issue
I’m happy to look at a more reliable repro if you have one
I also suspected that cljs.closure/get-upstream-deps
might be returning incorrect values for that specific case, but it returned the correct values
your use case may be too conflated with tooling which we don’t care about
it just introduces too many variables