Hydrogen: 2.10 breaks inline output between jupyterlab and atom.

Created on 26 Jun 2019  路  6Comments  路  Source: nteract/hydrogen

Configuration
windows 7 and ubuntu 19.04 atom clients connecting to jupyterlab server on lan.

Description:

  • immediately after updating to 2.10, inline output from the kernel to atom client began malfunctioning.
  • previous behavior: when program contains logger output, output was displayed in the client in sync with program execution in a streaming fashion.
  • after upgrading to 2.10 from 2.9, ~3 or so lines of logger output would be returned to atom's inline window (very small, window, btw. not sure if relevant). the kernel would show as busy the entire time the program was running (expected). remainder of logger output generated during execution would be presented only upon completion/termination of the program.

Steps to Reproduce:

  1. write something which contains/generates a decent amount of python logger output (think debug level)
  2. run all on the python script from atom.
  3. make sad face.

Versions:
tested from windows 7 pro and ubuntu 19.04 desktop. same results.
atom 1.38.2

Plugins:
plugins ruled out as contributing factor as expected behavior resumed after downgrading back to 2.9 on both windows and ubuntu clients.

Logs:
checked syslog as well as interactive debugger. nothing glaring. don't think this is a bug, but a poorly designed feature between 2.9 and 2.10

just ballpark, but probably these guys: #1647, #1569, and possibly modifications to @nteract/outputs.

feels like the soft wrap was hard coded or something. i don't have it enabled under hydrogen, but my lines were absolutely getting wrapped under 2.10, and i was perfectly happy with how things were configured and working under 2.9. If changes are going to be made to wrapping and inline output, they should without a doubt be configurable via Hydrogen package settings via the UI.

if i can provide any additional info, let me know.

bug

All 6 comments

If you have a screenshot that could be very helpful. If you have a snippet to reproduce this would also help.

Is what you are saying the opposite of #1569, that you don't want your output to wrap?

I thought at first you might just not realize how disrespectful you sound in your comments. After seeing what you wrote on our slack over what seems to be a minor inconvenience that you yourself have resolved by pinning a version that you prefer.

Please read our code of conduct and consider this a warning if you want to continue being a part of this community of volunteers.

Try putting this in your atom stylesheet.

~/.atom/styles.less:

.hydrogen {
  code,
  pre {
    white-space: pre;
  }
}

This would override the changes in #1594. If that's not it, we probably need a screenshot to help debug this.

It's definitely not #1647, but most likely because of the update to outputs. @BenRussert not sure how our new container decides to update itself, but we made need to allow updating on a props change. Before that though we need to know if the output store is being properly updated still

Ohh yeah, from the gifs it looks like it's related to stream text outputs. I have a couple guesses off the top of my head.

updating on a props change

React should work this way by default. Mobx sometimes prevents updates if we do something wrong with observables. The first thing I would try is making Display an observer since we are passing in observable outputs, I assumed this was :ok: since we just convert it toJS then pass it to the output components. I'd also try converting outputs toJS before passing to our Display component (and not making Display an observer.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Mungoid picture Mungoid  路  4Comments

olegantonyan picture olegantonyan  路  3Comments

onyxfish picture onyxfish  路  4Comments

homocomputeris picture homocomputeris  路  4Comments

neurotronix picture neurotronix  路  4Comments