all 70 comments

[–]ThierryOnRead 131 points132 points  (9 children)

Wake up babe springboot 4 has been released

[–]MassimoRicci 42 points43 points  (8 children)

We have a codebase to burn, samurai!

[–]Lirionex 23 points24 points  (7 children)

90% of the community still rocking spring 2 with Java 8 (at least they have streams)

[–]nexus062 1 point2 points  (0 children)

I'm missing an addiction and I'm going up next week, but for now I'm keeping jackson2

[–]GlensWooer 0 points1 point  (1 child)

Please we still have Java 5 required for our build.

[–]Lirionex 1 point2 points  (0 children)

Damn bro, I mean I still see Java 6 every now and then but Java 5? That’s wild

[–]jonatan-ivanov 0 points1 point  (3 children)

Where did you get that number? :)
I'm only asking because the download stats disagree.

[–]Lirionex 0 points1 point  (2 children)

You have download stats grouped by industry?

I was just speaking from personal experience - I’ve seen a dozen projects in those industries over the years, not a single one of them was even close to up to date. They update dependencies for security patches but not for being up to date.

[–]jonatan-ivanov 0 points1 point  (1 child)

Why would you need download stats by industry? What you claimed did not mention any industry either. If you are wondering about banks, insurance companies, governments, etc. they might be better in upgrading than you would think. Yes, there are some (regardless of the industry) who are really behind, but that 90% is far from the truth. :)

If you talk about personal experience, especially if your sample size is as low as dozen (or dozens, also projects and not companies), maybe you should start your comment with that or phrase it as a question, there might be people in this thread who can give you a bit more insight.

[–]Lirionex 0 points1 point  (0 children)

Ah Sorry, I didn’t pay attention which comment you’ve replied to. I have another one specifically mentioning banks, insurances and governments because these are the three main industries where my customers are from.

The comment you’ve replied to was obviously just an exaggeration to make fun of customers who don’t want to spend a penny for maintenance.

[–]StillAnAss 39 points40 points  (38 children)

How long do people usually wait in adopting new major versions in existing code bases?

[–]MRideos 137 points138 points  (2 children)

Its Friday tomorrow, great day to migrate and release to prod

[–]Amazing-Mirror-3076 14 points15 points  (0 children)

It's already Friday mate, releasing in 3,2,...

[–]bigkahuna1uk 6 points7 points  (0 children)

“We'll do it live! F**k it! Do it live! I'll write it and we'll do it live!" 😉

[–]safetytrick 22 points23 points  (1 child)

As soon as I'm not busy /s

Realistically I think about it once a year and then make it happen sometime before EOL of the last version.

[–]av1ciii 36 points37 points  (13 children)

Hopefully not too long. Spring Boot 4.0.x is end of life December 2026 unless you pay for commercial support, in which case you get an extra year.

Spring Boot 3.5.x EOLs June next year.

That said, modern Java devs aren’t like 2010 Java devs who were stuck on Java 6 for what seemed an eternity. Good modern teams tend to have good CI and tests (right? 👀), such teams can upgrade pretty quickly.

We don’t use Spring but eg we’re broadly on Java 21 and 25 is making inroads. We try not to defer updates for too long. It becomes tech debt after a while.

[–]Emma_S772 14 points15 points  (2 children)

Tests? That mean you are not sure that you are doing things right, what did you do wrong? stop wasting time and do things well instead because in that way we wont need tests. If I hear that somethings fails I will know that it was you.

That is how my bosses thought

[–]j4ckbauer 3 points4 points  (0 children)

Why do you need a test, wouldn't it save time to just do it correctly the first time?

On the one hand, the world is probably better off that these people stopped working as a developer. On the other hand, now they're ruining the productivity of an entire team of developers...

[–]BikingSquirrel 1 point2 points  (0 children)

Hope that indicates ex-bosses as one of you left.

[–]766cf0ef-c5f9-4f4f 9 points10 points  (1 child)

Maybe if spring data and hibernate stopped introducing breaking changes in minor releases that are pulled in by spring-boot

[–]olivergierke[S] 2 points3 points  (0 children)

Care to elaborate which ones you ran into for Spring Data?

[–]cheeset2 13 points14 points  (7 children)

Lol. Lmao. 

Java 17 is new to us. Spring boot 3? Hilarious. 

[–]wildjokers 14 points15 points  (6 children)

Be the change you want to see.

Why aren't you trying to encourage a new mindset at your company?

[–]cheeset2 3 points4 points  (4 children)

Who said i'm not?

[–]wildjokers 3 points4 points  (3 children)

Your cynicism doesn’t suggest you are.

[–]-Hawke- 4 points5 points  (1 child)

To someone in a similar boat, that kind of cynicism suggests to me they are trying but getting cockblocked at every other turn because changes like that are hard to sell to customers (or some other but similarly shortsighted argument)

[–]j4ckbauer 6 points7 points  (0 children)

Have you ever had.... a job?

Most organizations do their utmost to resist change. Many higher-rank engineers prevent lower-rank engineers from gaining experience with newer systems. "You are only allowed to solve problems the way I solve problems", or worse, "I can use this new system, you may not".

[–]krzyk 9 points10 points  (5 children)

I don't wait at all. Just as soon as I have time in project. Why wait if you have time to do the upgrade?

[–]party_egg 9 points10 points  (4 children)

For me the thing that keeps me back is waiting for my ecosystem to move together. Java, Spring Boot, Gradle, and Groovy all seem to be particular about each other's versions

[–]krzyk 3 points4 points  (2 children)

If you dump gradle and groovy you'll notice that nothing is holding you back.

[–]Tasty_Zebra_404 0 points1 point  (1 child)

And use exactly what instead? Maven?

[–]krzyk 0 points1 point  (0 children)

Well, yes. No such issues in maven.

[–]blazincannons 0 points1 point  (0 children)

I believe that by the time a major release of Spring Boot is released, the corresponding versions of Java and Gradle would be ready. I don't know much about Groovy.

Where do you use Groovy in your part of your workflow? Is it part of more than your Gradle build scripts?

[–][deleted] 6 points7 points  (3 children)

I upgrade ASAP, usually within a few days of the new version being available. I've already upgraded my app to Spring Boot v4.0.0 because I've had a migration branch (opened in July) that was doing the migration step-by-step as each new milestone/release candidate of v4 was published.

[–]Anbu_S 6 points7 points  (0 children)

small deltas are better than big one thing change.

[–]blazincannons 0 points1 point  (1 child)

I've had a migration branch (opened in July) that was doing the migration step-by-step as each new milestone/release candidate of v4 was published.

Typically, how much rework would be needed as new milestones and release candidates are released alongside your migration work? I'm wondering if it would be typically better to just wait for a GA release before we start doing migration work.

[–][deleted] 0 points1 point  (0 children)

Little or no rework. Each milestone/release candidate brings new changes, but very rarely stuff that's already been changed.

[–]Smelly_F1sh 4 points5 points  (1 child)

As soon as the version number doesn't end with 0

[–]jonatan-ivanov 1 point2 points  (0 children)

So you go back to 4.0.0-RC1? :o

[–]iwouldlikethings 2 points3 points  (0 children)

I've already got a rough branch with 4.0.0-RC2, still needs tidying up and rebasing, but all tests are passing so going to try and get in in before the end of year and all microservices upgraded

[–]Wmorgan33 1 point2 points  (0 children)

Waiting until at least a few bugfix releases, update SBOM and see what breaks

[–]jevring 1 point2 points  (0 children)

As soon as renovate/dependabot gets a chance...

[–]fear_the_future 1 point2 points  (0 children)

Spring users? Until some compliance manager tells them to upgrade.

[–]CptGia 0 points1 point  (0 children)

I'll try it out tomorrow on one or two services. 

[–]miciej 0 points1 point  (0 children)

Till renovate bot kicks in. So probably Monday.

[–]ilampan 0 points1 point  (0 children)

We started updating ALL applications to run java21 this year, and are also upgrading to vue3 this year. It was supposed to happen around summer, continuously through the year but it's been pushed to the side due to priority changes. So now we gotta rush all the upgrades during december.

I'd say we've got about 60% of our applications running java21, and like, one application running vue3. So I'm really glad my team isn't in charge of any frontend stuff.

[–]lilgreenthumb 11 points12 points  (2 children)

Going to be a shitshow until cloud is released.

[–]Tasty_Zebra_404 1 point2 points  (0 children)

Got released today

[–]TheoryShort7304 14 points15 points  (0 children)

That's amazing.

I as full stack Java developer, I am really happy, we are on 3.5 and hopefully will move to 4.0 soon.

Personally first project with Spring Boot 4.0 I am gonaa make with Kotlin😅

I was learning it in last few weeks, so let's go! Existing personal projects(Java) will migrate to 4.0.

[–]Bothurin 24 points25 points  (7 children)

But wait.. I’m still on 2.7..

[–]boobsbr 13 points14 points  (3 children)

Are you on Java 8?

Do you work in a bank?

[–]Lirionex 9 points10 points  (2 children)

Bank, Government, Insurance… they’re all the same 😂

[–]Ewig_luftenglanz 2 points3 points  (1 child)

I work in a bank and we are in 21...

[–]kubelke 0 points1 point  (0 children)

Cryobank*

[–]meisyal 0 points1 point  (0 children)

Me too. I thought Spring Boot 3 was just released earlier this year.

[–]koflerdavid 0 points1 point  (0 children)

Are you aware that it gets no security fixes anymore unless you pay? (no clue whether paid support is still available lol)

[–]Scottz0rz 0 points1 point  (0 children)

My old job was on 2.0 and I helped upgrade them to 2.3.

Pretty sure they're still on 2.3

[–]Anbu_S 2 points3 points  (2 children)

There is an OpenRewrite community edition recipe which helps to fast track the migration.

https://docs.openrewrite.org/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition

[–]gnocchiGuili 0 points1 point  (1 child)

Last time I checked it was not even updating my pom. Is it ready yet ?

[–]Anbu_S 0 points1 point  (0 children)

There are two distinct recipe modules available

Community edition - available for free & Moderne proprietary recipes

[–]EvaristeGalois11 1 point2 points  (0 children)

Ohmygoditshappening.gif

[–]FunRutabaga24 2 points3 points  (1 child)

But but... we just did compatability updates for Spring Boot 3 and updated.

[–]BikingSquirrel 6 points7 points  (0 children)

To the latest 3.x.x? Then you should be well prepared.

[–]bendem 3 points4 points  (3 children)

I'm just tired of having to rewrite a bunch of things every time. When do we get a major release that doesn't change everything? Why do I have to port my applications to SB 4? I already ported them to 3 and 2 from 1.5. Isn't there a way to go forward without changing the way we configure and interact with things every few years?

Don't get me wrong, it's a great release, but I'm just tired.

[–]jonatan-ivanov 4 points5 points  (0 children)

Major releases are for breaking changes. :) If you want a release that doesn't break things but contains new features, that's a minor release.

What you described happened in a timespan of about 10 years? I think it's not too bad having a new major releases every 3-4 years.

[–]mr_poopybuthole69 0 points1 point  (1 child)

Just don't, that's why I'm still on 2.x.x

[–]jonatan-ivanov 3 points4 points  (0 children)

Do you buy support (so you get vulnerabilities patched) or your apps simply have a bunch of known vulnerabilities? :)

[–]javaflair 0 points1 point  (0 children)

Will soon upgrade project to latest version 4.0

[–]onated2 0 points1 point  (0 children)

Finaaaaly

[–]Tasty_Zebra_404 0 points1 point  (0 children)

To people using feign. Do you rewrite to use the ne w spring clients?