partial upgrade to the latest release

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

partial upgrade to the latest release

Ilya Obshadko
My application still runs on 5.4-beta-6 due to various breaking component
changes introduced in later versions. I'm quite happy with it, but I'm
getting concerned about outdated upstream dependencies (like Hibernate).

So I did the following:

   - upgraded everything to 5.4.5, adding tapestry-core to exclusions
   - added tapestry-core 5.4-beta-6 as a separate Maven dependency and
   excluded its upstream dependencies to other components.

Full dependency tree:

[*INFO*] com.xdance:eventdirector:jar:1.73

[*INFO*] +- org.apache.tapestry:tapestry-hibernate:jar:5.4.5:compile

[*INFO*] |  \- org.apache.tapestry:tapestry-hibernate-core:jar:5.4.5:compile

[*INFO*] |     \- org.apache.tapestry:tapestry-ioc:jar:5.4.5:compile

[*INFO*] |        +- org.apache.tapestry:tapestry-func:jar:5.4.5:compile

[*INFO*] |        +-
org.apache.tapestry:tapestry5-annotations:jar:5.4.5:compile

[*INFO*] |        +- org.apache.tapestry:plastic:jar:5.4.5:compile

[*INFO*] |        \- org.apache.tapestry:beanmodel:jar:5.4.5:compile

[*INFO*] |           \- org.apache.tapestry:commons:jar:5.4.5:compile

[*INFO*] +- org.apache.tapestry:tapestry-upload:jar:5.4.5:compile

[*INFO*] +- org.apache.tapestry:tapestry-javadoc:jar:5.4.5:provided

[*INFO*] +- org.apache.tapestry:tapestry-kaptcha:jar:5.3.7:compile

[*INFO*] +- org.apache.tapestry:tapestry-json:jar:5.4.5:compile

[*INFO*] \- org.apache.tapestry:tapestry-core:jar:5.4-beta-6:compile


The resulting hybrid of 5.4.5 and 5.4-beta-6 seems to work fine (although I
didn't test everything yet).

I have a question to Thiago, Lance and other committers - do you guys see
any potential issues with this approach? Anything I might be missing?

On a related note: would it be possible to consider releasing
*tapestry-corelib* (core components) as a completely separate artifact?
This would make the maintenance a ton easier for edge cases like mine (when
updating to the latest components has a prohibitive cost).

Sincerely,
--
Ilya Obshadko
Reply | Threaded
Open this post in threaded view
|

Re: partial upgrade to the latest release

Thiago H de Paula Figueiredo
Hello!

On Sat, Feb 29, 2020 at 6:31 AM Ilya Obshadko <[hidden email]> wrote:

> My application still runs on 5.4-beta-6 due to various breaking component
> changes introduced in later versions.


The ones in the other thread? If not, please post them here so we can
discuss them.


> I'm quite happy with it, but I'm
> getting concerned about outdated upstream dependencies (like Hibernate).
>

Please file a Jira ticket about them.


> So I did the following:
>
>    - upgraded everything to 5.4.5, adding tapestry-core to exclusions
>    - added tapestry-core 5.4-beta-6 as a separate Maven dependency and
>    excluded its upstream dependencies to other components.
>
The resulting hybrid of 5.4.5 and 5.4-beta-6 seems to work fine (although I
> didn't test everything yet).
>
> I have a question to Thiago, Lance and other committers - do you guys see
> any potential issues with this approach? Anything I might be missing?
>

I don't see any potential issues, although I wouldn't guarantee they
wouldn't happen, even if I think the probability is very low.


> On a related note: would it be possible to consider releasing
> *tapestry-corelib* (core components) as a completely separate artifact?
> This would make the maintenance a ton easier for edge cases like mine (when
> updating to the latest components has a prohibitive cost).
>

This is something we can do and it's been already suggested by someone else
in this mailing list which likes the Tapestry support for webapps (request
filters, dispatchers, resource support, etc), but doesn't actually use
pages and components. Since there's a plan to support Java 9 modules, if we
want to do a tapestry-corelib, we should do it sooner rather than later.


>
> Sincerely,
> --
> Ilya Obshadko
>


--
Thiago
Reply | Threaded
Open this post in threaded view
|

Re: partial upgrade to the latest release

bobharner
Maybe call it tapestry-components instead of tapestry-corelib, to be
clearer?

On Tue, Mar 3, 2020, 11:37 AM Thiago H. de Paula Figueiredo <
[hidden email]> wrote:

> Hello!
>
> On Sat, Feb 29, 2020 at 6:31 AM Ilya Obshadko <[hidden email]> wrote:
>
> > My application still runs on 5.4-beta-6 due to various breaking component
> > changes introduced in later versions.
>
>
> The ones in the other thread? If not, please post them here so we can
> discuss them.
>
>
> > I'm quite happy with it, but I'm
> > getting concerned about outdated upstream dependencies (like Hibernate).
> >
>
> Please file a Jira ticket about them.
>
>
> > So I did the following:
> >
> >    - upgraded everything to 5.4.5, adding tapestry-core to exclusions
> >    - added tapestry-core 5.4-beta-6 as a separate Maven dependency and
> >    excluded its upstream dependencies to other components.
> >
> The resulting hybrid of 5.4.5 and 5.4-beta-6 seems to work fine (although I
> > didn't test everything yet).
> >
> > I have a question to Thiago, Lance and other committers - do you guys see
> > any potential issues with this approach? Anything I might be missing?
> >
>
> I don't see any potential issues, although I wouldn't guarantee they
> wouldn't happen, even if I think the probability is very low.
>
>
> > On a related note: would it be possible to consider releasing
> > *tapestry-corelib* (core components) as a completely separate artifact?
> > This would make the maintenance a ton easier for edge cases like mine
> (when
> > updating to the latest components has a prohibitive cost).
> >
>
> This is something we can do and it's been already suggested by someone else
> in this mailing list which likes the Tapestry support for webapps (request
> filters, dispatchers, resource support, etc), but doesn't actually use
> pages and components. Since there's a plan to support Java 9 modules, if we
> want to do a tapestry-corelib, we should do it sooner rather than later.
>
>
> >
> > Sincerely,
> > --
> > Ilya Obshadko
> >
>
>
> --
> Thiago
>
Reply | Threaded
Open this post in threaded view
|

Re: partial upgrade to the latest release

Ilya Obshadko-2
In reply to this post by Thiago H de Paula Figueiredo
Hi Thiago!

On Tue, Mar 3, 2020 at 6:37 PM Thiago H. de Paula Figueiredo <
[hidden email]> wrote:

> Hello!
>
> On Sat, Feb 29, 2020 at 6:31 AM Ilya Obshadko <[hidden email]> wrote:
>
> > My application still runs on 5.4-beta-6 due to various breaking component
> > changes introduced in later versions.
>
>
> The ones in the other thread? If not, please post them here so we can
> discuss them.
>

Long story short, I made a couple of attempts to upgrade (I think I try at
least once every year) since 2015. Every time I ran into different issues.
The last one with non-working nested FormFragment is one of those issues.

Another one I have encountered recently is that my Typeahead mixin doesn't
work anymore in last release versions. Typeahead duplicates an input field
with some CSS classes that effectively hide it, but client-side validation
'unhides' the field and then fails.

Since my application heavily relies on complex form logic, I just don't
have enough time to go through all the issues, so every next attempt
usually stops after I spend 4-6 hours without substantial progress.


> I'm quite happy with it, but I'm
> > getting concerned about outdated upstream dependencies (like Hibernate).
> >
>
> Please file a Jira ticket about them.
>

I don't know if that's something that can be reasonably fixed by you guys.


> > So I did the following:
> >
> >    - upgraded everything to 5.4.5, adding tapestry-core to exclusions
> >    - added tapestry-core 5.4-beta-6 as a separate Maven dependency and
> >    excluded its upstream dependencies to other components.
> >
> The resulting hybrid of 5.4.5 and 5.4-beta-6 seems to work fine (although I
> > didn't test everything yet).
> >
> > I have a question to Thiago, Lance and other committers - do you guys see
> > any potential issues with this approach? Anything I might be missing?
> >
>
> I don't see any potential issues, although I wouldn't guarantee they
> wouldn't happen, even if I think the probability is very low.
>

I'm still running this hybrid branch locally every day. So far so good - I
didn't encounter anything yet. I think I'll deploy it to production  on the
weekend.

> On a related note: would it be possible to consider releasing
> > *tapestry-corelib* (core components) as a completely separate artifact?
> > This would make the maintenance a ton easier for edge cases like mine
> (when
> > updating to the latest components has a prohibitive cost).
> >
>
> This is something we can do and it's been already suggested by someone else
> in this mailing list which likes the Tapestry support for webapps (request
> filters, dispatchers, resource support, etc), but doesn't actually use
> pages and components. Since there's a plan to support Java 9 modules, if we
> want to do a tapestry-corelib, we should do it sooner rather than later.
>

This would be really, really nice to have. This would allow developers to
create independent foundation component libraries (I'm thinking of one for
MaterialUI, for instance).

--
Ilya Obshadko
Reply | Threaded
Open this post in threaded view
|

Re: partial upgrade to the latest release

Thiago H de Paula Figueiredo
In reply to this post by bobharner
On Wed, Mar 4, 2020 at 9:50 AM Bob Harner <[hidden email]> wrote:

> Maybe call it tapestry-components instead of tapestry-corelib, to be
> clearer?
>

Good point. I just thought of corelib since it's the package name. Maybe
tapestry-pages, to be clearer that everything concerning pages and
components are there? tapestry-pages-components? I'm not feeling
particularly inspired to find the ideal name now . . .


>
> On Tue, Mar 3, 2020, 11:37 AM Thiago H. de Paula Figueiredo <
> [hidden email]> wrote:
>
> > Hello!
> >
> > On Sat, Feb 29, 2020 at 6:31 AM Ilya Obshadko <[hidden email]> wrote:
> >
> > > My application still runs on 5.4-beta-6 due to various breaking
> component
> > > changes introduced in later versions.
> >
> >
> > The ones in the other thread? If not, please post them here so we can
> > discuss them.
> >
> >
> > > I'm quite happy with it, but I'm
> > > getting concerned about outdated upstream dependencies (like
> Hibernate).
> > >
> >
> > Please file a Jira ticket about them.
> >
> >
> > > So I did the following:
> > >
> > >    - upgraded everything to 5.4.5, adding tapestry-core to exclusions
> > >    - added tapestry-core 5.4-beta-6 as a separate Maven dependency and
> > >    excluded its upstream dependencies to other components.
> > >
> > The resulting hybrid of 5.4.5 and 5.4-beta-6 seems to work fine
> (although I
> > > didn't test everything yet).
> > >
> > > I have a question to Thiago, Lance and other committers - do you guys
> see
> > > any potential issues with this approach? Anything I might be missing?
> > >
> >
> > I don't see any potential issues, although I wouldn't guarantee they
> > wouldn't happen, even if I think the probability is very low.
> >
> >
> > > On a related note: would it be possible to consider releasing
> > > *tapestry-corelib* (core components) as a completely separate artifact?
> > > This would make the maintenance a ton easier for edge cases like mine
> > (when
> > > updating to the latest components has a prohibitive cost).
> > >
> >
> > This is something we can do and it's been already suggested by someone
> else
> > in this mailing list which likes the Tapestry support for webapps
> (request
> > filters, dispatchers, resource support, etc), but doesn't actually use
> > pages and components. Since there's a plan to support Java 9 modules, if
> we
> > want to do a tapestry-corelib, we should do it sooner rather than later.
> >
> >
> > >
> > > Sincerely,
> > > --
> > > Ilya Obshadko
> > >
> >
> >
> > --
> > Thiago
> >
>


--
Thiago