{"action":"created","issue":{"url":"https://api.github.com/repos/jupyter/jupyter_client/issues/179","repository_url":"https://api.github.com/repos/jupyter/jupyter_client","labels_url":"https://api.github.com/repos/jupyter/jupyter_client/issues/179/labels{/name}","comments_url":"https://api.github.com/repos/jupyter/jupyter_client/issues/179/comments","events_url":"https://api.github.com/repos/jupyter/jupyter_client/issues/179/events","html_url":"https://github.com/jupyter/jupyter_client/issues/179","id":168472492,"number":179,"title":"Messaging Spec does not match IPython behaviour","user":{"login":"gibiansky","id":1865411,"avatar_url":"https://avatars.githubusercontent.com/u/1865411?v=3","gravatar_id":"","url":"https://api.github.com/users/gibiansky","html_url":"https://github.com/gibiansky","followers_url":"https://api.github.com/users/gibiansky/followers","following_url":"https://api.github.com/users/gibiansky/following{/other_user}","gists_url":"https://api.github.com/users/gibiansky/gists{/gist_id}","starred_url":"https://api.github.com/users/gibiansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gibiansky/subscriptions","organizations_url":"https://api.github.com/users/gibiansky/orgs","repos_url":"https://api.github.com/users/gibiansky/repos","events_url":"https://api.github.com/users/gibiansky/events{/privacy}","received_events_url":"https://api.github.com/users/gibiansky/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-07-30T15:26:11Z","updated_at":"2016-08-01T09:00:53Z","closed_at":null,"body":"The messaging spec does not match the IPython behaviour in a fairly serious way. According to the message spec...\r\n\r\n![image](https://cloud.githubusercontent.com/assets/1865411/17271357/3daa32ba-562e-11e6-84da-cdec12654cff.png)\r\n\r\nBut IPython sends `shell`, `iopub`, `stdin`, and `hb`, *and* includes `control`. \r\n\r\nHere is why:\r\n\r\n1. Dictionary is created [here](https://github.com/ipython/ipykernel/blob/6035f9eaf561383ae7b78b9125dec235ac8c7810/ipykernel/kernelapp.py#L296) with those keys.\r\n2.  Those ports are stored using `record_ports` [here](https://github.com/ipython/ipykernel/blob/6035f9eaf561383ae7b78b9125dec235ac8c7810/ipykernel/kernelapp.py#L366)\r\n3. `record_ports` is a method of the kernel that just stores the ports in a variable `_recorded_ports` [here](https://github.com/ipython/ipykernel/blob/3ead7c361f7a93ee51d0e09c5128d09374641be3/ipykernel/kernelbase.py#L294)\r\n4. `connect_request` uses `_recorded_ports` and just copies it into the message output [here](https://github.com/ipython/ipykernel/blob/3ead7c361f7a93ee51d0e09c5128d09374641be3/ipykernel/kernelbase.py#L472)\r\n\r\nI see no evidence that `jupyter_client` even issues `connect_request` messages (searched for \"connect_request\" in `jupyter_client` repo and found nothing but messaging RST).\r\n\r\nI would change the messaging spec with the new keys, but that *would* technically be a backwards incompatible change. Regardless, please let me know what my client library should do and what keys it should expect (or whether it should simply accept both)."},"comment":{"url":"https://api.github.com/repos/jupyter/jupyter_client/issues/comments/236526583","html_url":"https://github.com/jupyter/jupyter_client/issues/179#issuecomment-236526583","issue_url":"https://api.github.com/repos/jupyter/jupyter_client/issues/179","id":236526583,"user":{"login":"minrk","id":151929,"avatar_url":"https://avatars.githubusercontent.com/u/151929?v=3","gravatar_id":"","url":"https://api.github.com/users/minrk","html_url":"https://github.com/minrk","followers_url":"https://api.github.com/users/minrk/followers","following_url":"https://api.github.com/users/minrk/following{/other_user}","gists_url":"https://api.github.com/users/minrk/gists{/gist_id}","starred_url":"https://api.github.com/users/minrk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/minrk/subscriptions","organizations_url":"https://api.github.com/users/minrk/orgs","repos_url":"https://api.github.com/users/minrk/repos","events_url":"https://api.github.com/users/minrk/events{/privacy}","received_events_url":"https://api.github.com/users/minrk/received_events","type":"User","site_admin":false},"created_at":"2016-08-01T09:00:53Z","updated_at":"2016-08-01T09:00:53Z","body":"connect_reply was originally added to the spec and docs [in 2010](https://github.com/ipython/ipython/commit/e332f01ad50c192602be4382660822c970fd6467), so it's been covered for at least six years, but I'm not aware of anyone actually using it. Given that, I'm OK deprecating it.\r\n\r\nEven given that, I don't think it's a backward-incompatible change to say that the reply should contain all the ports. It's just a documentation bug."}}
{"actor":{"display_login":"minrk"}}