Skip to content
This repository was archived by the owner on Jan 7, 2025. It is now read-only.

Technical detail review #20

Closed
wants to merge 190 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
190 commits
Select commit Hold shift + click to select a range
33919c8
Add descriptions for RestChannel
m-hulbert Jun 1, 2022
2d90ffc
Improve descriptions for RestChannel based on review feedback
m-hulbert Jun 8, 2022
635a297
WIP - Initial commit
tbedford Jun 13, 2022
4038a95
EDX-167 initial commit - WIP
tbedford Jun 13, 2022
4aab2d8
Add more descriptions
tbedford Jun 14, 2022
eca3e8f
Add descriptions for Rest class.
tbedford Jun 14, 2022
e008ac8
[EDX-168] - initial commit
tbedford Jun 15, 2022
995ebd3
Add more descriptions
tbedford Jun 15, 2022
35058b0
Add ChannelStateChange description
tbedford Jun 16, 2022
aff3085
Add ChannelOptions descriptions
tbedford Jun 16, 2022
edda8c6
Add descriptions for Message
tbedford Jun 16, 2022
43f92c3
Add descriptions for batch classes
m-hulbert Jun 21, 2022
5e2113c
Add "Returns" column to tables
tbedford Jun 23, 2022
d99f92d
Add Returns to tables
tbedford Jun 23, 2022
2368e0d
Add Returns to table and missing descriptions.
tbedford Jun 23, 2022
a9cf8a4
Add missing classes and descriptions.
tbedford Jun 23, 2022
876487f
Add description for batch and device
tbedford Jun 23, 2022
bda6b3b
Add Returns to table and missing descriptions.
tbedford Jun 23, 2022
081bd66
Add return values
tbedford Jun 24, 2022
9a5f2e7
Adds returns
tbedford Jun 24, 2022
c748dec
Add more returns
tbedford Jun 24, 2022
4aff307
Add returns
tbedford Jun 24, 2022
fb4394e
Add descriptions to enums.
tbedford Jun 27, 2022
bf450a9
Add channel mode descriptions
tbedford Jun 27, 2022
d9cdc55
Add form factor descriptions and correct spec point
tbedford Jun 27, 2022
43320c6
Delete DevicePushTransportType as no longer in spec.
tbedford Jun 27, 2022
087bc1f
Add Crypto and CipherParams descriptions
tbedford Jun 27, 2022
d89d008
Adds descriptions for JsonObject, ErrorInfo, EventEmitter.
tbedford Jun 28, 2022
b344b07
Update descriptions.md
tbedford Jun 29, 2022
bd22ee2
Update descriptions.md
tbedford Jun 29, 2022
31f8291
Update Crypto class
tbedford Jun 29, 2022
c86ee85
Update table descriptions and layout
tbedford Jun 29, 2022
a8e7b4f
Update batch descriptions for consistency
m-hulbert Jun 29, 2022
a4db4ce
Update descriptions.md
tbedford Jun 30, 2022
b3b8434
Update descriptions.md
tbedford Jun 30, 2022
fe7475c
Merge pull request #8 from ably/edx-172-encryption-stats
tbedford Jun 30, 2022
34f5a46
Create README
tbedford Jun 30, 2022
a6f271c
Add presence class descriptions
m-hulbert Jun 30, 2022
96afadf
Style null with backtick
m-hulbert Jun 30, 2022
a3c8bf6
Merge pull request #6 from ably/edx-169-batch-classes
m-hulbert Jun 30, 2022
915c339
Merge pull request #10 from ably/create-readme
tbedford Jun 30, 2022
ab11f45
Conform to style guide.
tbedford Jun 30, 2022
b7c1426
Update memberKey and correct table alignment and parameter length
m-hulbert Jun 30, 2022
269959f
Update descriptions.md
tbedford Jul 1, 2022
fde8efe
Add BatchSpec description
m-hulbert Jul 1, 2022
ead4086
Add table for SDK implementation tracking
m-hulbert Jul 1, 2022
dee2709
Merge pull request #12 from ably/sdk-implemented
m-hulbert Jul 1, 2022
30d2bc7
Make references to synchronization consistent
m-hulbert Jul 5, 2022
54c237b
Merge pull request #11 from ably/edx-171-presence-classes
m-hulbert Jul 5, 2022
b3e9314
Changes based on feedback
tbedford Jul 5, 2022
d8ac771
merge
tbedford Jul 5, 2022
b9e1110
Updates to conform to spec.
tbedford Jul 5, 2022
6c91a30
Changes based on feedback
tbedford Jul 5, 2022
16d03a5
Merge pull request #2 from ably/edx-166-realtime-rest
tbedford Jul 5, 2022
795a3a8
Add descriptions
tbedford Jul 6, 2022
46eefa9
Update descriptions.
tbedford Jul 6, 2022
916d67c
Update descriptions.md
tbedford Jul 6, 2022
8217477
Update descriptions.md
tbedford Jul 6, 2022
86274d9
Update descriptions.md
tbedford Jul 6, 2022
8676f03
Update descriptions.md
tbedford Jul 6, 2022
a7f88a2
Update descriptions.md
tbedford Jul 6, 2022
55ce577
Fixes
tbedford Jul 6, 2022
12f0419
Merge branch 'edx-173-misc' of https://github.com/ably/canonical-api-…
tbedford Jul 6, 2022
dab4e3f
Remove JsonObject table as not used.
tbedford Jul 6, 2022
11aaca7
Add Event and Data parameters
tbedford Jul 6, 2022
59f567b
Update README.md
tbedford Jul 6, 2022
8cc09be
Apply standardisation to RestChannel
m-hulbert Jul 6, 2022
35caac7
Standardise enum descriptions and tables
m-hulbert Jul 6, 2022
6968090
Update descriptions.md
tbedford Jul 7, 2022
39ae2ce
Update descriptions.md
tbedford Jul 7, 2022
471ccce
Update descriptions.md
tbedford Jul 7, 2022
aea5f6f
Update descriptions.md
tbedford Jul 7, 2022
203ceed
Update descriptions.md
tbedford Jul 7, 2022
0ade44c
Update descriptions.md
tbedford Jul 7, 2022
07e45dd
Address feedback.
tbedford Jul 7, 2022
0ccf994
Remove VCDiffDecoder whilst checking params
m-hulbert Jul 7, 2022
9d6dd32
Remove brackets and update table heading
m-hulbert Jul 7, 2022
9c27c00
Update descriptions.md
tbedford Jul 7, 2022
b3348c7
Merge pull request #7 from ably/edx-174-enum-descriptions
m-hulbert Jul 7, 2022
50e6b42
Update descriptions.md
tbedford Jul 7, 2022
c8c7d38
Update descriptions.md
tbedford Jul 7, 2022
5ac8ab9
Merge pull request #9 from ably/edx-173-misc
tbedford Jul 7, 2022
d93b589
Address feedback
tbedford Jul 8, 2022
663dfb1
Address feedback - 1
tbedford Jul 8, 2022
7163e33
Update descriptions.md
tbedford Jul 8, 2022
c088c57
Update descriptions.md
tbedford Jul 8, 2022
2fd684d
Update descriptions.md
tbedford Jul 8, 2022
a1954c8
Update descriptions.md
tbedford Jul 8, 2022
fc4285b
Update descriptions.md
tbedford Jul 8, 2022
2625926
Update descriptions.md
tbedford Jul 8, 2022
c941ec1
Update descriptions.md
tbedford Jul 8, 2022
e68bb8a
Update descriptions.md
tbedford Jul 8, 2022
74abe07
Update descriptions.md
tbedford Jul 8, 2022
8283acc
Update descriptions.md
tbedford Jul 8, 2022
3b2dbb9
Update descriptions.md
tbedford Jul 8, 2022
a77f12d
Update descriptions.md
tbedford Jul 8, 2022
35f58dc
Make connect() linked
tbedford Jul 8, 2022
2284469
Address feedback -2
tbedford Jul 8, 2022
27f15e9
Address feedback - 3
tbedford Jul 8, 2022
cbcce8b
Address feedback - 4
tbedford Jul 8, 2022
969b8e8
Update descriptions.md
tbedford Jul 8, 2022
47625a2
Merge pull request #4 from ably/edx-168-channel-classes
tbedford Jul 8, 2022
a1bdccb
Fixed based on feedback.
tbedford Jul 11, 2022
5d09801
Update descriptions.md
tbedford Jul 11, 2022
476f436
Update descriptions.md
tbedford Jul 11, 2022
1167960
Update descriptions.md
tbedford Jul 11, 2022
c51c7b9
Merge pull request #3 from ably/edx-167-auth-connection
tbedford Jul 11, 2022
f6d62b4
Correct type in class description
m-hulbert Jul 11, 2022
9c7b3a4
Merge pull request #1 from ably/edx-165-first-class
m-hulbert Jul 11, 2022
edd2c2d
Merge pull request #14 from ably/tbedford-patch-1
m-hulbert Jul 11, 2022
7c45391
Add class descriptions for push
m-hulbert Jul 11, 2022
de3ae38
Add class description for Push
m-hulbert Jul 11, 2022
559ceb2
Fix table alignment for ConnectionState
m-hulbert Jul 11, 2022
02e0599
Merge pull request #15 from ably/m-hulbert-patch-1
tbedford Jul 11, 2022
2c9936e
Add activate and deactivate method descriptions
m-hulbert Jul 11, 2022
c403431
Merge pull request #16 from ably/edx-170-push-classes
tbedford Jul 15, 2022
0043a3d
Change unregister to deregister to unsubscribe
m-hulbert Jul 15, 2022
72d439b
Remove links to manually generated API
m-hulbert Jul 15, 2022
6523c2b
Enforce consistent key-value terminology
m-hulbert Jul 15, 2022
41914d3
Update ChannelMetrics descriptions
m-hulbert Jul 15, 2022
8d04ab4
Style < and > with backticks
m-hulbert Jul 15, 2022
f6b9b4d
Link consistently and make links explicit
m-hulbert Jul 21, 2022
093b2aa
Remove contact us from reference
m-hulbert Jul 21, 2022
db6eadb
Add parameters and return to realtime stats()
m-hulbert Jul 21, 2022
416bbe7
Apply downstream suggested improvements from JS docstrings
m-hulbert Jul 22, 2022
887e130
Make PaginatedResult descriptions consistent
m-hulbert Jul 22, 2022
593d9fe
Make property descriptions consistent
m-hulbert Jul 25, 2022
f357c0e
Make class descriptions consistent
m-hulbert Jul 25, 2022
22e8c5f
Apply conistentcy to RestChannel and RealtimeChannel
m-hulbert Jul 25, 2022
4961c32
LocalDevice should be one word and link to its class
m-hulbert Jul 25, 2022
52cfc5d
Fix missing backticks and column alignment
m-hulbert Jul 26, 2022
2d11672
Clarify params of the request() method
m-hulbert Jul 26, 2022
67d28e0
Update class descriptions based on feedback and fix missing backticks
m-hulbert Jul 26, 2022
0e06cab
Merge pull request #17 from ably/edx-219-consistency-and-updates
m-hulbert Jul 27, 2022
e5ad456
Add descriptions for PushChannelSubscription methods
m-hulbert Jul 27, 2022
96b65bc
Add description for listSubscriptions()
m-hulbert Jul 27, 2022
3b46580
rebase and update IDL changes
StevenAppleby Jul 27, 2022
a437698
IDL update feedback
StevenAppleby Jul 29, 2022
0fbb0dd
IDL update feedback
StevenAppleby Jul 29, 2022
262663e
IDL update feedback
StevenAppleby Jul 29, 2022
eace29f
IDL style updates
StevenAppleby Aug 1, 2022
cb851c4
Merge pull request #18 from ably/edx-180-rebase
Sapples Aug 1, 2022
6865ac8
Clarify optional params in method signatures
m-hulbert Aug 1, 2022
372fd54
Merge pull request #19 from ably/edx-222-push-clarifications
m-hulbert Aug 1, 2022
ab35346
Add array of PresenceAction to subscribe()
m-hulbert Aug 3, 2022
dc34c64
Clarify device() descriptions
m-hulbert Aug 3, 2022
34cbb8d
Clarify request() description and params
m-hulbert Aug 3, 2022
48e2cd2
Clarify clientId restrictions
m-hulbert Aug 4, 2022
d387a7f
Clarify environment and fallback behaviour
m-hulbert Aug 4, 2022
5915cc3
Add notice to deprecated properties
m-hulbert Aug 4, 2022
83c3dfc
Remove mention of console.log
m-hulbert Aug 4, 2022
c880e66
Clarify tls description
m-hulbert Aug 4, 2022
5440d4c
Add parameter entries for fromJson() methods
m-hulbert Aug 4, 2022
348af55
Clarify exists() description
m-hulbert Aug 4, 2022
3eca984
Remove unexplained plugins info
m-hulbert Aug 4, 2022
472b40e
Clarify addRequestIds description
m-hulbert Aug 4, 2022
d9511d1
Remove unncessary unit from fallbackRetryTimeout
m-hulbert Aug 4, 2022
0d49989
Clarify authMethod description
m-hulbert Aug 4, 2022
817f1de
Clarify capability description
m-hulbert Aug 4, 2022
52742d9
Update nonce descriptions
m-hulbert Aug 4, 2022
4295761
Standarise errorReason descriptions
m-hulbert Aug 5, 2022
dfe0a4e
Clarify status() method description
m-hulbert Aug 5, 2022
5ead6ad
Update message persistence description for history() methods
m-hulbert Aug 5, 2022
1ac1435
Fix Stats.ConnectionTypes description
m-hulbert Aug 9, 2022
bfa2ad6
Add further info to intervalId for Stats
m-hulbert Aug 9, 2022
98c2b8a
Correct Message.extras description
m-hulbert Aug 9, 2022
5b53963
Clarify syncComplete
m-hulbert Aug 9, 2022
701d3b4
Correct minor styling issues
m-hulbert Aug 9, 2022
6a1d25a
Update ChannelMode description
m-hulbert Aug 9, 2022
95e960e
Clarify ChannelState descriptions
m-hulbert Aug 9, 2022
d65f70b
Correct cipher optional ? placement
m-hulbert Aug 9, 2022
711f45c
Add default values into descriptions
m-hulbert Aug 9, 2022
5fe4847
Make object references consistent
m-hulbert Aug 9, 2022
1764b33
Clarify times as milliseconds since unix epoch
m-hulbert Aug 9, 2022
cd4693f
Shift column alignment for misplaced properties
m-hulbert Aug 10, 2022
86be5c8
Merge pull request #21 from ably/edx-234-implement-tech-fixes
m-hulbert Aug 10, 2022
2c86404
Delete deprecated intervalGranularity property
m-hulbert Aug 11, 2022
9ca3bf4
Replace logLevel integers with log level names
m-hulbert Aug 11, 2022
e374f88
Explicitly state transportParams takes key-value pairs
m-hulbert Aug 11, 2022
138dbbc
Clarify maxMessageSize descriptions and relation
m-hulbert Aug 11, 2022
617a819
Clarify agents property description
m-hulbert Aug 11, 2022
310cfc3
Make publish() descriptions consistent
m-hulbert Aug 11, 2022
7bd56c7
Clarify timeout descriptions and their differences
m-hulbert Aug 11, 2022
20d1dfb
Add callback info to attach and detach descriptions
m-hulbert Aug 12, 2022
b254c02
Further clarify clientOptions.maxMessageSize
m-hulbert Aug 16, 2022
5ce7ce6
Update README with intro, format and conventions
m-hulbert Aug 16, 2022
f5a47c1
Merge pull request #22 from ably/edx-242-clarify-tech-details
m-hulbert Aug 17, 2022
4dce5a6
Reformat sections for clarity
m-hulbert Aug 17, 2022
0e96bb6
Split sentence around static site block
m-hulbert Aug 17, 2022
6dbaf8c
Merge pull request #23 from ably/edx-218-update-readme
m-hulbert Aug 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Canonical table

This repository is intended to be a language-agnostic reference for SDK developers to use when adding docstring comments to Ably SDKs.

The repository contains a set of tables in [descriptions.md](/descriptions.md) that complements the [Ably features spec](https://docs.ably.io/client-lib-development-guide/features). Each class and enum has its own table with an associated description for the class or enum. Every method and property is documented within the appropriate table.

## Table format

### Classes

The table for each class contains the following columns:

```
| Method / Property | Parameter | Returns | Spec | Description |
```

* **Method/Property**: The full method signature (code formatted only where necessary, e.g. where it includes `<`, or property name.
* **Parameter**: Each parameter should have its own row and be code formatted.
* **Returns**: The return value should be code formatted and has its own row, after the parameters have been listed.
* **Spec**: The spec point related to the method or property.
* **Description**: The language-agnostic description that will form the docstrings.

### Enums

The table for each enum contains the following columns:

```
| Enum | Spec | Description |
```

* **Enum**: The name of each value for the enum.
* **Spec**: The spec point related to the enum.
* **Description**: The language-agnostic description that will form the docstrings.

## Conventions

The following conventions should be followed when adding a new method or property to the table:

* Use a verb with an `s` for method descriptions. Common uses are:
* `get` --> `retrieves`
* `subscribe` --> `registers (a listener)`
* `publish` --> `Publishes`
* The expression key-value pairs should be hyphenated.
* Parameters or returns that refer to another class are referred to in terms of objects, for example:
```
A [`Channels`]{@link Channels} object.
```

* Links to other classes/enums are written in the format:
```
[`<text>`]{@link <class>#<property>}
```

For example:
```
[`ClientOptions.logLevel`]{@link ClientOptions#logLevel}`
```
* If a method references its own class, it should just be code formatted, and not link to itself.
* Descriptions can link out to conceptual docs hosted on `ably.com/docs`, but should never link to the API references hosted there.
* A class or object should always be capitalized.
* Methods and parameters should always be lower-case.
* If adding a method/property to separate REST and realtime classes, ensure the descriptions are consistent (where possible).
* When a return value is returned in a paginated list, the description should link to the PaginatedResult class, as well as the class of whatever is returned.
* Items deprecated in the features spec should include the following text at the beginning of the description: `DEPRECATED: this <property/method> is deprecated and will be removed in a future version.`
* Default values should be listed in the description field.
* If a minimum or maximum value exists for a parameter then it should be listed in the description field.
* Time values should be referred to as `milliseconds since the Unix epoch` where applicable.

## Static site introduction

The following text is an introduction that can be added to each static site generated from an SDK after docstring comments have been added:

```
# Ably `<Language>` Client Library SDK API Reference

The `<Language>` Client Library SDK supports a realtime and a REST interface.

The realtime interface enables a client to maintain a persistent connection to Ably and publish, subscribe and be present on channels. The REST interface is stateless and typically implemented server-side. It is used to make requests such as retrieving statistics, token authentication and publishing to a channel.

**Note**: The `<Language>` Client Library SDK implements the realtime and REST interfaces as two separate libraries.

The `<Language>` API references are generated from the [Ably `<Language>` Client Library SDK source code](link-to-Ably-repo) using [`<Tool>`](link-to-tool). View the [Ably docs](http://ably.com/docs/) for conceptual information on using Ably and for client library API references split between the [realtime](http://ably.com/docs/api/realtime-sdk) and [REST](http://ably.com/docs/api/rest-sdk) interfaces.
```

It can be amended as necessary, for example where an SDK implements the REST and realtime interfaces as two separate libraries.
Loading