Closed tanzoniteblack closed 1 year ago
Sorry for the slow response here, @KingMob . I've been thinking this over and I'm not sure that the complications of implementation make it worth supporting both. I think having a minimum version pinned as our provided scope, and warning in the release that if you upgrade to this version there's a particular minimum version you're expected to have of core.async. At least, my interpretation of provided dependencies has always been, "We tested with this particular version of the library. Caveat emptor if you choose to use a different version."
Let me know your thoughts?
Hmmm. I guess my problem with "Caveat emptor if you choose to use a different version" is that usually means "We haven't tested with your version, and we can't predict what will happen". But in this case, we know it will break, and we know how to fix it. It feels like we're punting a problem to the user. OTOH, a quick Github search doesn't show anyone using it, so... ¯\_(ツ)_/¯
I think, to be safe, I'd still rather support both namespaces.
@KingMob , I've validated locally that the change I made works with both the current & older version of core.async, but I'm unsure the best way to set up circleci to actually test both
Great work!
To test both, maybe add two extra profiles in project.clj? One :old-core-async
and one :new-core-async
with the right deps. Then run both like:
lein with-profiles +old-core-async test :only whatever.the.go-off-tests.namespace.is
lein with-profiles +new-core-async test :only whatever.the.go-off-tests.namespace.is
I think that would work
@KingMob , I added a new profile explicitly for the old core.async version and have the default deps list using the newer version, rather than adding profiles for both. Circleci config has also been updated to run the go-off tests. I've verified locally that the different profiles are correctly using the right core.async versions.
Fixes #229
Some of the functions that we were relying on to hijack the go state machine compilation changed namespaces. This updates the code to reference where they now live.
Addresses https://github.com/clj-commons/manifold/issues/229