Skip to content

byte-streams / manifold incompatibility. #569

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
dspearson opened this issue Aug 6, 2021 · 7 comments · Fixed by #571
Closed

byte-streams / manifold incompatibility. #569

dspearson opened this issue Aug 6, 2021 · 7 comments · Fixed by #571

Comments

@dspearson
Copy link
Contributor

The latest alpha releases of aleph depend on alpha-release manifold, which have a new 4-arity manifold.executor/thread-factory. However, the documentation examples use byte-streams/to-string and byte-streams depends on a manifold version that does not have the 4-arity function available. This makes the examples fail.

When Zach was the maintainer of all three projects it was probably easier to keep an eye on these inter-dependencies, since he was the author, but now that it's under clj-commons stewardship it's more easily overlooked. I am unsure whether to bother making a pull request for byte-streams, bumping the manifold version, before a new non-alpha manifold release is cut. Seems better to keep them on stable point releases. So, I'm not sure what to suggest, but as of the latest version the docs don't reflect a current working state.

Example:

access-packages.core> (-> @(http/get "https://google.com/")
                          :body
                          bs/to-string
                          prn)
Execution error (ArityException) at aleph.netty/enumerating-thread-factory (netty.clj:797).
Wrong number of args (4) passed to: manifold.executor/thread-factory
@KingMob
Copy link
Collaborator

KingMob commented Aug 11, 2021

@dspearson Thanks for bringing this up. We inherited the alpha status of these libs from Zach, but you're right that since the maintainers are no longer the same person, the discrepancy might have gotten overlooked when we got around to resolving it all.

I know that, for Manifold at least, a few people are using the alpha versions for badly-needed bugfixes. I'd planned to cut a 0.1.9 point release in the past month, but life intervened. I'll be sure to bump up byte-streams's version when I do.

@KingMob
Copy link
Collaborator

KingMob commented Sep 6, 2021

@dspearson Manifold 0.1.9 has just been released. If you want to submit a PR for byte-streams to fix this, that'd be appreciated. Otherwise, I'll try to get to it when I get a moment.

@KingMob
Copy link
Collaborator

KingMob commented Sep 26, 2021

@dspearson I'm working with Erik to cut a new stable release for byte-streams. It should be out soon.

I went to revisit this, the original issue, but I tested it in the REPL without updating the byte-streams dependency, and at least on the latest master, I have no problems executing the README examples. It's possible something weird has happened, but can you double-check on your end?

@dspearson
Copy link
Contributor Author

The issue I saw was with:

  :dependencies [[org.clojure/clojure "1.10.3"]
                 [byte-streams "0.2.5-alpha2"]
                 [aleph "0.4.7-alpha7"]]

It's likely that order of dependencies matter.

@dspearson
Copy link
Contributor Author

Actually,I can reproduce it with the following:

  :dependencies [[org.clojure/clojure "1.10.3"]
                 [org.clj-commons/byte-streams "0.2.8"]
                 [aleph "0.4.7-alpha7"]]
> @(http/get "https://google.com/")
Execution error (ArityException) at aleph.netty/enumerating-thread-factory (netty.clj:797).
Wrong number of args (4) passed to: manifold.executor/thread-factory

Just having that order of dependencies results in failure. Switching aleph and byte-streams around results in success.

Having the manifold versions match in both libraries is likely a successful mitigation. I'll make a pull request for aleph.

@mach-kernel
Copy link

Same issue with these versions:

  :dependencies [[org.clojure/clojure "1.11.1"]
                 [org.clj-commons/byte-streams "0.3.1"]
                 [aleph "0.6.0"]]
Execution error (ArityException) at aleph.netty/enumerating-thread-factory (netty.clj:1027).
Wrong number of args (5) passed to: manifold.executor/thread-factory

@KingMob
Copy link
Collaborator

KingMob commented Dec 13, 2022

@mach-kernel Looks like the manifold versions are out of sync between byte-streams and Aleph again.

For now, if you're trying to use the latest byte-streams, ysk Aleph 0.6.0 also uses it, so you can remove byte-streams from your explicit deps, and it should all work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants