Upgrade 1.0.6 to 1.3.23 (the latest 1.X)

47 views
Skip to first unread message

Jingjing Duan

unread,
May 26, 2020, 1:41:41 AM5/26/20
to dropwizard-user
Hi Folks,

How feasible is it to upgrade from DW 1.0.6 to 1.3.23? In other words, how backward-compatible are DW 1.X series? Does DW roughly follow semantic versioning?

Long story, we have a pretty large monorepo for backend Java service(100s of them) built on top of DW and it's been running on 1.0.6 for a few years now. One big reason that pushes us to upgrade now is that many services want to bring up newer versions of external libraries and often times they run into trouble. Take "jackson" for example, a lot services want to consume newer versions of jackson but DW 1.0.6 only works with jackson up to certain versions. There might be a hard version conflict of jackson.

This can also prevent feature development. A service may want to use some shiny, new ML library and if that library only works with latest "guava", they may not be able to do so because newer versions of guava may not work with DW 1.0.6.

Has anyone had experience upgrading an old 1.X version to the latest 1.X? Mind sharing? Thanks!

Ryan Kennedy

unread,
May 26, 2020, 11:12:12 AM5/26/20
to dropwiz...@googlegroups.com
1.0.6 is long enough ago (>3 years) that I don’t have good anecdotal memory of what might have been broken. Dependabot thinks Dropwizard’s semver is generally pretty good (98% 
https://dependabot.com/compatibility-score/?dependency-name=io.dropwizard%3Adropwizard-core&package-manager=maven&version-scheme=semver
https://dependabot.com/compatibility-score/?dependency-name=io.dropwizard%3Adropwizard-core&package-manager=maven&version-scheme=semver), but it doesn’t have much information from version to version (especially not 1.0.6 -> 1.3.23).

Do you have continuous integration and (if so) how much do you feel you can trust it? I suspect a fair number of things will turn up relatively early during compilation. While I don’t think many (if any) Dropwizard interfaces have changed from 1.0 to 1.3, it’s possible that a shared dependency may not have fared as well. If you also have tests that start your application up (e.g.
https://www.dropwizard.io/en/release-1.3.x/manual/testing.html#integration-testing) then you may pick up changes around configurations, reflection-based code (including META-INF style services).

My gut says it’s very feasible. But if I were in your position I’d put together a few carefully placed integration tests prior to the upgrade to help detect the more subtle ways things might break.

Ryan

--
You received this message because you are subscribed to the Google Groups "dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dropwizard-us...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dropwizard-user/4ec822f0-6775-40b8-8b13-ccc9c3cab507%40googlegroups.com.

siraj

unread,
May 26, 2020, 11:47:23 AM5/26/20
to dropwizard-user
We had to pin to 1.3.3 until 2.0 because whatever came after 1.3.3 broke something so we had to roll back everything. 
We are now on 2.0 and have been on it for a 2-3 months. 

Jingjing Duan

unread,
May 26, 2020, 12:06:04 PM5/26/20
to dropwiz...@googlegroups.com
Hi Ryan,

Thanks for your response!

What I've done so far is that I ran "gradle testClasses" for all the projects, which compiles all source code as well as test code, without actually running the tests. The result so far is pretty encouraging. Looks like there are a handful broken things (mockito being the biggest one, some imports don't work) and they can be fixed relatively easily.

We do have a large set of tests (unit and integration) and I expect some of them will fail. I'll report back once I get there.

For folks maintaining DW 1.X series, I appreciate them taking backward compatibility seriously!



--
Cheers,
Jingjing Duan

Jingjing Duan

unread,
May 26, 2020, 12:48:24 PM5/26/20
to dropwizard-user
Hi Siraj,

Thanks for sharing your experience! I'll keep that in mind.

Jochen Schalanda

unread,
May 26, 2020, 4:46:24 PM5/26/20
to dropwiz...@googlegroups.com
Hi,

1.0.6 is long enough ago (>3 years) that I don’t have good anecdotal memory of what might have been broken. Dependabot thinks Dropwizard’s semver is generally pretty good (98% 

Additionally to these third party statistics, we also track binary compatibility for the various Dropwizard and Dropwizard Metrics modules ourselves at https://dropwizard.github.io/abi-compliance/.



Cheers,
Jochen

Jingjing Duan

unread,
May 26, 2020, 5:07:20 PM5/26/20
to dropwiz...@googlegroups.com
Thanks, Jochen!

The compatibility page looks super useful. Looks like it compares with only the previous version. For example: https://dropwizard.github.io/abi-compliance/archives_report/dropwizard-core/1.0.6/1.3.23/report.html doesn't seem to work.

That being said, given that https://dropwizard.github.io/abi-compliance/timeline/dropwizard-core/index.html shows all 100% compatibility for 1.X series, can I assume that any 1.X versions are backward compatible with all the previous versions?

Appreciate your input!

--
You received this message because you are subscribed to the Google Groups "dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dropwizard-us...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages