I am working on an application which works with an old version of a dependency. Due to a recent change request, there is a need to update to a newer version.
I have the option of not upgrading to the latest version and only upgrading to an intermediate version because the required functionality is available in the intermediate version(if I upgrade to the latest version, the change will be much bigger). What approach should I take in this scenario? Should I upgrade to the latest version or to the intermediate version? And if I upgrade to an intermediate version, should I upgrade to the maximum version that is compatible with the codebase or to the minimum version that has the functionality I need?
To add more context, the library is Apache POI. The application depends on 3.10.1, and the latest is 3.14. Although the version change is a minor version change, due to some refactoring (classes moved/renamed) the changes are not backward compatible.