This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-06-04
Channels
- # announcements (4)
- # beginners (110)
- # boot (6)
- # calva (23)
- # cider (14)
- # cljdoc (5)
- # cljs-dev (50)
- # cljsrn (3)
- # clojure (105)
- # clojure-europe (3)
- # clojure-italy (46)
- # clojure-nl (6)
- # clojure-spec (19)
- # clojure-sweden (1)
- # clojure-uk (78)
- # clojurescript (66)
- # core-async (5)
- # cursive (19)
- # data-science (16)
- # datomic (3)
- # events (2)
- # fulcro (11)
- # hoplon (53)
- # jobs (4)
- # jobs-discuss (6)
- # keechma (51)
- # leiningen (3)
- # nrepl (25)
- # off-topic (95)
- # parinfer (8)
- # precept (1)
- # reitit (61)
- # remote-jobs (1)
- # rewrite-clj (75)
- # ring-swagger (2)
- # robots (3)
- # shadow-cljs (43)
- # tools-deps (28)
- # vim (2)
Hello. I want to create a project example demonstrating a compiler bug. Is there a template empty project somewhere on Github with minimal tooling as described e.g. in Quick Start
? Didn't find such thing in
(the closest is mies
but it looks outdated).
@metametadata In general, no templates are necessary and Quick Start is often sufficient. Many problems you can repro directly in the REPL, but if you need to set up files, etc, you can do that as well. Here is an example ticket https://clojure.atlassian.net/projects/CLJS/issues/CLJS-2767
Thanks! Yes, REPL was not enough, had to follow the Quick Start manually. Which took only a few minutes, but still 🙂
what is the CI for clojurescript?
in https://build.clojure.org/ I see CI tracks for clojure
(builds and tests) and clojurescript-release
(just builds I think), but none for just clojurescript
with test results
https://github.com/clojure/clojurescript/ contains travis and appveyor information, but as far as I can tell those aren't being ran
at least https://travis-ci.org/clojure/clojurescript says the repository isn't active
there was still an update to travis config in https://clojure.atlassian.net/browse/CLJS-3088, that went in 25 days ago as https://github.com/clojure/clojurescript/commit/c4a5120294aa83b8f69d35ce10e5d03c951d99ea and is the last commit in the repo
but I can't find the travis results for it..
@mfikes do you know where travis results are shown?
ah it seems it's in your fork only... https://travis-ci.org/mfikes/clojurescript
ok that shows what I was looking for...
the e2e test for https://clojure.atlassian.net/browse/CLJS-2992 is actually in the travis config: https://github.com/clojure/clojurescript/blob/c4a5120294aa83b8f69d35ce10e5d03c951d99ea/.travis.yml#L24-L46
but the travis run, although shown as passing, has failures
- Error: Can't resolve './calculator' in '/home/travis/build/mfikes/clojurescript'
at https://travis-ci.org/mfikes/clojurescript/builds/540710982#L2084
- Error: Cannot find module '@cljs-oss/module-deps'
at https://travis-ci.org/mfikes/clojurescript/builds/540710982#L2931
- ReferenceError: test is not defined
at https://travis-ci.org/mfikes/clojurescript/builds/540710982#L3441
I also see a lot of warnings there but don't have the sensitivity to understand which ones are serious
I'll add the CI failures info to CLJS-3088
are you looking to improve the CI setup for clojure/clojurescript? I'm very familiar with the current OSS providers, and think azure pipelines would be a good choice (generous free tier, linux, osx, and best-in-class windows offer)
@souenzzo I don't think that's quite the same. If I understand that repository correctly, it is testing several community projects against CLJS builds. But that is different than the tests in the CLJS repository proper. Ideally, failures in the CLJS CI test suite would be addressed before generating a build for cljs-oss/canary.
@filipematossilva usually what look like failures in output from tests are not really failures, but like you I am new to cljs-dev and wondered about these.
@lee I agree with you that often test logging isn't very obvious, and that tests that simulate failures will look like failed tests
but I don't think that's the case here
the travis config includes a few of these tests
- jsc builds/out-adv/core-advanced-test.js | tee test-out.txt
- grep '0 failures, 0 errors.' test-out.txt
- ./spidermoney/js -f builds/out-adv/core-advanced-test.js | tee test-out.txt
- grep '0 failures, 0 errors.' test-out.txt
- ./ChakraCoreFiles/bin/ch builds/out-adv/core-advanced-test.js | tee test-out.txt
- grep '0 failures, 0 errors.' test-out.txt
they follow the same pattern: run a js file through a JS engine, pipe to test-out.txt, grep the output
but consider what happens when the execution fails
the snippet above shows that a js script whose execution fails exits as 1 when ran through an engine, but exits as 0 when ran through an engine and piped to test-out.txt
so if the js execution fails, the exit code is still 0, and the grep still succeeds
actually sorry, I am wrong: the grep does not succeed in that case
it's just the js script execution that exits as 0
tested and I was wrong on this too, the script might show an error but does not exit with 1
root@5c3a96cb627f:/src# ./ChakraCoreFiles/bin/ch builds/out-adv/core-advanced-test.js
Testing cljs.apply-test
Testing cljs.primitives-test
Testing cljs.destructuring-test
Testing cljs.new-new-test
Testing cljs.printing-test
Testing cljs.seqs-test
Testing cljs.collections-test
Testing cljs.hashing-test
Testing cljs.core-test
{:result true, :num-tests 10, :seed 1559669193687, :time-elapsed-ms 26, :test-var "boolean-test"}
Testing cljs.reader-test
Testing clojure.string-test
{:result true, :num-tests 100, :seed 1559669196098, :time-elapsed-ms 75, :test-var "test-cljs-2300"}
Testing clojure.data-test
Testing clojure.datafy-test
Testing clojure.edn-test
Testing clojure.walk-test
Testing cljs.letfn-test
Testing cljs.reducers-test
Testing cljs.binding-test
Testing cljs.macro-test
Testing cljs.top-level
Testing cljs.keyword-test
Testing cljs.ns-test
Testing cljs.ns-test.foo
Testing foo.ns-shadow-test
Testing cljs.import-test
Testing cljs.pprint
Testing cljs.spec-test
Testing cljs.spec.test-test
Testing cljs.clojure-alias-test
Testing cljs.hash-map-test
Testing cljs.map-entry-test
Testing cljs.metadata-test
Testing cljs.npm-deps-test
Testing cljs.pprint-test
Testing cljs.predicates-test
Testing cljs.syntax-quote-test
Testing cljs.tagged-literals-test
Testing cljs.test-test
Testing static.core-test
Testing cljs.recur-test
Testing cljs.array-access-test
Testing cljs.inference-test
Testing cljs.walk-test
Testing cljs.extend-to-native-test
Ran 472 tests containing 19651 assertions.
0 failures, 0 errors.
ReferenceError: 'test' is not defined
at Anonymous function (/src/builds/out-adv/core-advanced-test.js:7074:482)
at Global code (/src/builds/out-adv/core-advanced-test.js:14:3)
root@5c3a96cb627f:/src# echo $?
0
I agree with you, these aren't ignored failures, the commands never exit 1 on the CI
cool. I have not looked at azure pipelines at all. I guess the big advantage over other offerings is windows support.
you can get windows support these providers currently: appveyor, travis (limited preview), circleci (limited preview), codefresh (fairly new), azure pipelines
they are usually quite expensive though
since azure gives you a bunch of parallel builds for free, that helps
hmmm no cache or docker support on azure
also no ssh support, which only circleci has but is very good to debug problems in-situ
Is compiler expected to respect the order of required ns-es in :require
form? I've stumbled upon the issue because the relative order is not respected: https://github.com/metametadata/cljs-require-order-bug.
there is an open issue about that. forgot the number and the JIRA search is horrible and doesn't find it
awesome, thank you!
(initially I tried to google if there's a similar issue but found nothing)