[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-07 Thread Imre Jonk via hibernate-dev
On Thu, 2022-06-02 at 11:52 -0500, Steve Ebersole wrote:
> Let me know what y'all think -
> https://github.com/hibernate/hibernate-orm/wiki/Huge-Project,-Small-Team

Looks really good! Like I said in my previous email, it is good to see
the public/private API distinction documented. The 'qualifier' being
sortable is also nice, hadn't noticed that.

In theory, if our developers haven't used any 'internal' or
'incubating' stuff in their code, then I guess that the 6.0 -> 6.1
update (and all future updates until 7.0) should be a drop-in
replacement for us. That would be awesome.


signature.asc
Description: This is a digitally signed message part
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-07 Thread Imre Jonk via hibernate-dev
On Thu, 2022-06-02 at 07:37 -0500, Steve Ebersole wrote:
> > But in the end, given a large enough userbase, every
> > (documented or undocumented) behavior of an API is being relied
> > upon by someone, meaning that every change will break someone's
> > workflow: https://xkcd.com/1172/
> 
> Extrapolating what you say, we could never fix bugs because that
> buggy behavior is "being relied upon by someone".  I simply reject
> that.  Fairly sure that is not what you are saying, but this has been
> my point throughout this conversation - words are important. 
> Especially when you start talking about expectations across a large
> number of people.

Well I did not say that you "could never fix bugs", just that a bugfix
has a certain probability of being a breaking change for some user out
there. As your userbase grows, that probability approaches 1.

Semantic Versioning actually recognizes this issue: in the
introduction, the authors state that for SemVer to work, you must first
declare a public API, then communicate changes to it using the version
number. That way, a "backwards-compatible bugfix" is truly backwards
compatible for users that strictly implement your public API.

From what I've seen in the documentation, it looks like Hibernate now
has a clear distinction between the public and private API (you
describe this in "Huge Project, Small Team" [1]). So, kudos :)

[1]
https://github.com/hibernate/hibernate-orm/wiki/Huge-Project,-Small-Team#internal

> > I meant that the Hibernate developers once in a while have to
> > say to each other "Let's stop backporting fixes for release series
> > x.y. People have had enough time to upgrade, now let's spend the
> > time we save on things in our roadmap".
> 
> Sure, but that's the thing.  That is reactive, not proactive. 
> Consider the current 5.x -> 6.x situation again... What most people
> who ask this stuff really want is, as soon as 6.0 is released, some
> date when 5.x will become unsupported.  But that is not something we
> are ever going to do - it is impossible.

Yeah, I guess you're right. We'll just have to live with that.

> We are lucky in that we have a wonderful community, many of whom are
> very helpful in the early shake out of these new releases.  E.g., we
> had a lot of testing and feedback of 6.0 well before it went Final.

That indeed sounds very helpful. I wish that my company had the
resources to help out with beta-testing...

> > > As you plan moving to 6.0, definitely check out the Jakarta
> > > Transformer to help automate some of the tedious Java Persistence
> > > to Jakarta Persistence move.
> > 
> > Thanks! I'm passing this on to our developers.
> 
> They can also use the transformer config files Christian wrote for
> our own migration efforts.

Noted, thanks!


signature.asc
Description: This is a digitally signed message part
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-02 Thread Christian Beikov

Looks great, thanks for writing that up!

Am 02.06.2022 um 18:52 schrieb Steve Ebersole:

Let me know what y'all think -
https://github.com/hibernate/hibernate-orm/wiki/Huge-Project,-Small-Team

On Thu, Jun 2, 2022 at 7:37 AM Steve Ebersole  wrote:


I think we generally agree and understand each other here.


On Thu, Jun 2, 2022 at 6:32 AM Imre Jonk via hibernate-dev <
hibernate-dev@lists.jboss.org> wrote:


This sounds a lot like how we do our version numbering as well. We try
to be as backward-compatible as possible with new "y" (minor) and
particularly the "z" (patch) releases, and try to put all the breaking
changes in the "x" (major) releases. But in the end, given a large
enough userbase, every (documented or undocumented) behavior of an API
is being relied upon by someone, meaning that every change will break
someone's workflow: https://xkcd.com/1172/


Extrapolating what you say, we could never fix bugs because that buggy
behavior is "being relied upon by someone".  I simply reject that.  Fairly
sure that is not what you are saying, but this has been my point throughout
this conversation - words are important.  Especially when you start talking
about expectations across a large number of people.


Depends on your definition of a "major version" ;)
Yep, we are back to words being important :D

I've already documented here what we consider a major version and its
implications; so you know my definition.




I meant that the Hibernate developers once in a while have to say to
each other "Let's stop backporting fixes for release series x.y. People
have had enough time to upgrade, now let's spend the time we save on
things in our roadmap".


Sure, but that's the thing.  That is reactive, not proactive.  Consider
the current 5.x -> 6.x situation again... What most people who ask this
stuff really want is, as soon as 6.0 is released, some date when 5.x will
become unsupported.  But that is not something we are ever going to do - it
is impossible.


I now see the end-of-life warnings on the 5.0, 5.1, 5.2, 5.4 and 5.5

release pages! Did you just add those? They are great! I think this
gives a very clear signal to anyone still using those versions that
they are now quite overdue on their updates.


We discussed it and Yoann added that stuff.  Thanks Yoann!


This has some overlap with human psychology. Someone should probably do

a study on this. They could start with looking at what happened when
Python 2's end-of-life date was finally announced... (you are probably
well aware, but if not: everyone was dragging their feet until the
announcement, which caused an enormous acceleration in the Python 3
transition).


Not a Python developer[1], so not really familiar with that specifically;
but it is a common enough situation in software development.  It  also
probably meant that Python 3 was not as thoroughly tested as it could have
been prior to that accelerated migration.

We are lucky in that we have a wonderful community, many of whom are very
helpful in the early shake out of these new releases.  E.g., we had a lot
of testing and feedback of 6.0 well before it went Final.



As you plan moving to 6.0, definitely check out the Jakarta

Transformer to help automate some of the tedious Java Persistence to
Jakarta Persistence move.

Thanks! I'm passing this on to our developers.


They can also use the transformer config files Christian wrote for our own
migration efforts[2].

[1] I had to develop in Jython for almost a year once and REFUSE to ever
do anything Python related ever again ;)
[2]
https://github.com/hibernate/hibernate-orm/tree/ff9e9eebc9992c7bc9128e9bf33d4b51b2bee7a4/rules




___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-02 Thread Steve Ebersole
Let me know what y'all think -
https://github.com/hibernate/hibernate-orm/wiki/Huge-Project,-Small-Team

On Thu, Jun 2, 2022 at 7:37 AM Steve Ebersole  wrote:

> I think we generally agree and understand each other here.
>
>
> On Thu, Jun 2, 2022 at 6:32 AM Imre Jonk via hibernate-dev <
> hibernate-dev@lists.jboss.org> wrote:
>
>>
>> This sounds a lot like how we do our version numbering as well. We try
>> to be as backward-compatible as possible with new "y" (minor) and
>> particularly the "z" (patch) releases, and try to put all the breaking
>> changes in the "x" (major) releases. But in the end, given a large
>> enough userbase, every (documented or undocumented) behavior of an API
>> is being relied upon by someone, meaning that every change will break
>> someone's workflow: https://xkcd.com/1172/
>
>
> Extrapolating what you say, we could never fix bugs because that buggy
> behavior is "being relied upon by someone".  I simply reject that.  Fairly
> sure that is not what you are saying, but this has been my point throughout
> this conversation - words are important.  Especially when you start talking
> about expectations across a large number of people.
>
>
> Depends on your definition of a "major version" ;)
>>
>
> Yep, we are back to words being important :D
>
> I've already documented here what we consider a major version and its
> implications; so you know my definition.
>
>
>
>> I meant that the Hibernate developers once in a while have to say to
>> each other "Let's stop backporting fixes for release series x.y. People
>> have had enough time to upgrade, now let's spend the time we save on
>> things in our roadmap".
>>
>
> Sure, but that's the thing.  That is reactive, not proactive.  Consider
> the current 5.x -> 6.x situation again... What most people who ask this
> stuff really want is, as soon as 6.0 is released, some date when 5.x will
> become unsupported.  But that is not something we are ever going to do - it
> is impossible.
>
>
> I now see the end-of-life warnings on the 5.0, 5.1, 5.2, 5.4 and 5.5
>> release pages! Did you just add those? They are great! I think this
>> gives a very clear signal to anyone still using those versions that
>> they are now quite overdue on their updates.
>>
>
> We discussed it and Yoann added that stuff.  Thanks Yoann!
>
>
> This has some overlap with human psychology. Someone should probably do
>> a study on this. They could start with looking at what happened when
>> Python 2's end-of-life date was finally announced... (you are probably
>> well aware, but if not: everyone was dragging their feet until the
>> announcement, which caused an enormous acceleration in the Python 3
>> transition).
>>
>
> Not a Python developer[1], so not really familiar with that specifically;
> but it is a common enough situation in software development.  It  also
> probably meant that Python 3 was not as thoroughly tested as it could have
> been prior to that accelerated migration.
>
> We are lucky in that we have a wonderful community, many of whom are very
> helpful in the early shake out of these new releases.  E.g., we had a lot
> of testing and feedback of 6.0 well before it went Final.
>
>
> > As you plan moving to 6.0, definitely check out the Jakarta
>> > Transformer to help automate some of the tedious Java Persistence to
>> > Jakarta Persistence move.
>>
>> Thanks! I'm passing this on to our developers.
>
>
> They can also use the transformer config files Christian wrote for our own
> migration efforts[2].
>
> [1] I had to develop in Jython for almost a year once and REFUSE to ever
> do anything Python related ever again ;)
> [2]
> https://github.com/hibernate/hibernate-orm/tree/ff9e9eebc9992c7bc9128e9bf33d4b51b2bee7a4/rules
>
>
>
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-02 Thread Steve Ebersole
I think we generally agree and understand each other here.


On Thu, Jun 2, 2022 at 6:32 AM Imre Jonk via hibernate-dev <
hibernate-dev@lists.jboss.org> wrote:

>
> This sounds a lot like how we do our version numbering as well. We try
> to be as backward-compatible as possible with new "y" (minor) and
> particularly the "z" (patch) releases, and try to put all the breaking
> changes in the "x" (major) releases. But in the end, given a large
> enough userbase, every (documented or undocumented) behavior of an API
> is being relied upon by someone, meaning that every change will break
> someone's workflow: https://xkcd.com/1172/


Extrapolating what you say, we could never fix bugs because that buggy
behavior is "being relied upon by someone".  I simply reject that.  Fairly
sure that is not what you are saying, but this has been my point throughout
this conversation - words are important.  Especially when you start talking
about expectations across a large number of people.


Depends on your definition of a "major version" ;)
>

Yep, we are back to words being important :D

I've already documented here what we consider a major version and its
implications; so you know my definition.



> I meant that the Hibernate developers once in a while have to say to
> each other "Let's stop backporting fixes for release series x.y. People
> have had enough time to upgrade, now let's spend the time we save on
> things in our roadmap".
>

Sure, but that's the thing.  That is reactive, not proactive.  Consider the
current 5.x -> 6.x situation again... What most people who ask this stuff
really want is, as soon as 6.0 is released, some date when 5.x will become
unsupported.  But that is not something we are ever going to do - it is
impossible.


I now see the end-of-life warnings on the 5.0, 5.1, 5.2, 5.4 and 5.5
> release pages! Did you just add those? They are great! I think this
> gives a very clear signal to anyone still using those versions that
> they are now quite overdue on their updates.
>

We discussed it and Yoann added that stuff.  Thanks Yoann!


This has some overlap with human psychology. Someone should probably do
> a study on this. They could start with looking at what happened when
> Python 2's end-of-life date was finally announced... (you are probably
> well aware, but if not: everyone was dragging their feet until the
> announcement, which caused an enormous acceleration in the Python 3
> transition).
>

Not a Python developer[1], so not really familiar with that specifically;
but it is a common enough situation in software development.  It  also
probably meant that Python 3 was not as thoroughly tested as it could have
been prior to that accelerated migration.

We are lucky in that we have a wonderful community, many of whom are very
helpful in the early shake out of these new releases.  E.g., we had a lot
of testing and feedback of 6.0 well before it went Final.


> As you plan moving to 6.0, definitely check out the Jakarta
> > Transformer to help automate some of the tedious Java Persistence to
> > Jakarta Persistence move.
>
> Thanks! I'm passing this on to our developers.


They can also use the transformer config files Christian wrote for our own
migration efforts[2].

[1] I had to develop in Jython for almost a year once and REFUSE to ever do
anything Python related ever again ;)
[2]
https://github.com/hibernate/hibernate-orm/tree/ff9e9eebc9992c7bc9128e9bf33d4b51b2bee7a4/rules
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-02 Thread Imre Jonk via hibernate-dev
On Wed, 2022-06-01 at 08:21 -0500, Steve Ebersole wrote:
> > You can find our support policy here if you are interested:
> > https://www.ciphermail.com/documentation/faq/support-policy.html
> 
> That seems very similar to the one I wrote for Hibernate.  I do see
> now that ours is probably a bit unclear, specifically in terms of
> how we view the different version components.  I'll update that.

Great!

> The synopsis - consider the version x.y.z -
> 
>    1. `x` is a major version which identifies a "significant"
>    change.  The implications range from changes to external
>contracts to removal of deprecated stuff to new features.  Often
>they will have limited backwards compatibility.
>    2. `y` indicates new feature(s), which are not "disruptive" to
>    applications.  All `y` for a given `x` are collectively called a
>family. Within a family there will be compatibility  - always at
>the API level. And we strive to maintain compatibility at the
>SPI (integration) level, though we do sometimes change these when
>absolutely necessary.
>    3. `z` includes just bug-fixes

This sounds a lot like how we do our version numbering as well. We try
to be as backward-compatible as possible with new "y" (minor) and
particularly the "z" (patch) releases, and try to put all the breaking
changes in the "x" (major) releases. But in the end, given a large
enough userbase, every (documented or undocumented) behavior of an API
is being relied upon by someone, meaning that every change will break
someone's workflow: https://xkcd.com/1172/

And so we try, but we can't always succeed. I imagine that this is a
much harder problem to tackle for a project with such a large (and
diverse) userbase as Hibernate.

> Things we identify as incubating, internal, etc also affect this. 
> And in fact, with 6.0 I started to formalize this - see
> https://docs.jboss.org/hibernate/orm/6.0/incubating/incubating.txt an
> d
> https://docs.jboss.org/hibernate/orm/6.0/internals/internal.txt
> 
> But that still does not help with time frames per-se...

That sounds like a good approach, dividing the codebase up allows you
to maintain a different compatibility policy based on what part some
piece of code belongs to.

> > Thing is, somewhere in every release cycle, the Hibernate
> > developers have to make a decision when they stop providing
> > backported fixes. Right now that decision is made on an ad-hoc
> > basis (if I'm not mistaken).
> 
> Some well chosen words here ;)

Heh, yeah, I am not the person working with Hibernate ORM in my
organization, my colleagues and I don't know anything about how it's
developed and so I have to resort to my limited understanding and
assumptions...

> * "~somewhere~ in every release cycle" - Well, not every release
> cycle.  As we transition to major versions that is true(ish).  I
> think that is what you probably meant, but just to be clear.

Depends on your definition of a "major version" ;)
I meant that the Hibernate developers once in a while have to say to
each other "Let's stop backporting fixes for release series x.y. People
have had enough time to upgrade, now let's spend the time we save on
things in our roadmap".

I now see the end-of-life warnings on the 5.0, 5.1, 5.2, 5.4 and 5.5
release pages! Did you just add those? They are great! I think this
gives a very clear signal to anyone still using those versions that
they are now quite overdue on their updates.

> * "ad-hoc basis" - That is not the phrase I would choose necessarily,
> but not far off.  It is more that we do not know until we know.  Take
> 5.6 and 6.0... the elephant in the room there is the move from Java
> Persistence to Jakarta Persistence, which is way out of our control. 
> But it has a major impact on applications.. Not all "EE" spec impls,
> let alone libraries, have made that transition yet which puts
> applications in a bind.  Because of that it is impossible to give a
> date when 5.x will no longer be supported.

You are right. I think my suggestion to "just tell people when you are
going to stop backporting fixes" was a bit shortsighted. That *is* hard
to do in advance. As I mentioned in my previous email, we too had
similar issues to consider and it took us many months to come up with
some form of policy.

I think that many people drag their feet on software updates, and will
simply not perform the update unless they get an immediate benefit out
of it. The addition of a specific feature that they desire is one such
benefit, as is the availability of better (and current) documentation
or other (support) resources. But I think the biggest driver for change
is continued (security, bug) fixes, and the earlier they know when
their current version stops receiving those, the earlier they update.
This is largely how my organization goes about these things anyway.

This has some overlap with human psychology. Someone should probably do
a study on this. They could start with looking at what happened when

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-01 Thread Steve Ebersole
Happened to be doing my morning email purge and this luckily came in at
just that time :D


On Wed, Jun 1, 2022 at 7:32 AM Imre Jonk via hibernate-dev <
hibernate-dev@lists.jboss.org> wrote:

> Hi Steve,
> You can find our
> support policy here if you are interested:
> https://www.ciphermail.com/documentation/faq/support-policy.html


That seems very similar to the one I wrote for Hibernate.  I do see now
that ours is probably a bit unclear, specifically in terms of how we view
the different version components.  I'll update that.

The synopsis - consider the version x.y.z -


   1. `x` is a major version which identifies a "significant" change.  The
   implications range from changes to external contracts to removal of
   deprecated stuff to new features.  Often they will have limited backwards
   compatibility.
   2. `y` indicates new feature(s), which are not "disruptive" to
   applications.  All `y` for a given `x` are collectively called a family.
   Within a family there will be compatibility  - always at the API level.
   And we strive to maintain compatibility at the SPI (integration) level,
   though we do sometimes change these when absolutely necessary.
   3. `z` includes just bug-fixes

Things we identify as incubating, internal, etc also affect this.  And in
fact, with 6.0 I started to formalize this - see
https://docs.jboss.org/hibernate/orm/6.0/incubating/incubating.txt and
https://docs.jboss.org/hibernate/orm/6.0/internals/internal.txt

But that still does not help with time frames per-se...

Thing is, somewhere in every release cycle, the Hibernate developers
> have to make a decision when they stop providing backported fixes.
> Right now that decision is made on an ad-hoc basis (if I'm not
> mistaken).


Some well chosen words here ;)

* "~somewhere~ in every release cycle" - Well, not every release cycle.  As
we transition to major versions that is true(ish).  I think that is what
you probably meant, but just to be clear.
* "ad-hoc basis" - That is not the phrase I would choose necessarily, but
not far off.  It is more that we do not know until we know.  Take 5.6 and
6.0... the elephant in the room there is the move from Java Persistence to
Jakarta Persistence, which is way out of our control.  But it has a major
impact on applications.. Not all "EE" spec impls, let alone libraries, have
made that transition yet which puts applications in a bind.  Because of
that it is impossible to give a date when 5.x will no longer be supported.

As you plan moving to 6.0, definitely check out the Jakarta Transformer to
help automate some of the tedious Java Persistence to Jakarta Persistence
move.
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-06-01 Thread Imre Jonk via hibernate-dev
Hi Steve,

Thanks for the kind reply, I'm glad we could clear things up a bit. I
felt quite bad about the miscommunication and have been blaming myself
for it.

On Tue, 2022-05-31 at 11:48 -0500, Steve Ebersole wrote:
> Before I was lucky enough to get paid for working on Hibernate, I
> worked on it in my free time.

Congratulations on managing to get paid for developing free and open-
source software, that is no small feat! We too have a FOSS community
edition of our product, but the lion's share of the work is being done
in the proprietary enterprise extensions that bring in the money for
us.

> But we used it at the company I worked for at the time.  I often
> ended up using custom builds, though generally that was more
> "forward facing" as I generally wanted features or fixes I was
> working on that were maybe not ready for a community release.
> 
> I also have done it with projects that I was not part of the
> development of. In fact, I still do as I had to do some of this
> with the move to Jakarta EE and the fact that not all of the
> libraries we use were updated for Jakarta at the time.
> 
> So I have done it. As do many others. Not arguing, it's just an
> interesting topic.

I'm familiar with the practice of modifying FOSS so that a feature for
internal (company) use can be implemented. We do that as well with some
projects. It always turns out to be harder than expected to properly
upstream the changes, and unfortunately we don't manage to do it often.
Also sometimes a change you make is so specialized that upstream has no
use for it, and neither party benefits. Sometimes you just have to
maintain the internal fork.

> Many developers I think also shy away from this with Hibernate
> specifically because of FUD over the LGPL.

Tell me about it. We have recently started a review of our license
compliance, to see if we still meet all our obligations towards the
licensors of the FOSS we use. This is quite hard for the small company
I work for. I am the IT ops guy, but now I do legal as well. Lots of
FUD indeed.

> > (If it isn't clear by now, I am a big proponent of updating
> > software in a timely manner instead of feet-dragging until you
> > drown in "upgrade debt".)
> 
> Awesome!  I like the phrase too!

Thanks :)
Now I wish that all our (CipherMail) users would have a similar
attitude. Despite our efforts, not everyone is on a version that we
provide active support for. I think you feel the same with Hibernate.

We are actively encouraging our users to keep upgrading, mostly by
making upgrading as simple as reasonably possible, writing upgrade
guides, discussing upgrade strategies with customers and helping our
users to plan their upgrades with a support policy. You can find our
support policy here if you are interested:
https://www.ciphermail.com/documentation/faq/support-policy.html

> I put the X there deliberately. It is not at all my place to make
> > decisions on this; how long users of older versions should
> > receive bugfixes, and indeed if they should receive updates at all,
> > is something that only the Hibernate developers can decide on.
> 
> But that's the problem.  There is not a hard and fast rule.  There
> is no single 'X'.  Only a Sith thinks in absolutes ;)  I joke (my
> daughter and I were watching some Star Wars last night, so just fresh
> in my mind).

Haha :)
If it makes you feel any better, we didn't have anything like the
support policy linked above for a long time. The result was that we
made all kinds of promises to customers that were in hindsight either
too vague or too hard to keep. Writing down this support policy was no
easy task and caused quite a bit of internal discussion (also with our
support and sales partners), but in the end we are still very glad that
we did.

> Maybe a better solution would be to somehow earmark this on the
> release pages.  E.g. https://hibernate.org/orm/releases/5.4/. 
> Maybe a new "status" in addition to "development" and "stable".  I am
> not the website guru though so that is something the team would need
> to discuss.
> 
> It does not alleviate the "when" aspect, but honestly I do not
> foresee that happening.  Too many variables and we are generally too
> busy doing actual development.
> 
> Open to suggestions though.

I can relate to the "many variables" part.

Thing is, somewhere in every release cycle, the Hibernate developers
have to make a decision when they stop providing backported fixes.
Right now that decision is made on an ad-hoc basis (if I'm not
mistaken). Some releases get backported fixes for a much longer time
than other releases. And that's fine, but because there is no support
intention written down anywhere, it will cause people to speculate
about those intentions. As I explain below, that speculation can be a
bit dangerous.

>>
https://github.com/hibernate/hibernate-orm/wiki/Huge-Project,-Small-Team
> 
> Ah, thanks!  I thought I had written that down, but could not find
> it :D
> 
> We have a slightly 

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-05-31 Thread Steve Ebersole
On Tue, May 31, 2022 at 11:18 AM Imre Jonk via hibernate-dev <
hibernate-dev@lists.jboss.org> wrote:

>
> I think the reality is that people who use software that has been
> declared end-of-life by their suppliers often don't backport it
> themselves. I've unfortunately seen enough cases of this happening...


Before I was lucky enough to get paid for working on Hibernate, I worked on
it in my free time.  But we used it at the company I worked for at the
time.  I often ended up using custom builds, though generally that was more
"forward facing" as I generally wanted features or fixes I was working on
that were maybe not ready for a community release.

I also have done it with projects that I was not part of the development
of.  In fact, I still do as I had to do some of this with the move to
Jakarta EE and the fact that not all of the libraries we use were updated
for Jakarta at the time.

So I have done it.  As do many others.  Not arguing, it's just an
interesting topic.  Many developers I think also shy away from this with
Hibernate specifically because of FUD over the LGPL.


(If it isn't clear by now, I am a big proponent of updating software in
> a timely manner instead of feet-dragging until you drown in "upgrade
> debt".)
>

Awesome!  I like the phrase too!


I put the X there deliberately. It is not at all my place to make
> decisions on this; how long users of older versions should receive
> bugfixes, and indeed if they should receive updates at all, is
> something that only the Hibernate developers can decide on.
>

But that's the problem.  There is not a hard and fast rule.  There is no
single 'X'.  Only a Sith thinks in absolutes ;)  I joke (my daughter and I
were watching some Star Wars last night, so just fresh in my mind).


The uncertainty comes from not knowing whether the Hibernate release
> someone is using will receive backported fixes or not. I did not mean
> to extrapolate that to all users. Maybe I should have put "uncertainty
> among some Hibernate users" there as I do not in fact know whether many
> users experience this uncertainty. However, I am not the first one to
> voice this uncertainty, so it is not just *my* uncertainty either:
>

Maybe a better solution would be to somehow earmark this on the release
pages.  E.g. https://hibernate.org/orm/releases/5.4/.  Maybe a new "status"
in addition to "development" and "stable".  I am not the website guru
though so that is something the team would need to discuss.

It does not alleviate the "when" aspect, but honestly I do not foresee that
happening.  Too many variables and we are generally too busy doing actual
development.

Open to suggestions though.


I just noticed the backporting information linked to in that second
> forum thread, here:
> https://github.com/hibernate/hibernate-orm/wiki/Huge-Project,-Small-Team


Ah, thanks!  I thought I had written that down, but could not find it :D

We have a slightly different definition of version naming though it follows
the semantics of semantic versioning.  6.1 has new features, so strictly
following semantic versioning it should be named 7.0.  So sure, we could
rename 6.1 to 7.0 and have these "nonsense major versions", but really what
does that gain anyone?

Anyway, that's all to say I still cannot give you a date.  I can say
probably not before the end of summer.  5.6 is interesting because there is
one consumer (Quarkus) currently using it that we want to support.  But
they have not yet made the move to Jakarta so cannot use 6.x yet.  For what
it is worth...
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-05-31 Thread Imre Jonk via hibernate-dev
Hi Steve, I have a feeling that there is a slight misunderstanding
here, for which I'm sorry. Please allow me to clarify some things.

On Tue, 2022-05-31 at 07:31 -0500, Steve Ebersole wrote:
> The reality is that we are a very small team - it is simply not
> feasible to maintain that many branches[1].

Of course. I myself work in a small team as well, I know that it is
really hard to support old software versions. We hardly offer extended
support to our own users as well.

> [1] Though really, point me to any project / product the size and
> complexity of Hibernate, not to mention user base, that supports as
> many code bases for free that you are asking.

I am not asking that at all. Sorry if it seemed that way, it was not at
all my intention.

I can imagine that Hibernate developers sometimes receive demanding
requests from users who want free long-term support. I despise that,
and I am well aware of the fact that the company I work for uses
Hibernate under a gratis license, without any warranty whatsoever.
Also, I have a lot of respect for people who put their spare time in a
free- and open source project (as does the company I work for).

> You are not asking about "time to upgrade" anyway, in my opinion. 
> You are asking about removing the need to upgrade, which is very
> different.

No! I am not asking that at all! I am just trying to manage the
expectations of my team members and helping them to upgrade to
Hibernate 6 in a timely manner. At the same time I am trying to provide
some feedback to the Hibernate developers.

> Us stopping support for 5.6 does not mean you can no longer use
> 5.6.  It simply means we (this very tiny team) will no longer back-
> port changes.
> You can continue to use it; and in fact, since it is open source,
> you can even continue to do these back-ports yourself.

I think the reality is that people who use software that has been
declared end-of-life by their suppliers often don't backport it
themselves. I've unfortunately seen enough cases of this happening...

(If it isn't clear by now, I am a big proponent of updating software in
a timely manner instead of feet-dragging until you drown in "upgrade
debt".)

> As for a statement on the website, I'm not sure exactly what that
> would look like.  Your suggestion is just vague.  "X months"?  How
> many months is that?  2?  24?  Big difference.

I put the X there deliberately. It is not at all my place to make
decisions on this; how long users of older versions should receive
bugfixes, and indeed if they should receive updates at all, is
something that only the Hibernate developers can decide on.

> E.g., you realize 6.0 was released exactly 2 months ago to the day
> right[2][3]?  That is "months" already.  And I have already said we
> will continue to support 5.6 for the time being, so that will be
> "months"++.  The rest of your statement is in fact exactly what we
> do already[4].  I'm not against adding something to the website if
> it helps clarify things, but that wording is not it.
> [2] https://in.relation.to/2022/03/31/orm-60-final/
> [3] That was 6.0.0.Final.  Including CR releases (which I do) its
> been many, many months.
> [4] 6.0 has been out for months. 6.1 is about to be released.  And we
> are still supporting 5.6.

Sure. I'm not making any demands here. It is great that 5.6 will still
receive updates for some time. My suggestion is just that the Hibernate
developers put some statement on the website regarding what to expect
in terms of backporting. The text I provided was just an example.

If you would say that Hibernate devs would stop backporting fixes for
5.6 tomorrow, then I can make a compelling case to my colleagues that
they should prioritize the upgrade to 6.0, meaning that we would
upgrade earlier. But right now there is no such statement at all,
meaning that it is hard to make this case, which results in us not
deciding on prioritizing our upgrade. I hope this makes sense.

> P.S. To be fair, by "reduce doubt among Hibernate users" you mean
> *your* "doubt".  Which is fine, but let's not extrapolate that to
> all Hibernate users.

Sorry, I think the word 'uncertainty' instead of 'doubt' would have
been the better choice. English is not my first language...

The uncertainty comes from not knowing whether the Hibernate release
someone is using will receive backported fixes or not. I did not mean
to extrapolate that to all users. Maybe I should have put "uncertainty
among some Hibernate users" there as I do not in fact know whether many
users experience this uncertainty. However, I am not the first one to
voice this uncertainty, so it is not just *my* uncertainty either:

-
https://discourse.hibernate.org/t/hibernate-orm-versions-end-of-life-details/6354
- https://discourse.hibernate.org/t/end-of-life-hibernate/2772

I just noticed the backporting information linked to in that second
forum thread, here:
https://github.com/hibernate/hibernate-orm/wiki/Huge-Project,-Small-Team

However, the 

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-05-31 Thread Steve Ebersole
The reality is that we are a very small team - it is simply not feasible to
maintain that many branches[1].

You are not asking about "time to upgrade" anyway, in my opinion.  You are
asking about removing the need to upgrade, which is very different.  Us
stopping support for 5.6 does not mean you can no longer use 5.6.  It
simply means we (this very tiny team) will no longer back-port changes.
You can continue to use it; and in fact, since it is open source, you can
even continue to do these back-ports yourself.

As for a statement on the website, I'm not sure exactly what that would
look like.  Your suggestion is just vague.  "X months"?  How many months is
that?  2?  24?  Big difference.  E.g., you realize 6.0 was released exactly
2 months ago to the day right[2][3]?  That is "months" already.  And I have
already said we will continue to support 5.6 for the time being, so that
will be "months"++.  The rest of your statement is in fact exactly what we
do already[4].  I'm not against adding something to the website if it helps
clarify things, but that wording is not it.

P.S. To be fair, by "reduce doubt among Hibernate users" you mean *your*
"doubt".  Which is fine, but let's not extrapolate that to all Hibernate
users.


[1] Though really, point me to any project / product the size and
complexity of Hibernate, not to mention user base, that supports as many
code bases for free that you are asking.
[2] https://in.relation.to/2022/03/31/orm-60-final/
[3] That was 6.0.0.Final.  Including CR releases (which I do) its been
many, many months.
[4] 6.0 has been out for months. 6.1 is about to be released.  And we are
still supporting 5.6.
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-05-31 Thread Imre Jonk via hibernate-dev
On Mon, 2022-05-30 at 09:35 -0500, Steve Ebersole wrote:
> There is not a hard date.  Not in the immediate future is the best
> I can say at the moment.

Thanks for your reply, Steve. It would be nice if 5.6 continues to
receive bugfixes for some time. That would allow us to further validate
our recent update to 5.6 and prepare for the upgrade to 6.0 (or 6.1
when it's out).

I can't find any statement on the Hibernate ORM website on this topic,
but I see that 5.2 hasn't had updates since November 2018, while 5.3
received an update only last month. That would suggest that 5.3 is
still somewhat supported. I understand from beikov's comment on the
Hibernate forum that this is because of a commercial offering:
https://discourse.hibernate.org/t/hibernate-orm-versions-end-of-life-details/6354/2

Would it be an idea to publish a policy on the website that clearly
describes how long one can expect bugfix updates after a new release? I
imagine this would help Hibernate users to plan their upgrades, and
also serves as an encouragement to keep up with Hibernate releases,
potentially preventing some people from keeping unsupported versions in
use. Something like "The Hibernate developers strive to support each
Hibernate release series for X months after a newer series has been
released, to allow Hibernate users some time to upgrade".

I think this would also reduce doubt among Hibernate users regarding
the support status of the versions they have in use, as well as reduce
"update fatigue" by allowing users to better plan their updates, and
allow the Hibernate developers to save some time responding to
questions like mine on the forum and mailing list ;)

Anyway, thanks for considering.

Imre


signature.asc
Description: This is a digitally signed message part
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[hibernate-dev] Re: Hibernate ORM 5: end-of-life and upgrading

2022-05-30 Thread Steve Ebersole
There is not a hard date.  Not in the immediate future is the best I can
say at the moment.



On Mon, May 30, 2022 at 3:54 AM Imre Jonk via hibernate-dev <
hibernate-dev@lists.jboss.org> wrote:

> Hi there,
>
> We're very excited about the Hibernate ORM 6.0 release! Our developers
> have looked at upgrading our copy from 5.6 to 6.0, but they consider
> 6.0 "not yet stable enough" (no idea if that's justified) and have had
> some issues with the upgrade guide. They estimate the upgrade to take
> about ten man-days. That's all the feedback I have right now,
> unfortunately.
>
> We want to schedule our upgrade to Hibernate 6 ideally before the
> Hibernate developers stop backporting bug fixes to the 5.x branches.
> Could you make a rough prediction when that would be, so that we and
> others looking at Hibernate 6 can schedule their upgrade?
>
> Thanks a lot,
>
> --
> Imre Jonk
> IT Automation Engineer
> CipherMail B.V.
>
> ___
> hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
> To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
hibernate-dev mailing list -- hibernate-dev@lists.jboss.org
To unsubscribe send an email to hibernate-dev-le...@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s