Skip to content

Commit

Permalink
Added k6core changes
Browse files Browse the repository at this point in the history
  • Loading branch information
codebien committed Apr 29, 2024
1 parent 39bba8d commit e057ede
Showing 1 changed file with 46 additions and 13 deletions.
59 changes: 46 additions & 13 deletions release notes/v0.51.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@ k6 `v0.51.0` is here 🎉! This release includes:
- (_optional_) `<highlight of breaking changes>`
- `<Summary of new features>` (_one or multiple bullets_)


## Breaking changes

- `#pr`, `<small_break_1>`
- `#pr`, `<small_break_2>`


### (_optional h3_) `<big_breaking_change>` `#pr`
Expand Down Expand Up @@ -70,12 +68,25 @@ export default function () {
// ...
}
```
### `k6/experimental/grpc` is no longer available [#3530](https://github.com/grafana/k6/pull/3530)

As last step of the graduation process for the experimental gRPC module, we completly removed the module. It is now fully integrated as part of the stable `k6/net/grpc` module.

### Deprecated

The following pull requests starts the process to introduce breaking changes. They are currently starting to emit warning if their condition is hit, but they will turn to return errors in the future release.
It is recommended to use the suggested alternative, or to fix the script if you see the warning message.

- [#3681](https://github.com/grafana/k6/pull/3681) Use of not-compliant `require` expressions.
- [#3680](https://github.com/grafana/k6/pull/3680) Modules resolution of modules not previously seen during the initialization phase.
- [#3676](https://github.com/grafana/k6/pull/3676) Working directory is set to the current location when the script is provided using stdin, instead of the root folder.
- [#3530](https://github.com/grafana/k6/pull/3671) Automagically resolve modules from cdnjs and github "URLs".

## New features

_optional intro here_

### Introduction of `k6/experimental/streams` module #3696
### Introduction of `k6/experimental/streams` module [#3696](https://github.com/grafana/k6/pull/3696)

This release of k6 introduces the new `k6/experimental/streams` module, which partially supports the JavaScript
Streams API, focusing initially on the `ReadableStream` construct.
Expand Down Expand Up @@ -135,7 +146,6 @@ export default async function () {

For more advanced examples, please head to the MDN Web Docs on the [Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API).


### New features and updates of WebCrypto API support [#3714](https://github.com/grafana/k6/pull/3714)

This release brings support for asymmetric cryptography to the `k6/experimental/webcrypto` module. We added support of the elliptic curves algorithms ECDH ([xk6-webcrypto#67](https://github.com/grafana/xk6-webcrypto/pull/67)) and ECDSA ([xk6-webcrypto#69](https://github.com/grafana/xk6-webcrypto/pull/69)) algorithms along with new import/export key formats like `spki` and `pkcs8`.
Expand Down Expand Up @@ -209,28 +219,51 @@ Other notable updates and fixes:

See [webcrypto's module documentation](https://grafana.com/docs/k6/latest/javascript-api/k6-experimental/webcrypto/) for more details.

### `<big_feature_n>` `#pr`
### Timers globally available [#3589](https://github.com/grafana/k6/pull/3589)

_what, why, and what this means for the user_

## UX improvements and enhancements

_Format as `<number> <present_verb> <object>. <credit>`_:

- [#3670](https://github.com/grafana/k6/issues/3670) Enable profiling via environment variable.
- [#3682](https://github.com/grafana/k6/pull/3589) An event is emitted when the summary is generated. This new added event is part of a not very stable API, if you intend to use it be aware that we may change it in the future.
- [#3655](https://github.com/grafana/k6/pull/3655) Clarified the error message for the validation of sceanario's name.
- [browser#1259](https://github.com/grafana/xk6-browser/pull/1259), [browser#1260](https://github.com/grafana/xk6-browser/pull/1260) adds errors to the traces that the browser module generates.
- [#3693](https://github.com/grafana/k6/pull/3693) adds a gRPC client's `asyncInvoke` method to the `k6/net/grpc` module. It's [a non-blocking version](https://grafana.com/docs/k6/latest/javascript-api/k6-net-grpc/client/client-async-invoke/) of the `invoke` method.

## Bug fixes

- [browser#1261](https://github.com/grafana/xk6-browser/pull/1261) fixes dispose context canceled errors.
- [browser#1254](https://github.com/grafana/xk6-browser/pull/1254) fixes an indefinite wait when testing websites with iframes.
- [#3708](https://github.com/grafana/k6/pull/3708) Deny access `execution.test.options` from Init context.
- [#3660](https://github.com/grafana/k6/pull/3660) Pick the correct value when SystemTags is set via environment variable.
- [#3657](https://github.com/grafana/k6/pull/3657) Not panic when `mappings` field is empty in the provided SourceMap.
- [#3717](https://github.com/grafana/k6/pull/3717) Return a correct line number when a inlined SourceMap is used.
- [browser#1261](https://github.com/grafana/xk6-browser/pull/1261) Fixes dispose context canceled errors.
- [browser#1254](https://github.com/grafana/xk6-browser/pull/1254) Fixes an indefinite wait when testing websites with iframes.

## Maintenance and internal improvements

- [browser#1262](https://github.com/grafana/xk6-browser/pull/1262) fixes a flaky test.
- [browser#1264](https://github.com/grafana/xk6-browser/pull/1264) removes unimplemented APIs.
- [browser#1262](https://github.com/grafana/xk6-browser/pull/1262) Fixes a flaky test.
- [browser#1264](https://github.com/grafana/xk6-browser/pull/1264) Removes unimplemented APIs.

## Future plans

### Use Blob as default value for WebSocket.binaryType

As the changes in documentation mention, [`binaryType`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/binaryType) was by deafult set to `arraybuffer`, now instead it is by default `""` (empty string).
In a not so remote future, instead, we expect to introduce and use Blob object.

### WebCrypto graduation

WebCrypto got more features in the current release, and we expect to continute its expansion in the next iterations. Reaching a wider coverage will push WebCrypto module to being graduated as a stable module.

### Streams API

In the not so distant future, we have plans to start using the Streams API in existing modules. Our first iteration being adding a `.readable` property to the already existing [fs.File](https://grafana.com/docs/k6/latest/javascript-api/k6-experimental/fs/file) object.

### Improve user experience for Cloud related commands

## _Optional_ Roadmap
In the near future, we intend to reiterate on `k6 cloud` and related commands to create a simplified and more ergonomic user experience.

_Discussion of future plans_
### Remove experimental timers module

The `k6/experimental/timers` module is not part of the stable k6 API. All the timers are globally available. The next release will make the experimental import no longer available.

0 comments on commit e057ede

Please sign in to comment.