Skip to content
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

zmq for everyone #1

Closed
rgbkrk opened this issue Dec 24, 2015 · 20 comments
Closed

zmq for everyone #1

rgbkrk opened this issue Dec 24, 2015 · 20 comments
Assignees

Comments

@rgbkrk
Copy link
Member

rgbkrk commented Dec 24, 2015

In order to connect to any Jupyter kernel, they rely on zmq for reliable interprocess communication. The node bindings, which are quite stable (and awesome), are a bit persnickety to install on some platforms (as with anything relying on native bindings to C). In order for a developer to build, e.g., an Electron app that relies on zmq, they tend to need these items:

  • zmq headers
  • (optionally) libsodium for encryption TweetNACL is built in now!
  • C compiler
  • pkg-config
  • for every version of Electron and node that come out, these need to be rebuilt
  • rebuild for each version

Releasing multiplatform precompiled binaries for node modules is completely doable, though care has to be taken to allow users to use their local version of libzmq + libsodium as well.

If you dig through issues on zmq, you'll find quite a few about installation issues. Currently there are bundled Windows binaries in the repository for libzmq (for linking against).

@max-mapper
Copy link

I recommend https://github.com/mafintosh/prebuild for the binaries part, it even has a feature to upload the binaries to GitHub Releases for you

@rgbkrk
Copy link
Member Author

rgbkrk commented Dec 27, 2015

Awesome. Do you think I should just create a zmq-prebuilt for now, similar to electron-prebuilt?

@okdistribute
Copy link
Contributor

Seems like a good idea

@rgbkrk
Copy link
Member Author

rgbkrk commented Dec 28, 2015

Seems like I'll need Electron support in prebuild: prebuild/prebuild#61

For now I've submitted a PR to zmq relying on node-pre-gyp (JustinTulloss/zeromq.node#486), now that node-pre-gyp supports Electron directly.

@captainsafia
Copy link
Member

I think this can be closed now?

@rgbkrk
Copy link
Member Author

rgbkrk commented Feb 27, 2016

Now that zmq-prebuilt exists (though not finished), yes!

@rgbkrk rgbkrk closed this as completed Feb 27, 2016
@rgbkrk rgbkrk reopened this May 17, 2016
@rgbkrk
Copy link
Member Author

rgbkrk commented May 17, 2016

Re-opening until we fully resolve this for nteract/nteract. We made a release with a built binary for some platforms, yet it requires that you still have zmq headers installed.

@jdfreder
Copy link
Contributor

😲

captainsafia pushed a commit that referenced this issue Aug 30, 2016
Fix up the toolbar and cell tests.
@rgbkrk
Copy link
Member Author

rgbkrk commented Sep 21, 2016

Current pre-built status:

image

@lgeiger
Copy link
Member

lgeiger commented Oct 4, 2016

I tested zmq on windows with nteract and can manually reproduce this error.

It turns out zmq has to be built with electron headers on windows even for electron < 1.1.3 to make it work.

@rgbkrk
Copy link
Member Author

rgbkrk commented Oct 4, 2016

and so it is, we must trudge these waters of electron builds for the future of all of us

@lgeiger
Copy link
Member

lgeiger commented Oct 5, 2016

Status on windows:
Still no prebuilts for electron but working if you build from source: #903

@rgbkrk
Copy link
Member Author

rgbkrk commented Oct 7, 2016

@lgeiger has totally demolished this issue - from incredible cross-platform work in zmq-prebuilt, to creating zmq-static, and upstream fixes in zeromq.node.

We even have Windows builds now. 😄 😱

Closing this issue with much appreciation.

@rgbkrk rgbkrk closed this as completed Oct 7, 2016
@lgeiger
Copy link
Member

lgeiger commented Oct 7, 2016

@rgbkrk Since the fallback is now working in zmq-prebuilt, what should we do with zmq-static?
I think zmq-prebuilt is now superior in every way.

I didn't expect to get it working at the time of creating zmq-static 😄 .

@rgbkrk
Copy link
Member Author

rgbkrk commented Oct 7, 2016

Leave a deprecation notice in zmq-static, pointing to zmq-prebuilt. You apparently stirred a little bit of buzz by creating zmq-static, and if people found that over zmq-prebuilt we should at least do the service of redirecting it.

@lgeiger
Copy link
Member

lgeiger commented Oct 7, 2016

Great to see some people checking it out! I'll leave a notice.

@rgbkrk
Copy link
Member Author

rgbkrk commented Oct 7, 2016

One way to "deprecate" while being backwards compatible is to make zmq-static's index.js be:

module.exports = require('zmq-prebuilt')

(while also noting they should use zmq-prebuilt instead)

@lgeiger
Copy link
Member

lgeiger commented Oct 7, 2016

I think we can leave it as is for people who really want to keep using VS 2013.

@rgbkrk
Copy link
Member Author

rgbkrk commented Oct 7, 2016

Ah, ok, that works.

rgbkrk pushed a commit that referenced this issue Oct 13, 2017
mpacer pushed a commit to mpacer/nteract that referenced this issue Dec 19, 2017
use es6 imports (not commonJS); styled-jsx plays better with them
@lock
Copy link

lock bot commented Apr 3, 2018

This thread has been automatically locked because it has not had recent activity. Please open a new issue for related bugs and link to relevant comments in this thread.

@lock lock bot locked and limited conversation to collaborators Apr 3, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants