zonkyio / embedded-database-spring-test

A library for creating isolated embedded databases for Spring-powered integration tests.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Q]: Any plans to update testcontainers?

superdrenner opened this issue · comments

Are there any plans to update to the latest version of testcontainers-java? Newer versions support DOCKER_AUTH_CONFIG environment variables which would be really nice to have.

Are you facing any specific problem? Because I tried upgrading the version manually in a demo project and it worked fine, even with the newest versions of Testcontainers. So, if there's a specific error, could you please attach the log here? It would give me a better idea of where the problem might be.

@tomix26 I'm not having a problem, I would just like to not have to override the version of testcontainers when using Zonky. Testcontainers 1.17 is a few years old and they've added new features since that release.

You don't need to override the version of testcontainers when using the zonky database, as the current version 1.17.6 already supports all the features required by the library. New features, such as the DOCKER_AUTH_CONFIG variable, are not essential for its proper functioning, and the library cannot take advantage of them.

Furthermore, there's a reason to be cautious about upgrading to the latest versions too quickly. Doing so could lead to version conflicts in version management systems like Gradle, which selects the highest version available in the dependency tree. This might cause compatibility issues with other libraries that depend on the same but older versions of a dependency.

Therefore, if there's a real reason to upgrade (due to compatibility issues, vulnerabilities, etc.), please let me know, and I'll be happy to upgrade it. Otherwise, I'd prefer to keep the versions slightly behind to avoid potential issues. This conservative approach is also applied to Spring and other dependencies.

In the next major update, I could redefine all these dependencies as runtime dependencies to ensure better separation from the target projects. This would mean that if you wanted to use testcontainers in your project for your business, you would have to explicitly define the dependency with the version you need. Now you should be doing the same, but it's not so obvious.

DOCKER_AUTH_CONFIG works automatically when I override the version of testcontainers. People who use Gitlab actually need to use that variable for testcontainers to function properly.

Being cautions is one thing but using dependencies that are years behind is another. Spring Boot 3 will be out soon and there is also Spring 6, will those not be supported for years too?

You can always upgrade to the required version manually. The library contains a lot of tests guaranteeing runtime compatibility with newer versions as well. They are just not chosen as the default ones. Cheers.