[[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>>.

coming::[8.0.0]

[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.

NOTE: Breaking changes introduced in minor versions are
normally limited to security and bug fixes.
Significant changes in behavior are deprecated in a minor release and
the old behavior is supported until the next major release.
To find out if you are using any deprecated functionality,
enable <<deprecation-logging, deprecation logging>>.

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/rest-api-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.

NOTE: Significant changes in behavior are deprecated in a minor release and
the old behavior is supported until the next major release.
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[]
