Fork me on GitHub
#cljs-dev
<
2021-10-15
>
mfikes02:10:14

cljs-bean and coal-mine pass with the CLJS-3322 branch (`50af5dc`)

dnolen13:10:39

I was expecting more problems because again we always load goog.module in the new way and don't rely on global refs

dnolen13:10:05

I suspect there will inevitably be a few missed edge cases - but over all good news

dnolen16:10:10

ok merged - now would be good time test if you have time

darwin16:10:30

hi, original Canary author here, it is prepared to support more “remote” test runners other than travis. It would require some work to write support for them. Travis support is implemented here[1], it shells out to raw curl to talk to their API. [1] https://github.com/cljs-oss/canary/blob/master/runner/src/canary/runner/travis.clj

darwin16:10:35

I don’t have bandwidth to write it myself, but I could at least offer some help in guiding someone and review the code. I think adding support for Github Actions should be enough to get it running agian with current set of projects.

dnolen16:10:14

@darwin ah so switching to GH Actions instead of Travis?

darwin16:10:30

yes, I would prefer it. CircleCI is another option but I’m not familiar with them and they could stop/limit supporting free OSS plans like travis did.

darwin16:10:31

another option is to run the tests in canary’s GH Action - currently canary itself runs as GH Action (it used to run on Travis)

darwin16:10:26

original idea was to trigger test builds on projects “remotely” via API and wait for results, so that project maintainers maintain their test systems, but @U04VDQDDY ended up wrapping most projects in chkup and maintaining them himself

darwin16:10:38

canary can run shell scripts instead of triggering builds via APIs, but then we would have to maintain the scripts running the tests for such projects

dnolen16:10:16

is it possible to run other repos tests? doesn't that require coordination of some kind?

darwin16:10:01

people had to submit their travis tokens to canary, so that canary can trigger their builds remotely

darwin16:10:14

and also people had to use CANARY_CLOJURESCRIPT_VERSION in their deps, to consume tested cljs compiler: https://github.com/binaryage/cljs-devtools/commit/45c1df1e0de53c9d320963b296bd7a741056599c

dnolen16:10:23

what I mean is will switching this to GH actions also require collecting tokens?

darwin16:10:38

yes, if we wanted to trigger builds/tests on other people’s repos travis allowed storing encrypted tokens, so that wasn’t really big issue

darwin16:10:26

not sure about GH Actions, but we could do it more dirty way and simply maintain the test scripts ourselves and run the tests inside canary’s GH Action

darwin17:10:19

you can write a shell script, which can do whatever it wants to test particular project

darwin17:10:47

this script runs inside canary’s GH action (actually inside docker there)

dnolen17:10:57

@darwin isn't another option to just clone the project, use clj to set the version and avoid all the token stuff?

dnolen17:10:15

then we maintain nothing other than the GH workflow entries

darwin17:10:43

ah, I see, you mean that we would create multiple GH workflow entries under the canary repo and trigger them from canary runner with a single token (our token)

darwin17:10:15

that is also an option

darwin17:10:26

that “shell script” option I was talking about is more direct, canary runner is running in GH workflow and it would run the tests directly in-process, by launching some shell scripts which would clone repos and run tests the way they are meant to be run from command-line

dnolen17:10:25

hrm, but there's a benefit w/ workflow per project since you get UI overview of the results

darwin17:10:56

or maybe you mean to ditch canary altogether and just use github workflows to do multi-test

darwin17:10:09

maybe it is possible, I’m not that familiar with GH Actions

darwin17:10:19

canary was designed before GH Actions were announced

dnolen17:10:37

I just mean that canary could basically just be a bunch of workflows

darwin17:10:11

yes, I see

darwin17:10:40

there would be just one special at the beginning which would compile the compiler for subsequent workflows to use it

dnolen17:10:44

I'm relatively familiar and this will be mostly copy-pasta - will try to find some time to think about it

dnolen17:10:52

might just make canary2 or something in cljs-oss org

darwin17:10:15

ok, give it a shot, I think that would be great

dnolen17:10:55

👍:skin-tone-4:

lread20:10:57

FWIW, I test tagged releases of known projects that use rewrite-clj against rewrite-clj master. Currently all runs sequentially, but works for my purposes https://github.com/clj-commons/rewrite-clj/blob/main/script/test_libs.clj