fix(deps): update module go.k6.io/k6/v2 to v2.0.0#22
Merged
Conversation
| datasource | package | from | to | | ---------- | -------------- | ---------- | ------ | | go | go.k6.io/k6/v2 | v2.0.0-rc1 | v2.0.0 | Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
inancgumus
approved these changes
Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v2.0.0-rc1→v2.0.0Release Notes
grafana/k6 (go.k6.io/k6/v2)
v2.0.0Compare Source
k6
v2.0.0is here 🎉!k6 v2.0.0 is the final release of the v2 major version, completing the cleanup of deprecated APIs, old commands, and obsolete configuration options that was started with v2.0.0-rc1. If you were already running the release candidate, this release includes a handful of additional changes on top — they are marked with (new since v2.0.0-rc1) throughout these notes.
Here's a glimpse of what's changed in this release:
go.k6.io/k6/v2— all extensions must update their import paths to be compatible with v2.k6 login,k6 pause,k6 resume,k6 scale,k6 status,--no-summary,--upload-only, and more.externally-controlledexecutor has been removed — scripts usingexecutor: externally-controlledwill no longer run.97instead of0.options.ext.loadimpactis no longer supported — useoptions.cloud.k6/experimental/redismodule has been removed.k6 cloud script.jspositional form has been fully removed — usek6 cloud run script.js.k6 cloudcommands — the previous fallback to the first available stack has been removed.encoding/json— extension authors relying on easyjson-generated methods on k6 types must update.--addressto enable it.k6 cloud project listcommand to list Grafana Cloud k6 projects.k6 cloud run --local-execution; use--no-cloud-secretsto opt out.Breaking changes
These are changes that require you to update your scripts, CI/CD pipelines, or configuration files before upgrading.
Go module path changed to
go.k6.io/k6/v2#5777Following the Go module versioning conventions, the k6 module path has changed from
go.k6.io/k6togo.k6.io/k6/v2.Any extension or external package that imports
go.k6.io/k6must update all import paths togo.k6.io/k6/v2. For the vast majority of extensions this is the only change needed — a mechanical find-and-replace across the codebase:For example:
Removed CLI commands #5653
The following commands for controlling a running test have been removed. They have not been functional for most use cases since the REST API they relied on was limited to specific execution modes:
k6 pausek6 resumek6 scalek6 statusMigration: There is no replacement. These commands relied on the
externally-controlledexecutor, which has also been removed in v2.0.0 (see below).Removed
externally-controlledexecutor #5846The
externally-controlledexecutor has been removed. It was legacy code from an older k6 Cloud architecture that allowed external systems to scale VUs and pause/resume a running test via the k6 REST API — the capability thatk6 pause,k6 resume,k6 scale, andk6 statusrelied on.Migration: There is no replacement. Any test script with
executor: externally-controlledwill fail to start. Migrate to a different executor based on the desired load profile (e.g.,ramping-vus,constant-vus,constant-arrival-rate).Removed
k6 logincommand #5134The top-level
k6 logincommand and its subcommands (k6 login cloud,k6 login influxdb) have been removed.Migration:
k6 login cloud→k6 cloud loginK6_INFLUXDB_*to configure the InfluxDB output directly.Removed
k6 cloud script.jspositional form #5624, #5912 (completed in v2.0.0)The old positional-argument form
k6 cloud script.jshas been fully removed. In v2.0.0-rc1 it was changed to show help instead of running; in v2.0.0 the deprecated command handler itself has been removed entirely. Therunsubcommand has been the recommended path sincek6 cloud runwas introduced.Migration: Replace
k6 cloud script.jswithk6 cloud run script.js.Removed
--upload-onlyflag #5844The
--upload-onlyflag on thek6 cloudcommand has been removed.Migration: Use
k6 cloud upload script.jsto upload a test without running it.Removed
--no-summaryflag #5729The
--no-summaryflag has been removed.Migration: Replace
--no-summarywith--summary-mode=disabled.Removed
--summary-mode=legacy#5730The
legacyvalue for--summary-modehas been removed.Migration: There is no direct equivalent — the new summary format is different from the legacy one. Review the available summary modes and choose the one that best fits your needs:
compact(the default) orfullfor more detailed output.Removed
options.ext.loadimpactsupport #5774The
options.ext.loadimpactconfiguration block in test scripts is no longer supported.Migration: Move all cloud-related configuration from
options.ext.loadimpacttooptions.cloud:Removed
k6/experimental/redismodule #5485The
k6/experimental/redismodule has been removed from the k6 core binary. It was shipped as an experiment and has not been promoted to stable.Migration: Change your import from
k6/experimental/redistok6/x/redis. With auto-extension-resolution, k6 will automatically provision the xk6-redis extension when it sees thek6/x/redisimport.Removed
ExporterTypeoption from OpenTelemetry output #5754The deprecated
exporterTypeconfiguration option for the OpenTelemetry output has been removed.Migration: Replace
K6_OTEL_EXPORTER_TYPEwithK6_OTEL_EXPORTER_PROTOCOL. The accepted values aregrpcandhttp/protobuf.Removed
SingleCounterForRateoption from OpenTelemetry output #5830The temporary
SingleCounterForRateescape-hatch option for the OpenTelemetry output has been removed. It was introduced as a one-release migration aid in #5164 to let users revert to the old pair-of-counters format (<metric>.occurred+<metric>.total) while upgrading. Rate metrics are now always exported as a single counter with aconditionattribute (nonzero/zero).Migration: Remove any
K6_OTEL_SINGLE_COUNTER_FOR_RATE=trueconfiguration. If you were using the old pair-of-counters format, update your dashboards and queries to use the single counter withconditionattribute instead.Removed
K6_BINARY_PROVISIONINGenvironment variable #5734The
K6_BINARY_PROVISIONINGenvironment variable, deprecated in v1.2.0, has been removed.Migration: Remove
K6_BINARY_PROVISIONINGfrom your environment. Auto-extension-resolution is enabled by default;K6_AUTO_EXTENSION_RESOLUTIONonly needs to be set explicitly if you want to disable it.Removed
K6_ENABLE_COMMUNITY_EXTENSIONSenvironment variable #5733The
K6_ENABLE_COMMUNITY_EXTENSIONSenvironment variable has been removed. The community and cloud extension catalogs were merged server-side, making this flag a no-op since the catalogs were unified.Migration: Remove
K6_ENABLE_COMMUNITY_EXTENSIONSfrom your environment. Community extensions are now resolved through the default build service URL automatically.Stack is now required for all
k6 cloudcommands #5833Providing a stack is now mandatory for all
k6 cloudcommands (k6 cloud run,k6 cloud upload,k6 cloud run --local-execution). Previously, omitting a stack would fall back to the first available stack with a deprecation warning — that fallback has been removed. Likewise,k6 cloud loginnow requires both a token and a stack; passing one without the other fails with an explicit error.Migration: Run
k6 cloud loginwhich will ask you for the stack and setup correctly for the new version of k6. Alternatively, theK6_CLOUD_STACK_IDenvironment variable, or thestackIDscript option are available to be set before running anyk6 cloudcommand .Removed legacy configuration file path migration #5609
k6 no longer automatically migrates configuration files from the old
{USER_CONFIG_DIR}/loadimpact/config.jsonpath introduced before k6 v1.0.0.Migration: If you still have a config file at the old path, move it to
{USER_CONFIG_DIR}/k6/config.json. You can also re-runk6 cloud loginto regenerate the file at the correct location.Cloud run non-threshold aborts now exit with code 97 #5769
Previously, most cloud abort scenarios returned an exit code of
0, making it impossible for CI pipelines to distinguish a failed run from a successful one. These scenarios now return exit code97.009999097Migration: Review any CI pipeline logic that treats exit code
0as success for cloud runs. Cloud runs that abort for reasons other than threshold violations will now return exit code97.Browser: FID metric removed, web vitals updated to v5.1.0 #5661
The
browser_web_vital_fidmetric has been removed. FID (First Input Delay) was deprecated as a Core Web Vital and replaced by INP (Interaction to Next Paint). The embedded web-vitals library has been updated from v3 to v5.1.0, which reflects this change.Migration: Update any dashboards, alerts, or threshold rules that reference
browser_web_vital_fidto usebrowser_web_vital_inpinstead.Dropped easyjson in favor of stdlib encoding/json (new since v2.0.0-rc1) #5853
k6 no longer uses
easyjsonfor JSON serialization. Several types in the public Go API previously had easyjson-generatedMarshalJSON/UnmarshalJSONmethods; those are now gone, replaced by stdlibencoding/json. This change was intentionally held until v2 to avoid a breaking change mid-cycle.Migration: Extension authors who relied on easyjson-generated methods on k6 types should remove those dependencies. Standard
encoding/jsonmarshaling applies to all affected types.HTTP API server no longer starts by default (new since v2.0.0-rc1) #5876
The k6 HTTP API server no longer starts automatically. Previously, k6 always listened on
localhost:6565unless opted out. The server now only starts when an address is explicitly provided via the--addressflag or theK6_ADDRESSenvironment variable.Migration: If you use the k6 REST API, pass
--address=localhost:6565(or any address) to re-enable the server.New features
Cloud secret source #5738
A new built-in secret source,
cloud, allows k6 scripts to retrieve secrets stored in Grafana Cloud directly during local execution. Pass--secret-source=cloudwhen runningk6 cloud run --local-executionto make cloud-managed secrets available to your script viasecrets.get(). Thanks, @vortegatorres!Cloud secret source enabled by default for local execution (new since v2.0.0-rc1) #5875
--secret-source=cloudis no longer required. When runningk6 cloud run --local-execution, the cloud secret source is now automatically available andsecrets.get()works out of the box.To opt out, pass
--no-cloud-secrets:k6 cloud project listcommand (new since v2.0.0-rc1) #5650A new
k6 cloud projectcommand group has been added, with ak6 cloud project listsubcommand for listing Grafana Cloud k6 projects. The output supports both human-readable table format and JSON (--format=json).Extension tab-completion provisioning #5761
When using shell tab-completion, pressing TAB after a fully-typed extension name (e.g.
k6 x docs <TAB>) will now automatically provision a custom binary with that extension and delegate the completion request to it. This means extension-specific flags and subcommands are available via tab-completion without any manual setup.Pre-manifest extension dependencies captured in archive metadata #5819
When creating a k6 archive (
k6 archive), extension dependency information is now captured inmetadata.jsonunder a"dependencies"field, using the constraints declared by the script before any external manifest overrides are applied. This ensures thatk6/x/imports are preserved correctly during auto-extension-resolution re-execution.UX improvements and enhancements
http.get()orhttp.head()receive extra arguments that are silently ignored, helping catch common scripting mistakes. Thanks, @moko-poi!newAction-based Locator APIs in the browser module, improving reliability of browser tests. Thanks, @janHildebrandt98!k6 x docshint to the main k6 help output for built-in documentation discovery. Thanks, @Reranko05!k6 x explorehint to the main k6 help output for extension discovery.K6_PROVISION_HOST_VERSION, so extension subcommands can correctly identify the caller's k6 version when showing docs or feature information.Bug fixes
v0.0.0+shaorv0.0.0-timestamp-sha), even when the running binary already satisfied the constraint.k6 cloud runTUI issues: ghost duplicate progress bars appearing after the run finishes, a timer that stalled and then jumped to 100%, and a stale timer racing with the status line.k6 cloud run --local-executionignoringK6_CLOUD_PUSH_REF_IDand unconditionally creating a new test run instead of reusing the provided run ID. Thanks, @Reranko05!bufferedAmountnot being incremented when sending TypedArrays, causing it to go negative. Thanks, @prakharbirla-ng!handleExitEventwhereDone()was signalled before the subscription was removed, causing tests to hang until the timeout.ElementHandle.DefaultTimeout(and any method that calls it, such asGetAttribute) when invoked on a nil or partially-initialized handle. Thanks, @SAY-5!Maintenance and internal improvements
TaskQueuefrom the externalgithub.com/mstoykov/k6-taskqueue-libintointernal/js/taskqueue, eliminating an awkward reverse dependency where the library's own tests depended on k6.internal/dashboard, making the web dashboard a built-in part of the k6 binary without requiring a separate extension. The dashboard is available viak6 run --out=web-dashboard.synctestpackage withinlib/executor, eventloop, timer,PeriodicFlusher,output/cloud, andoutput/cloud/expv2tests for virtualized time, improving test determinism and CI speed.go.opentelemetry.io/otel/exporters/otlp/otlptracehttpandotlpmetrichttptov1.43.0[security], adding a 4 MiB response body cap to mitigate memory exhaustion from misconfigured or malicious servers.go.opentelemetry.io/otelpackages.github.com/grafana/sobekdigest.github.com/grafana/k6-cloud-openapi-client-go.github.com/evanw/esbuildtov0.28.0.buf.build/gen/go/prometheusprotobuf.github.com/andybalholm/brotlitov1.2.1.examples/dependencies.github.com/fatih/colortov1.19.0.github.com/puerkitobio/goquerytov1.12.0.github.com/mattn/go-isattytov0.0.22.v1.25.10.github.com/grafana/k6providertov0.5.0.crazy-max/ghaction-chocolateytov4.actions/setup-goto4a36011.anchore/sbom-actiontov0.24.0.github/codeql-actiontov4.35.2.docker/login-actiontov4.1.0.grafana/shared-workflowsactions.actions/upload-artifact.v1.26.3).Connection: closeresponse.github.com/klauspost/compresstov1.18.5.golang.org/xpackages.v3.23.4.K6ModPathto the v2 module path in the k6provider config so that k6 v2 correctly signals to k6build which module to resolve against (go.k6.io/k6/v2).:latestor the GitHub "Latest release" marker. Adds a floating:vNDocker tag (e.g.grafana/k6:v1) for users who want to pin to a major line.golang.org/x/nettov0.53.0[security] (CVE-2026-33814).github.com/Masterminds/semver/v3tov3.5.0.github.com/Azure/go-ntlmssptov0.1.1.External contributors
A huge thank you to the external contributors who helped during this release: @moko-poi, @janHildebrandt98, @Reranko05, @prakharbirla-ng, @esquonk, @chrismooreproductions, @vortegatorres, @SAY-5, and @LBaronceli! 🙏
Configuration
📅 Schedule: (UTC)
* 0-3 1 * *)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
Need help?
You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.