Skip to content
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

[HTTP] Default to oldest in dev #203225

Merged
merged 5 commits into from
Dec 17, 2024

Conversation

jloleysens
Copy link
Contributor

@jloleysens jloleysens commented Dec 6, 2024

Summary

Changes the default HTTP version resolution in dev to oldest (matches non-dev).

The original intention was to guide developers to always sending a versioned header when interacting with Kibana. In practice, however, developers just set-and-forget the following configuration to get around this annoyance:

server.versioned.versionResolution: 'oldest'

...undoing the original intention. Having this guidance does not justify the confusion/annoyance that this dev-only default creates and so this proposal simply removes it.

To better guide developers we can consider other options like: make version required in core's HTTP client interface (lots of updates...), doing something in tests, adding docs, something else or any combo of these.

Given the fact that developers generally discover this workaround and undo the originally intended guidance, I'm proposing not blocking on first having another approach in place.

@jloleysens jloleysens added discuss Feature:http Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc release_note:skip Skip the PR/issue when compiling release notes v9.0.0 backport:version Backport to applied version labels v8.18.0 labels Dec 6, 2024
@jloleysens jloleysens requested a review from a team as a code owner December 6, 2024 10:44
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-core (Team:Core)

@elasticmachine
Copy link
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #104 / Entity Manager _count API is resilient to no valid sources

Metrics [docs]

✅ unchanged

History

@jloleysens jloleysens merged commit c1bda1d into elastic:main Dec 17, 2024
8 checks passed
@jloleysens jloleysens deleted the http/versioned-resolution-in-dev branch December 17, 2024 16:10
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/12376919228

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Dec 17, 2024
## Summary

Changes the default HTTP version resolution in dev to `oldest` (matches
non-dev).

The original intention was to guide developers to always sending a
versioned header when interacting with Kibana. In practice, however,
developers just set-and-forget the following configuration to get around
this annoyance:

```yaml
server.versioned.versionResolution: 'oldest'
```

...undoing the original intention. Having this guidance does not justify
the confusion/annoyance that this dev-only default creates and so this
proposal simply removes it.

To better guide developers we can consider other options like: make
`version` required in core's HTTP client interface (lots of updates...),
doing something in tests, adding docs, something else or any combo of
these.

Given the fact that developers generally discover this workaround and
undo the originally intended guidance, I'm proposing not blocking on
first having another approach in place.

(cherry picked from commit c1bda1d)
@kibanamachine
Copy link
Contributor

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

stephmilovic pushed a commit that referenced this pull request Dec 17, 2024
# Backport

This will backport the following commits from `main` to `8.x`:
- [[HTTP] Default to `oldest` in dev
(#203225)](#203225)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Jean-Louis
Leysens","email":"jeanlouis.leysens@elastic.co"},"sourceCommit":{"committedDate":"2024-12-17T16:10:34Z","message":"[HTTP]
Default to `oldest` in dev (#203225)\n\n## Summary\r\n\r\nChanges the
default HTTP version resolution in dev to `oldest`
(matches\r\nnon-dev).\r\n\r\nThe original intention was to guide
developers to always sending a\r\nversioned header when interacting with
Kibana. In practice, however,\r\ndevelopers just set-and-forget the
following configuration to get around\r\nthis
annoyance:\r\n\r\n```yaml\r\nserver.versioned.versionResolution:
'oldest'\r\n```\r\n\r\n...undoing the original intention. Having this
guidance does not justify\r\nthe confusion/annoyance that this dev-only
default creates and so this\r\nproposal simply removes it.\r\n\r\nTo
better guide developers we can consider other options like:
make\r\n`version` required in core's HTTP client interface (lots of
updates...),\r\ndoing something in tests, adding docs, something else or
any combo of\r\nthese.\r\n\r\nGiven the fact that developers generally
discover this workaround and\r\nundo the originally intended guidance,
I'm proposing not blocking on\r\nfirst having another approach in
place.","sha":"c1bda1d50145f764956de9ed8557bd21f6ba136f","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["discuss","Feature:http","Team:Core","release_note:skip","v9.0.0","backport:version","v8.18.0"],"title":"[HTTP]
Default to `oldest` in
dev","number":203225,"url":"https://github.com/elastic/kibana/pull/203225","mergeCommit":{"message":"[HTTP]
Default to `oldest` in dev (#203225)\n\n## Summary\r\n\r\nChanges the
default HTTP version resolution in dev to `oldest`
(matches\r\nnon-dev).\r\n\r\nThe original intention was to guide
developers to always sending a\r\nversioned header when interacting with
Kibana. In practice, however,\r\ndevelopers just set-and-forget the
following configuration to get around\r\nthis
annoyance:\r\n\r\n```yaml\r\nserver.versioned.versionResolution:
'oldest'\r\n```\r\n\r\n...undoing the original intention. Having this
guidance does not justify\r\nthe confusion/annoyance that this dev-only
default creates and so this\r\nproposal simply removes it.\r\n\r\nTo
better guide developers we can consider other options like:
make\r\n`version` required in core's HTTP client interface (lots of
updates...),\r\ndoing something in tests, adding docs, something else or
any combo of\r\nthese.\r\n\r\nGiven the fact that developers generally
discover this workaround and\r\nundo the originally intended guidance,
I'm proposing not blocking on\r\nfirst having another approach in
place.","sha":"c1bda1d50145f764956de9ed8557bd21f6ba136f"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/203225","number":203225,"mergeCommit":{"message":"[HTTP]
Default to `oldest` in dev (#203225)\n\n## Summary\r\n\r\nChanges the
default HTTP version resolution in dev to `oldest`
(matches\r\nnon-dev).\r\n\r\nThe original intention was to guide
developers to always sending a\r\nversioned header when interacting with
Kibana. In practice, however,\r\ndevelopers just set-and-forget the
following configuration to get around\r\nthis
annoyance:\r\n\r\n```yaml\r\nserver.versioned.versionResolution:
'oldest'\r\n```\r\n\r\n...undoing the original intention. Having this
guidance does not justify\r\nthe confusion/annoyance that this dev-only
default creates and so this\r\nproposal simply removes it.\r\n\r\nTo
better guide developers we can consider other options like:
make\r\n`version` required in core's HTTP client interface (lots of
updates...),\r\ndoing something in tests, adding docs, something else or
any combo of\r\nthese.\r\n\r\nGiven the fact that developers generally
discover this workaround and\r\nundo the originally intended guidance,
I'm proposing not blocking on\r\nfirst having another approach in
place.","sha":"c1bda1d50145f764956de9ed8557bd21f6ba136f"}},{"branch":"8.x","label":"v8.18.0","branchLabelMappingKey":"^v8.18.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Jean-Louis Leysens <jeanlouis.leysens@elastic.co>
JoseLuisGJ pushed a commit to JoseLuisGJ/kibana that referenced this pull request Dec 19, 2024
## Summary

Changes the default HTTP version resolution in dev to `oldest` (matches
non-dev).

The original intention was to guide developers to always sending a
versioned header when interacting with Kibana. In practice, however,
developers just set-and-forget the following configuration to get around
this annoyance:

```yaml
server.versioned.versionResolution: 'oldest'
```

...undoing the original intention. Having this guidance does not justify
the confusion/annoyance that this dev-only default creates and so this
proposal simply removes it.

To better guide developers we can consider other options like: make
`version` required in core's HTTP client interface (lots of updates...),
doing something in tests, adding docs, something else or any combo of
these.

Given the fact that developers generally discover this workaround and
undo the originally intended guidance, I'm proposing not blocking on
first having another approach in place.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:version Backport to applied version labels discuss Feature:http release_note:skip Skip the PR/issue when compiling release notes Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc v8.18.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants