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

533 experimental features #549

Merged
merged 10 commits into from
May 6, 2022
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
* `IntentResolution` now requires the name of the intent raised to included, allowing it to be used to determine the intent raised via `fdc3.raiseIntentForContext()`. ([#507](https://github.com/finos/FDC3/pull/507))
* A Trademarks page was added to acknowledge trademarks used within the Standard not owned by FINOS or the Linux Foundation ([#534](https://github.com/finos/FDC3/pull/534))
* Added details of FDC3's existing versioning and deprecation policies to the FDC3 compliance page ([#539](https://github.com/finos/FDC3/pull/539))
* Added a new experimental features policy, which exempts features designated as experimental from the versioning and deprecation policies, to the FDC3 compliance page ([#549](https://github.com/finos/FDC3/pull/549))

### Changed
* Consolidated `Listener` documentation with other types ([#404](https://github.com/finos/FDC3/pull/404))
Expand Down
12 changes: 12 additions & 0 deletions docs/fdc3-compliance.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,15 @@ FDC3 adopts the following deprecation policy:
3. Deprecated features are clearly marked with an `@deprecated` tag and comment in both the documentation and jsDocs applied to the Typescript sources.
4. Where possible, changes to the behavior of an existing feature should be avoided; consider deprecating it and replacing it with something with a different name/syntax.
5. Breaking change should only be made in a major version of the Standard.

## Experimental Features
Occasionally, a change to FDC3 may be proposed where the design is tentative, and because of this, we need feedback from the community to finalise its inclusion in the standard. In such cases, a feature may be designated as _experimental_ to indicate that its design may change in future and that it is exempted from the normal versioning and deprecation polices in order to facilitate that change. However, designating a feature as experimental is likely to reduce its uptake by the community, hence, this designation should be used sparingly.
kriswest marked this conversation as resolved.
Show resolved Hide resolved
kriswest marked this conversation as resolved.
Show resolved Hide resolved

FDC3 adopts the following experimental features policy:

1. A feature may be designated as experimental where feedback is needed to confirm the final design of that feature, with the goal of including it as a full part of the Standard without the experimental label.
2. A feature should only be designated as experimental where there is a reasonable chance that breaking changes to it's design may be applied, based on feedback received; non-breaking changes (refinements) may already be applied to features defined in the Standard without the experimental designation.
kriswest marked this conversation as resolved.
Show resolved Hide resolved
kriswest marked this conversation as resolved.
Show resolved Hide resolved
3. Experimental features are clearly marked with an `@experimental` tag and comment in both the documentation and jsDocs applied to the Typescript sources.
kriswest marked this conversation as resolved.
Show resolved Hide resolved
kriswest marked this conversation as resolved.
Show resolved Hide resolved
4. Experimental features should be considered optional for compliance purposes, but recommendation for implementation (i.e. the SHOULD keyword is implied).
kriswest marked this conversation as resolved.
Show resolved Hide resolved
kriswest marked this conversation as resolved.
Show resolved Hide resolved
5. Experimental features are exempted from the normal versioning and deprecation policies that govern changes to FDC3. I.e. breaking changes may be made to experimental features between versions of the FDC3 standard without a major version release.
kriswest marked this conversation as resolved.
Show resolved Hide resolved
kriswest marked this conversation as resolved.
Show resolved Hide resolved
6. The experimental designation maybe removed from a feature in a minor version release (as this will be considered an additive change).
kriswest marked this conversation as resolved.
Show resolved Hide resolved