Skip to content

Commit f7458b9

Browse files
committed
WIP of release notes
1 parent c3b2c6d commit f7458b9

File tree

1 file changed

+133
-1
lines changed

1 file changed

+133
-1
lines changed

Diff for: RELEASE-NOTES.md

+133-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,135 @@
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+
After more than two years since 1.0.0, we are proud to announce the immediate availability of `Reactive Streams version 1.0.1`.
8+
9+
## Highlights:
10+
11+
- Specification
12+
+ A new [Glossary](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/README.md#glossary) section
13+
+ Description of the intent behind every single rule
14+
+ No breaking semantical changes
15+
- Interfaces
16+
+ No changes
17+
+ Improved Javadoc
18+
- TCK
19+
+ Improved test coverage
20+
+ Several limitations lifted
21+
+ Improved Javadoc
22+
23+
## Specification alterations
24+
25+
## Publisher Rule 1
26+
27+
**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.
28+
29+
**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.
30+
31+
**Comment: Minor spelling update.**
32+
33+
## Publisher Rule 2
34+
35+
**1.0.0:** A Publisher MAY signal less onNext than requested and terminate the Subscription by calling onComplete or onError.
36+
37+
**1.0.1:** A Publisher MAY signal fewer onNext than requested and terminate the Subscription by calling onComplete or onError.
38+
39+
**Comment: Minor spelling update.**
40+
41+
## Publisher Rule 3
42+
43+
**1.0.0:** onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled sequentially (no concurrent notifications).
44+
45+
**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.
46+
47+
**Comment: Reworded the part about sequential signal and its implications, for clarity.**
48+
49+
## Subscriber Rule 6
50+
51+
**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.
52+
53+
**1.0.1:** A Subscriber MUST call Subscription.cancel() if the Subscription is no longer needed.
54+
55+
**Comment: Rule could be reworded since it now has an intent section describing desired effect.**
56+
57+
## Subscriber Rule 11
58+
59+
**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.
60+
61+
**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.
62+
63+
**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.**
64+
65+
## Subscription Rule 1
66+
67+
**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].
68+
69+
**1.0.1:** Subscription.request and Subscription.cancel MUST only be called inside of its Subscriber context.
70+
71+
**Comment: Second part of rule moved into the Intent-section of the rule.**
72+
73+
## Subscription Rule 3
74+
75+
**1.0.0:** Subscription.request MUST place an upper bound on possible synchronous recursion between Publisher and Subscriber[1].
76+
77+
**1.0.1:** Subscription.request MUST place an upper bound on possible synchronous recursion between Publisher and Subscriber.
78+
79+
**Comment: Footnote reworked into the Intent-section of the rule.**
80+
81+
## Subscription Rule 4
82+
83+
**1.0.0:** Subscription.request SHOULD respect the responsivity of its caller by returning in a timely manner[2].
84+
85+
**1.0.1:** Subscription.request SHOULD respect the responsivity of its caller by returning in a timely manner.
86+
87+
**Comment: Footnote reworked into the Intent-section of the rule.**
88+
89+
## Subscription Rule 5
90+
91+
**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.
92+
93+
**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.
94+
95+
**Comment: Footnote reworked into the Intent-section of the rule.**
96+
97+
## Subscription Rule 13
98+
99+
**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.
100+
101+
**1.0.1:** While the Subscription is not cancelled, Subscription.cancel() MUST request the Publisher to eventually drop any references to the corresponding subscriber.
102+
103+
**Comment: Second part of rule reworked into the Intent-section of the rule.**
104+
105+
## Subscription Rule 15
106+
107+
**1.0.0:** Calling Subscription.cancel MUST return normally. The only legal way to signal failure to a Subscriber is via the onError method.
108+
109+
**1.0.1:** Calling Subscription.cancel MUST return normally.
110+
111+
**Comment: Replaced second part of rule with a definition for `return normally` in the glossary.**
112+
113+
## Subscription Rule 16
114+
115+
**1.0.0:** Calling Subscription.request MUST return normally. The only legal way to signal failure to a Subscriber is via the onError method.
116+
117+
**1.0.1:** Calling Subscription.request MUST return normally.
118+
119+
**Comment: Replaced second part of rule with a definition for `return normally` in the glossary.**
120+
121+
## Subscription Rule 17
122+
123+
**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].
124+
125+
**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”.
126+
127+
**Comment: Rule simplified by defining `demand` in the glossary, and footnote was reworked into the Intent-section of the rule.**
128+
129+
---
130+
131+
##TCK alterations
132+
133+
TODO
134+
135+
---

0 commit comments

Comments
 (0)