{"action":"created","issue":{"url":"https://api.github.com/repos/reactive-streams/reactive-streams/issues/202","labels_url":"https://api.github.com/repos/reactive-streams/reactive-streams/issues/202/labels{/name}","comments_url":"https://api.github.com/repos/reactive-streams/reactive-streams/issues/202/comments","events_url":"https://api.github.com/repos/reactive-streams/reactive-streams/issues/202/events","html_url":"https://github.com/reactive-streams/reactive-streams/issues/202","id":54548722,"number":202,"title":"cover the allowed call sequences on Subscriber in a spec rule","user":{"login":"rkuhn","id":470469,"avatar_url":"https://avatars.githubusercontent.com/u/470469?v=3","gravatar_id":"","url":"https://api.github.com/users/rkuhn","html_url":"https://github.com/rkuhn","followers_url":"https://api.github.com/users/rkuhn/followers","following_url":"https://api.github.com/users/rkuhn/following{/other_user}","gists_url":"https://api.github.com/users/rkuhn/gists{/gist_id}","starred_url":"https://api.github.com/users/rkuhn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rkuhn/subscriptions","organizations_url":"https://api.github.com/users/rkuhn/orgs","repos_url":"https://api.github.com/users/rkuhn/repos","events_url":"https://api.github.com/users/rkuhn/events{/privacy}","received_events_url":"https://api.github.com/users/rkuhn/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/reactive-streams/reactive-streams/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/reactive-streams/reactive-streams/milestones/6","labels_url":"https://api.github.com/repos/reactive-streams/reactive-streams/milestones/6/labels","id":916278,"number":6,"title":"1.0.0.RC2","description":"","creator":{"login":"viktorklang","id":10871,"avatar_url":"https://avatars.githubusercontent.com/u/10871?v=3","gravatar_id":"","url":"https://api.github.com/users/viktorklang","html_url":"https://github.com/viktorklang","followers_url":"https://api.github.com/users/viktorklang/followers","following_url":"https://api.github.com/users/viktorklang/following{/other_user}","gists_url":"https://api.github.com/users/viktorklang/gists{/gist_id}","starred_url":"https://api.github.com/users/viktorklang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/viktorklang/subscriptions","organizations_url":"https://api.github.com/users/viktorklang/orgs","repos_url":"https://api.github.com/users/viktorklang/repos","events_url":"https://api.github.com/users/viktorklang/events{/privacy}","received_events_url":"https://api.github.com/users/viktorklang/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":10,"state":"open","created_at":"2014-12-28T22:04:04Z","updated_at":"2015-01-22T14:07:21Z","due_on":null,"closed_at":null},"comments":40,"created_at":"2015-01-16T07:51:21Z","updated_at":"2015-02-06T13:05:11Z","closed_at":null,"body":"Currently it is only implicit that legal sequences start with `onError` or `onSubscribe` and end with `onComplete` or `onError` (or not at all), and it is not regulated within the spec rules that `onComplete` is illegal before `onSubscribe`.\r\n\r\nI see two ways to approach this:\r\n\r\n* we leave the protocol sequence definition outside of the spec and add the missing rule about `onComplete`\r\n* we make the sequence definition explicit within the rules\r\n\r\nThe second approach would lead to duplication, since legal sequence grammars are almost perfectly constrained already, so I am leaning towards adding a new rule that orders `onComplete` and `onSubscribe`."},"comment":{"url":"https://api.github.com/repos/reactive-streams/reactive-streams/issues/comments/73233357","html_url":"https://github.com/reactive-streams/reactive-streams/issues/202#issuecomment-73233357","issue_url":"https://api.github.com/repos/reactive-streams/reactive-streams/issues/202","id":73233357,"user":{"login":"viktorklang","id":10871,"avatar_url":"https://avatars.githubusercontent.com/u/10871?v=3","gravatar_id":"","url":"https://api.github.com/users/viktorklang","html_url":"https://github.com/viktorklang","followers_url":"https://api.github.com/users/viktorklang/followers","following_url":"https://api.github.com/users/viktorklang/following{/other_user}","gists_url":"https://api.github.com/users/viktorklang/gists{/gist_id}","starred_url":"https://api.github.com/users/viktorklang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/viktorklang/subscriptions","organizations_url":"https://api.github.com/users/viktorklang/orgs","repos_url":"https://api.github.com/users/viktorklang/repos","events_url":"https://api.github.com/users/viktorklang/events{/privacy}","received_events_url":"https://api.github.com/users/viktorklang/received_events","type":"User","site_admin":false},"created_at":"2015-02-06T13:05:11Z","updated_at":"2015-02-06T13:05:11Z","body":"@drewhk I think that resonates well with my PoV. So you're in favor of: `(onSubscribe{1} ~ onNext* ~ (onError | onComplete)?) | (onError | onComplete){1}`?"}}