-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
k6 dependencies update policy discussion #1933
Comments
I agree with most of everything you wrote, with the following exceptions:
I also created and pinned an issue about our intention to slowly shift the kafka output to an xk6 extension: #1934 |
I updated the original comment with the proposed changes @na-- |
Updated table after updates:
|
This is to freeze dependncies that we don't want to update as explained in #1933 (comment)
This is to freeze dependncies that we don't want to update as explained in #1933 (comment)
I am closing this as it seems all the things needing discussing were discussed and we have also dropped most of the dependencies we wanted. Going forward the above table can/should be used as a guide/suggestions on whether a dependency should be updated, but a per case care should be taken. |
This is to freeze dependncies that we don't want to update as explained in grafana/k6#1933 (comment)
edit: updated table in comment to preserve history better
I make this issue to discuss whether we will be updating each dependency and on what ... schedule.
I would argue that while some dependencies are super important and later versions likely fix bugs and performance problems and it is worth our time updating them, others are either ones that we want to drop or are used in a single place for a single task and because of some specificity there is no point updating it regularly or at all.
In none of the cases, this means that a given library MUST be updated blindly or MUST NOT be updated if there turns out to be a good reason. Just that updating some libraries probably has more relevance than others and given our limited resources taking the time to update all of them constantly and fixing problems is probably not ... wanted.
Additionally, while I would prefer if some scripts are added to make this easier, I am definitely against this breaking the CI or preventing a release.
Goja
Goja is probably one of the bigger exceptions. It is what we use to run javascript and as any improvement can turn out to have a considerable either positive or negative impact on k6 we practically have to update it constantly. So even if something that we don't particularly care about is added/fixed we probably should update to it at least once each release cycle. In reality, there has been something useful more or less every month so we have been updating it constantly.
golang.org/x/*
While those libraries are not part of the golang stdlib they either get embed in it in different forms or are the natural extension. They also happen to have a branch for each release so my proposal is to just update to the new branch each time we update the golang version so we follow it. Or even just at the beginning of each release just in case.
Given their ubiquity in general I don't expect it will be breaking constantly. If anything not updating x/net has turned out to be problematic albeit because we were at an extreme not updating it ...
Others:
The list below is what it was in go.mod and I am listing the
indirect
just for ease of checking against the go.mod.Post factum the categories are :
never for now1-2 a year as we still need to update itk6/html
mostly, probably something that should be updated given that it has chances to introduce performance and compatibility fixes, but is probably somewhat riskysarama
and then figure out whether we will be using something like that. We currently don't vendor it as it is only used in teststestify
and ink6 convert test
k6/html
and the "bridge", likely not a problem to update, but also probably not very usefulk6/http
, probably good idea to keep updating, wonder but we some review as this could be breaking changesk6 stop/resume/stats/...
...The text was updated successfully, but these errors were encountered: