Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document change process in contributing guidance #6

Closed
QuintinWillison opened this issue Sep 28, 2022 · 2 comments
Closed

Document change process in contributing guidance #6

QuintinWillison opened this issue Sep 28, 2022 · 2 comments
Labels
build Relates to the tooling and/or scripts that render the HTML microsite published from here.

Comments

@QuintinWillison
Copy link
Contributor

Closely relates to ably/features#12, so I'll not duplicate the content from the opening commentary on that issue here, to save myself time.

However... for this repository, the following are also very important...

Guidance on Semantic Versioning

SemVer is deliciously clear around definition of terms like 'incompatible API change' and 'backwards compatible'.

What we need to be clear on in our guidance is from what perspective to apply those definitions to. We have a general principle / requirement that our service 'makes right' in order to keep supporting older SDK versions, where those older SDKs will be behaving differently (e.g. protocol difference). Therefore, if the protocol changes in such a way that the SDK needs to communicate with the service in a different way in order to do the same (or similar) thing to what it was doing previously, do we define that as a 'incompatible API change'? From whose eyes is/can the term API to be understood in the context of the features spec that lives in this repository?

These questions need to be answered when working on this issue.

Guidance on Spec Point Add/Delete/Mutate

Should start by moving Ably SDK Team: Features Specification from the ably/engineering repository to this repository.

Must add guidance around spec point mutation. Specifically that patch updates to the spec can correct mistakes in spec points but, otherwise, spec points should not be mutated between versions in a way that fundamentally changes the implications for client library SDK implementations. We do not version the spec points individually, just the spec as an atomic whole. That means that once an SDK has declared conformance with a spec point then that remains a valid assertion for as long as that spec point exists. If a spec point needs to materially change (e.g. scope expanded or modified behaviour) then that needs to become a new spec point, with the old spec point 'deleted'.

An example of a spec point where scope was expanded during the lifetime of version 1.2.0 of the specification is TM2i in ably/docs#1444. Some SDKs implemented TM2i before the ref field was added to message.extras and, therefore, there's no logical way for us to track which SDKs have 'fully' adopted it. Being stricter around spec point mutation in future will prevent this sort of confusion from arising again.

@sync-by-unito
Copy link

sync-by-unito bot commented Oct 17, 2022

➤ Automation for Jira commented:

The link to the corresponding Jira issue is https://ably.atlassian.net/browse/SDK-2804

@QuintinWillison QuintinWillison added the build Relates to the tooling and/or scripts that render the HTML microsite published from here. label Nov 1, 2022
@QuintinWillison QuintinWillison self-assigned this Nov 1, 2022
@QuintinWillison QuintinWillison linked a pull request Nov 1, 2022 that will close this issue
@QuintinWillison
Copy link
Contributor Author

This should have been closed as completed in #120.

@QuintinWillison QuintinWillison removed their assignment Feb 28, 2023
SimonWoolf pushed a commit that referenced this issue Jan 6, 2025
[EDX-169] Add descriptions for batch classes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Relates to the tooling and/or scripts that render the HTML microsite published from here.
Development

Successfully merging a pull request may close this issue.

1 participant