Skip to content

Commit 11b3358

Browse files
committed
WIP of release notes
1 parent c3b2c6d commit 11b3358

File tree

1 file changed

+120
-1
lines changed

1 file changed

+120
-1
lines changed

RELEASE-NOTES.md

+120-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,122 @@
11
# Release notes for Reactive Streams
22

3-
Changes will be listed below after version 1.0.0 is released.
3+
---
4+
5+
# Version 1.0.1 released on YYYY-MM-DD
6+
7+
## Highlights:
8+
9+
- Added Glossary to Specification
10+
- Improved TCK.
11+
- Clarified rules with Intent-sections
12+
- Better documentation.
13+
- No breaking semantical changes.
14+
- No new methods.
15+
16+
## Spec alterations
17+
18+
## Publisher Rule 1
19+
20+
**1.0.0:** The total number of onNext signals sent by a Publisher to a Subscriber MUST be less than or equal to the total number of elements requested by that Subscriber´s Subscription at all times.
21+
22+
**1.0.1:** The total number of onNext´s signalled by a Publisher to a Subscriber MUST be less than or equal to the total number of elements requested by that Subscriber´s Subscription at all times.
23+
24+
**Comment: Minor spelling update.**
25+
26+
## Publisher Rule 2
27+
28+
**1.0.0:** A Publisher MAY signal less onNext than requested and terminate the Subscription by calling onComplete or onError.
29+
30+
**1.0.1:** A Publisher MAY signal fewer onNext than requested and terminate the Subscription by calling onComplete or onError.
31+
32+
**Comment: Minor spelling update.**
33+
34+
## Publisher Rule 3
35+
36+
**1.0.0:** onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled sequentially (no concurrent notifications).
37+
38+
**1.0.1:** onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled in a thread-safe manner—and if performed by multiple threads—use external synchronization.
39+
40+
**Comment: Reworded the part about sequential signal and its implications, for clarity.**
41+
42+
## Subscriber Rule 6
43+
44+
**1.0.0:** A Subscriber MUST call Subscription.cancel() if it is no longer valid to the Publisher without the Publisher having signaled onError or onComplete.
45+
46+
**1.0.1:** A Subscriber MUST call Subscription.cancel() if the Subscription is no longer needed.
47+
48+
**Comment: Rule could be reworded since it now has an intent section describing desired effect.**
49+
50+
## Subscriber Rule 11
51+
52+
**1.0.0:** A Subscriber MUST make sure that all calls on its onXXX methods happen-before [1] the processing of the respective signals. I.e. the Subscriber must take care of properly publishing the signal to its processing logic.
53+
54+
**1.0.1:** A Subscriber MUST make sure that all calls on its signal methods happen-before the processing of the respective signals. I.e. the Subscriber must take care of properly publishing the signal to its processing logic.
55+
56+
**Comment: Rule slightly reworded to use the glossary for `signal` instead of the more *ad-hoc* name "onXXX methods". Footnote was reworked into the Intent-section of the rule.**
57+
58+
## Subscription Rule 1
59+
60+
**1.0.0:** Subscription.request and Subscription.cancel MUST only be called inside of its Subscriber context. A Subscription represents the unique relationship between a Subscriber and a Publisher [see 2.12].
61+
62+
**1.0.1:** Subscription.request and Subscription.cancel MUST only be called inside of its Subscriber context.
63+
64+
**Comment: Second part of rule moved into the Intent-section of the rule.**
65+
66+
## Subscription Rule 3
67+
68+
**1.0.0:** Subscription.request MUST place an upper bound on possible synchronous recursion between Publisher and Subscriber[1].
69+
70+
**1.0.1:** Subscription.request MUST place an upper bound on possible synchronous recursion between Publisher and Subscriber.
71+
72+
**Comment: Footnote reworked into the Intent-section of the rule.**
73+
74+
## Subscription Rule 4
75+
76+
**1.0.0:** Subscription.request SHOULD respect the responsivity of its caller by returning in a timely manner[2].
77+
78+
**1.0.1:** Subscription.request SHOULD respect the responsivity of its caller by returning in a timely manner.
79+
80+
**Comment: Footnote reworked into the Intent-section of the rule.**
81+
82+
## Subscription Rule 5
83+
84+
**1.0.0:** Subscription.cancel MUST respect the responsivity of its caller by returning in a timely manner[2], MUST be idempotent and MUST be thread-safe.
85+
86+
**1.0.1:** Subscription.cancel MUST respect the responsivity of its caller by returning in a timely manner, MUST be idempotent and MUST be thread-safe.
87+
88+
**Comment: Footnote reworked into the Intent-section of the rule.**
89+
90+
## Subscription Rule 13
91+
92+
**1.0.0:** While the Subscription is not cancelled, Subscription.cancel() MUST request the Publisher to eventually drop any references to the corresponding subscriber. Re-subscribing with the same Subscriber object is discouraged [see 2.12], but this specification does not mandate that it is disallowed since that would mean having to store previously cancelled subscriptions indefinitely.
93+
94+
**1.0.1:** While the Subscription is not cancelled, Subscription.cancel() MUST request the Publisher to eventually drop any references to the corresponding subscriber.
95+
96+
**Comment: Second part of rule reworked into the Intent-section of the rule.**
97+
98+
## Subscription Rule 15
99+
100+
**1.0.0:** Calling Subscription.cancel MUST return normally. The only legal way to signal failure to a Subscriber is via the onError method.
101+
102+
**1.0.1:** Calling Subscription.cancel MUST return normally.
103+
104+
**Comment: Replaced second part of rule with a definition for `return normally` in the glossary.**
105+
106+
## Subscription Rule 16
107+
108+
**1.0.0:** Calling Subscription.request MUST return normally. The only legal way to signal failure to a Subscriber is via the onError method.
109+
110+
**1.0.1:** Calling Subscription.request MUST return normally.
111+
112+
**Comment: Replaced second part of rule with a definition for `return normally` in the glossary.**
113+
114+
## Subscription Rule 17
115+
116+
**1.0.0:** A Subscription MUST support an unbounded number of calls to request and MUST support a demand (sum requested - sum delivered) up to 2^63-1 (java.lang.Long.MAX_VALUE). A demand equal or greater than 2^63-1 (java.lang.Long.MAX_VALUE) MAY be considered by the Publisher as “effectively unbounded”[3].
117+
118+
**1.0.1:** A Subscription MUST support an unbounded number of calls to request and MUST support a demand up to 2^63-1 (java.lang.Long.MAX_VALUE). A demand equal or greater than 2^63-1 (java.lang.Long.MAX_VALUE) MAY be considered by the Publisher as “effectively unbounded”.
119+
120+
**Comment: Rule simplified by defining `demand` in the glossary, and footnote was reworked into the Intent-section of the rule.**
121+
122+
---

0 commit comments

Comments
 (0)