Skip to content

Conversation

javaducky
Copy link
Contributor

In the spirit of the internal discussion proposed by @na-- for explaining the process of graduating extensions to built-in core modules.

Signed-off-by: Paul Balogh <javaducky@gmail.com>
@javaducky javaducky force-pushed the paul/extn-graduation branch from c2acde5 to 2e8540e Compare May 5, 2023 22:06
@github-actions
Copy link
Contributor

github-actions bot commented May 5, 2023

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.

Copy link
Collaborator

@ppcano ppcano left a 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!

ppcano

This comment was marked as duplicate.

@javaducky javaducky merged commit 957afbc into main May 8, 2023
@javaducky javaducky deleted the paul/extn-graduation branch May 8, 2023 18:04
@MattDodsonEnglish MattDodsonEnglish restored the paul/extn-graduation branch May 8, 2023 18:19
Copy link
Contributor

@MattDodsonEnglish MattDodsonEnglish left a 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.


The three phases which a _core-bound_ extension will go through include:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**_extension_ -> _experimental module_ -> _core module_**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**_extension_ -> _experimental module_ -> _core module_**
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

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

Comment on lines +17 to +25
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>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

Comment on lines +38 to +40
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.

Copy link
Contributor

@MattDodsonEnglish MattDodsonEnglish left a 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.

@javaducky javaducky deleted the paul/extn-graduation branch May 10, 2023 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants