To elaborate on what @sterretje wrote, this message is about the decision of the maintainers of the 3rd party "esp32" boards platform to drop support for the "BluetoothSerial" library bundled with that platform in a future release of the "esp32" platform:
This has absolutely nothing to do with Arduino IDE. Arduino IDE just displays whatever messages are produced by compiling the code of the sketch program. The developers of the "esp32" platform chose to configure their code to produce this deprecation message, so Arduino IDE displays that message.
Breaking Changes in Arduino IDE
Arduino IDE development is done with a strong focus on backwards compatibility for user projects. You can load up a sketch project from a decade ago in Arduino IDE 2.x, install the decade old platform and library dependencies that sketch was developed with, and you will be able to compile and upload that sketch without any problems, even though the Arduino IDE 2.x project didn't even exist at that time. I specified "decade ago" because there was a breaking change in the boards platform structure in 2014:
so it is true that you won't be able to use a boards platform from prior to 2014 with the modern Arduino IDE, unless you made some fairly minor modifications to the structure of that platform. However, when it comes to sketches and libraries, the backwards compatibility is much deeper.
There was some breakage of compatibility in the Arduino IDE 1.0.0 release in 2011 (note that Arduino IDE was technically considered to be in a beta development phase before that time). As far as I recall, there wasn't actually any breakage in the Arduino IDE application itself. The breakage was instead the renaming of a file named WProgram.h in the "Arduino AVR Boards" platform. Even though the platform is a distinct component from the Arduino IDE application, it was distributed with the Arduino IDE installation at that time, as this was prior to the decoupling of platform distribution that came with the introduction of the Boards Manager feature. The renamed file was referenced by many libraries, so this did cause breakage. Fortunately the fix was trivial: simply updating the filename in the #include directive of the affected libraries from WProgram.h to the new name Arduino.h.
So you don't need to be concerned that updating the version of Arduino IDE you have installed on your computer is going to break your projects. Any such breakage that did occur would likely be caused by an accidental bug rather than an intentional change. However, the development of individual boards platforms and libraries may be conducted in a manner that is much less conservative in regards to backwards compatibility. I do recommend trying to always keep your platforms and libraries up to date, so that you can benefit from the enhancements and fixes that are introduced through the ongoing development of those projects. However, it is worth checking to see what changes might be introduced by installing an update.
Getting Information About an Update From the Version Number
When a developer follows best practices, you can get an idea of the nature of an update by looking at the change to the version number that would result from performing the update. There is a formal specification for the meaning of version numbers, called SemVer. A SemVer-compliant version number will always have the following essential components:
<major>.<minor>.<patch>
For example: 1.2.3
In the case of a pre-release version, the version number will have the following format:
<major>.<minor>.<patch>-<pre-release identifier>
For example, 1.2.3-rc.1
If a project is maintained in compliance with SemVer, the versioning will provide the following information that is important to a user performing an update:
- If the update results in a change to the major component of the version number (e.g.,
3.3.8 -> 4.0.0), then the update will introduce breaking changes to the API of the software. You should carefully evaluate the impact of such updates on the dependent projects.
- If the update results in a change to the minor component of the version number (e.g.,
3.3.8 -> 3.4.0), then the update will introduce new components to the API of the software, but not change the existing API components. You may want to evaluate whether the newly introduced components could be useful in your projects, but the update is not expected to cause any breakage to dependent projects.
- If the update results in a change to the patch component of the version number (e.g.,
3.3.8 -> 3.3.9), then the update does not introduce any changes to the API of the software. The update may fix bugs or introduce improvements, but is not expected to cause any breakage to dependent projects.
- If the update introduces a pre-release component to the version number (e.g.,
3.3.8 -> 3.3.9-rc.1), then you are switching to an unstable development version of the software that is only intended to be used for beta testing. The information above regarding the primary version number components will still apply regarding the expected impact of the update, but these versions may contain inadvertent changes that have impact other than what is implied by the primary components.
You will note that the "esp32" platform maintainers are planning to make the breaking change of dropping BluetoothSerial library support in the 4.0.0 release of the platform. So the change of the major component of the version number would communicate to you that updating to that version of the platform will introduce such breaking changes.