[[migrating-8.0]]
== Migrating to 8.0
++++
<titleabbrev>8.0</titleabbrev>
++++

This section discusses the changes that you need to be aware of when migrating
your application to {es} 8.0.

See also <<release-highlights>> and <<es-release-notes>>.

[discrete]
[[breaking-changes-8.0]]
=== Breaking changes

The following changes in {es} 8.0 might affect your applications
and prevent them from operating normally.
Before upgrading to 8.0, review these changes and take the described steps
to mitigate the impact.

include::migrate_8_0/cluster-node-setting-changes.asciidoc[]
include::migrate_8_0/command-line-tool-changes.asciidoc[]
include::migrate_8_0/index-setting-changes.asciidoc[]
include::migrate_8_0/java-api-changes.asciidoc[]
include::migrate_8_0/jvm-option-changes.asciidoc[]
include::migrate_8_0/logging-changes.asciidoc[]
include::migrate_8_0/mapping-changes.asciidoc[]
include::migrate_8_0/packaging-changes.asciidoc[]
include::migrate_8_0/painless-changes.asciidoc[]
include::migrate_8_0/plugin-changes.asciidoc[]
include::migrate_8_0/rest-api-changes.asciidoc[]
include::migrate_8_0/sql-jdbc-changes.asciidoc[]
include::migrate_8_0/system-req-changes.asciidoc[]
include::migrate_8_0/transform.asciidoc[]

[discrete]
[[deprecated-8.0]]
=== Deprecations

The following functionality has been deprecated in {es} 8.0
and will be removed in a future version.
While this won't have an immediate impact on your applications,
we strongly encourage you take the described steps to update your code
after upgrading to 8.0.

To find out if you are using any deprecated functionality,
enable <<deprecation-logging, deprecation logging>>.

//NOTE: The notable-breaking-changes tagged regions are re-used in the
//Installation and Upgrade Guide
//tag::notable-breaking-changes[]
[discrete]
[[breaking_80_cluster_node_setting_deprecations]]
==== Cluster and node setting deprecations

[[deprecate-transient-cluster-settings]]
.We no longer recommend using transient cluster settings.
[%collapsible]
====
*Details* +
We no longer recommend using transient cluster settings. Use persistent cluster
settings instead. If a cluster becomes unstable, transient settings can clear
unexpectedly, resulting in an undesired cluster configuration.

*Impact* +
Transient cluster settings are not yet deprecated, but we plan to deprecate them
in a future release. For migration steps, see the
{ref}/transient-settings-migration-guide.html[Transient settings migration
guide].
====

[discrete]
[[breaking_80_command_line_tool_deprecations]]
==== Command line tool deprecations

TIP: {ess-skip-section}

[[deprecate-elasticsearch-setup-passwords]]
.The `elasticsearch-setup-passwords` tool is deprecated.
[%collapsible]
====
*Details* +
The `elasticsearch-setup-passwords` tool is deprecated in 8.0. To
manually reset the password for built-in users (including the `elastic` user), use
the {ref}/reset-password.html[`elasticsearch-reset-password`] tool, the {es}
{ref}/security-api-change-password.html[change passwords API], or the
User Management features in {kib}.
`elasticsearch-setup-passwords` will be removed in a future release.

*Impact* +
Passwords are generated automatically for the `elastic` user when you start {es} for the first time. If you run `elasticsearch-setup-passwords` after
starting {es}, it will fail because the `elastic`
user password is already configured.
====
//end::notable-breaking-changes[]

include::migrate_8_0/migrate_to_java_time.asciidoc[]
include::transient-settings-migration-guide.asciidoc[]
