-
Notifications
You must be signed in to change notification settings - Fork 241
Add explanation of the extension graduation process #1163
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
Conversation
Signed-off-by: Paul Balogh <javaducky@gmail.com>
c2acde5
to
2e8540e
Compare
There's a version of the docs published here: https://mdr-ci.staging.k6.io/docs/refs/pull/1163/merge It will be deleted automatically in 30 days. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is great to see these explanations. I gave a general review and all good!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Some suggestions to simplify language. We also should avoid the future tense, since that increases length and ambiguity, and this doc is about a present condition.
src/data/markdown/docs/07 extensions/02 Explanations/030-extension-graduation.md
Show resolved
Hide resolved
src/data/markdown/docs/07 extensions/02 Explanations/030-extension-graduation.md
Show resolved
Hide resolved
src/data/markdown/docs/07 extensions/02 Explanations/030-extension-graduation.md
Show resolved
Hide resolved
|
||
The three phases which a _core-bound_ extension will go through include: | ||
|
||
**_extension_ -> _experimental module_ -> _core module_** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
**_extension_ -> _experimental module_ -> _core module_** | |
|
Not sure, this seems like a hacky way to make a tab.
Maybe just make it an ordered list:
1. **Extension.** Requiring xk6.
2. **Experimental module.** Imported into the k6 core as a Go module.
3. **Core module.** Part of k6 core.
Alternatively, you could use a diagram, like with the options order of precedence: https://k6.io/docs/static/cd2ffc633dd58c67e276922851216ab9/0e253/order-of-precedence.png
Most of the extensions in the k6 ecosystem will remain an _extension_ requiring using [xk6](https://github.com/grafana/xk6) to incorporate the custom functionality. | ||
These extensions will be a mix of Grafana- and community-provided features and _may_ be included in the [Extensions Registry](/extensions/get-started/explore/). | ||
|
||
<Blockquote mod="note" title=""> | ||
|
||
Only Grafana-owned extensions may progress beyond the _extension_ phase to become _experimental_ or _core modules_. | ||
|
||
</Blockquote> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of the extensions in the k6 ecosystem will remain an _extension_ requiring using [xk6](https://github.com/grafana/xk6) to incorporate the custom functionality. | |
These extensions will be a mix of Grafana- and community-provided features and _may_ be included in the [Extensions Registry](/extensions/get-started/explore/). | |
<Blockquote mod="note" title=""> | |
Only Grafana-owned extensions may progress beyond the _extension_ phase to become _experimental_ or _core modules_. | |
</Blockquote> | |
Most extensions in the k6 ecosystem remain _extensions_ requiring [xk6](https://github.com/grafana/xk6) to incorporate the custom functionality. | |
These extensions might be provided by Grafana or by the community, and _may_ be included in the [Extensions Registry](/extensions/get-started/explore/). | |
<Blockquote mod="note" title=""> | |
Only Grafana-owned extensions can progress beyond the _extension_ phase to become _experimental_ or _core modules_. | |
</Blockquote> | |
|
||
### Experimental Module | ||
This phase is the first exposure to core k6. | ||
The extension is still maintained outside the core of k6 but imported as a Go module, no longer requiring using xk6. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The extension is still maintained outside the core of k6 but imported as a Go module, no longer requiring using xk6. | |
The extension is still maintained outside the core of k6 but imported as a Go module, no longer requiring xk6. |
The extension is still maintained outside the core of k6 but imported as a Go module, no longer requiring using xk6. | ||
|
||
There should be a reasonably high degree of quality and stability at this point. | ||
This phase will allow adoption by a broader subset of OSS and cloud users while getting actionable feedback about the user experience. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This phase will allow adoption by a broader subset of OSS and cloud users while getting actionable feedback about the user experience. | |
This phase makes the feature accessible to more users, which in turn gives k6 developers more chances to receive feedback. |
The extension code will be in the main k6 repository, with the old extension repository archived. | ||
Options from the _experimental module_ phase will be deprecated and removed after two k6 releases. | ||
This time frame should provide ample time for users to upgrade scripts for the new usage. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The extension code will be in the main k6 repository, with the old extension repository archived. | |
Options from the _experimental module_ phase will be deprecated and removed after two k6 releases. | |
This time frame should provide ample time for users to upgrade scripts for the new usage. | |
The module code is in the main k6 repository, with the old extension repository archived. | |
Options from the _experimental module_ phase are deprecated and removed after two k6 releases, | |
providing time for users to upgrade scripts for the new module. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Some suggestions to simplify language. We also should avoid the future tense, since that increases length and ambiguity, and this doc is about a present condition.
In the spirit of the internal discussion proposed by @na-- for explaining the process of graduating extensions to built-in core modules.